0

美好的一天,我有一个基于 websphere 9 和 ltpatoken2 cookie 的应用程序的传入请求。以前,ltpa 密钥是从我的 websphere 导出并添加到另一台服务器的。选项应用程序安全已启用。如何在 websphere 或我的应用程序中检查令牌是否存在且正确?对于没有令牌的请求,我的应用程序不应该可用。

4

3 回答 3

0

没有用于检查该令牌的 API,但您可以隐式测试它。您可以使用 Firefox 或 Chrome 开发人员工具捕获浏览器流量,然后在成功登录后,使用浏览器工具或 curl 发送修改后的请求,但不使用 cookie,或者使用错误的 cookie 值,您应该会收到身份验证质询,因为 cookie 的不在那里。

于 2019-11-17T13:34:54.883 回答
0

在 WebSphere 9 中,如果请求包含 LTPA cookie,LTPA cookie 将被自动处理。在您的应用程序代码中,如果您调用 API com.ibm.websphere.security.auth.WSSubject.getRunAsSubject(),您将看到一个从 ltpa 令牌创建的主题(如果 LTPA 令牌存在并且也是有效的)。

如果 ltpa 丢失或无效,您将看到未经身份验证的主题。或者在您的应用程序中,如果您调用HttpServletRequest.getPrincipal().getName(),您将看到由 LTPA cookie 表示的用户名(如果它存在且有效),并且如果 LTPA 丢失或无效,您将看到主体名称或未验证的用户名。

于 2019-11-18T03:30:36.203 回答
0

最简单的方法是将安全约束添加到web.xml保护整个应用程序(您会发现很多示例),并将安全角色映射到All authenticated. 那么您的应用程序将仅在用户已经登录时才可用(因此 LTPA 令牌存在并且是正确的),否则它会将您重定向到您可以包含在您的应用程序中的登录页面并将用户重定向到某处,通知他没有登录,或在没有有效 LTPA 令牌的情况下执行任何操作。

于 2019-11-18T08:35:21.423 回答