Wicket org.apache.wicket.authroles.authentication.AuthenticatedWebSession
有2种方法:signOut
和invalidate
。 Javac表示signOut
标记使用not logged in
,而invalidate
做相同的操作(例如,调用signOut
),但是
从永久保存的位置删除登录数据
乍一看,应该调用signOut
进行注销操作。但是对于security reasons会话,必须在用户登录或注销后立即使无效。因此,从这一点出发,应调用invalidate
。
那么,需要注销什么呢?另外,何时需要调用signOut
和何时invalidate
?
最佳答案
如果只想注销,请使用AuthenticatedWebSession#signOut()。
AuthenticatedWebSession使用内部布尔标志“signedIn”来通知用户是否已登录(true)或从未登录过主体或用户已注销。
WebSession#invalidate()负责从Wicket会话注册表中删除会话及其完全失效。 AuthenticatedWebSession#invalidate()的实现也调用AuthenticatedWebSession#signOut(),以便完成常规注销。如果您的注销过程需要其他操作,这可能会有所帮助,因此您可以覆盖AuthenticatedWebSession#signOut()方法。
换一种说法: