我们无法根据检票口

问题描述:

我管理认证通过延长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?)。

+1

https://issues.apache.org/jira/browse/WICKET-6228 –

+0

当我调用'AuthWebSession.get()。invalidate();' – user3960875

+0

时发生同样的情况对不起,我仍然留下signOut留下的残留,使工作无效好。 – user3960875