Websphere 9,如何检查传入的ltpatoken2

Websphere 9, how to check incoming ltpatoken2

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

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

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

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

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