我们无法根据检票口
问题描述:
我管理认证通过延长AuthenticatedWebSession我们无法根据检票口
签名在
@Override
protected boolean authenticate(String username, String password) {
return true/false some auth logic here;
}
登出
@Override
public void signOut() {
super.signOut();
this.getApplication().getSecuritySettings().getAuthenticationStrategy().remove();
this.getSessionStore().invalidate(RequestCycle.get().getRequest());
throw new RedirectToUrlException("some_url_that_does_not_require_auth", HttpServletResponse.SC_MOVED_TEMPORARILY);
}
而我的页面配置登出
@AuthorizeInstantiation("ADMIN")
public class Home extends Base {
//Page stuff here
}
没有问题是,如果我退出,我仍然可以访问已验证的内容。通过点击返回按钮或粘贴到浏览器的网址。我只能看内容,当我点击某些东西时,它会将我重定向到非授权页面。
注销会话ID更改并从SecuritySettings中删除会话时,无法弄清楚它为什么仍显示身份验证内容。
答
致电session.invalidate()
而不是session.signOut()
。
我建议从Wicket 8.x的API中删除/隐藏signOut()
。最近有人遇到同样的问题(What method to use for logout in wicket application?)。
https://issues.apache.org/jira/browse/WICKET-6228 –
当我调用'AuthWebSession.get()。invalidate();' – user3960875
时发生同样的情况对不起,我仍然留下signOut留下的残留,使工作无效好。 – user3960875