我正在使用另一个网页,该网页通过 URL 将用户身份验证( AD 登录)传递到 WebSphere。当我注销时,我将重定向到登录页面,并且已经登录,因为我的 session 从未关闭。我尝试了一些方法来禁用 WebSphere 的 cookie,但没有任何效果。当我按下注销按钮时,有没有一种简单的方法可以用java代码删除cookie?非常感谢任何帮助。
最佳答案
如果您使用的是 WebSphere 8.x,则应该使用 servlet 3.0 api 和 request.logout()
方法,在重定向到注销页面之前。此方法将删除 session 和身份验证 cookie。
对于较旧的 WebSphere 版本/servlet api,请使用以下内容(在 WAS v8 中已弃用):
try {
WSSecurityHelper.revokeSSOCookies(req, res);
} catch(Exception e) {
...
}
更新
对于 v7,我建议使用 form-logout。
如果您想要注销表单应用程序,您可以创建以下注销表单,或者创建到 ibm_security_logout
的自定义帖子,您可以在注销后使用 logoutExitPage
重定向到所需的页面:
<h2>Sample Form Logout</h2>
<FORM METHOD=POST ACTION="ibm_security_logout" NAME="logout">
<input type="submit" name="logout" value="Logout">
<INPUT TYPE="HIDDEN" name="logoutExitPage" VALUE="/login.html">
</form>
有关更多详细信息,请参阅Customizing login/logout
如果您无法使用此表单注销,请在 servlet 中使用如上所示的 WSSecurityHelper.revokeSSOCookies(req, res)
。
关于java - 删除 websphere 中的 cookie - 如何注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27466797/