java在wicket应用程序中使用什么方法注销?
Wicketorg.apache.wicket.authroles.authentication.AuthenticatedWebSession
有两种方法:signOut
和invalidate
。javac说signOut
标记使用not logged in
,而invalidate
做同样的事情(例如调用signOut
),但是
remove the logon data from where ever they have been persisted
首先,应该调用glace for logout操作signOut
。但是对于security reasons会话,必须在用户登录或注销后立即失效。因此从这一点开始invalidate
应该被调用
那么注销需要什么呢?当需要调用signOut
和invalidate
时,也可以使用它
# 1 楼答案
要注销,您应该使用
#invalidate()
!我认为#signOut()
不应该是API的一部分。充其量它应该是#invalidate()
的别名如果您想真正安全,那么应该在登录后使用
#replaceSession()
# 2 楼答案
如果只想注销,请使用AuthenticatedWebSession#signOut()
AuthenticatedWebSession使用一个内部布尔标志“signedIn”来通知用户是否已登录(true),或者是否有任何主体已登录或用户已注销
WebSession#invalidate()负责从Wicket会话注册表中删除会话并使其完全失效。AuthenticatedWebSession#invalidate()的实现也会调用AuthenticatedWebSession#signOut(),以便完成定期注销。如果注销过程需要其他操作,那么这可能会很有帮助,这样您就可以重写AuthenticatedWebSession#signOut()方法
换言之: