Wicket org.apache.wicket.authroles.authentication.AuthenticatedWebSession
有两种方法:signOut
和invalidate
。 javac表示signOut
标记使用not logged in
而invalidate
执行相同操作(例如调用signOut
)但
从已保留的位置删除登录数据
首先应该调用注销操作signOut
。但是,对于security reasons会话必须在用户登录或注销后立即失效。因此,从这一点开始应该调用invalidate
。
那要注销什么?还需要拨打signOut
和invalidate
时?
答案 0 :(得分:2)
如果您只想注销,请使用AuthenticatedWebSession#signOut()。
AuthenticatedWebSession使用内部布尔标记'signedIn'来注意用户是否已登录(true)或者没有登录任何正文或用户已登出。
WebSession #invalidate()负责从Wicket会话注册表中删除会话及其完全失效。 AuthenticatedWebSession#invalidate()的实现也调用AuthenticatedWebSession#signOut(),以便完成常规注销。如果您的注销过程需要其他一些操作,那么这可能会有所帮助,因此您可以覆盖AuthenticatedWebSession#signOut()方法。
换句话说:
答案 1 :(得分:0)
要注销,您应该使用#invalidate()
!在我看来,#signOut()
不应该是API的一部分。最好它应该是#invalidate()
的别名。
如果您想要真正安全,那么您应该在登录后使用#replaceSession()
。