我正在使用另一个通过URL将用户身份验证(AD登录)传递给WebSphere的网页.注销时,我将重定向到登录页面,并且由于我的会话从未关闭,因此已经登录.我尝试了一些方法来禁用WebSphere的cookie,但是没有任何效果.当我按注销按钮时,有没有一种简单的方法可以使用Java代码删除Cookie?任何帮助都非常感谢.
解决方法:
如果使用的是WebSphere 8.x,则在重定向到注销页面之前,应该使用servlet 3.0 api和request.logout()
方法.此方法将删除会话和身份验证Cookie.
对于较旧的WebSphere版本/ servlet api,请使用以下内容(在WAS v8中已弃用):
try {
WSSecurityHelper.revokeSSOCookies(req, res);
} catch(Exception e) {
...
}
UPDATE
对于v7,我建议退出表单.
如果要注销表单应用程序,请创建以下注销表单,或者将定制帖子创建到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).