我必须将通常部署在 Tomcat 或 Jetty 上的现有应用程序配置到 WebSphere Application Server v8 上。我遇到的主要问题是,在部署它的环境中,预计它会通过 JAAS 处理身份验证/授权。不幸的是,该应用程序使用自制的身份验证系统,并且与 JAAS 或 WebSphere 的 JAAS 实现不兼容。
到目前为止,为了提供一个让应用程序能够在 WebSphere 上和谐运行的垫片,我一直在尝试编写一个 WebSphere 信任关联拦截器来从 websphere 的界面中提取主题(通过调用 com.ibm.websphere.security.auth.WSSubject.getCallerSubject()
) 并将其放入 HttpServletRequest 中,在正常操作过程中,我的 web 应用程序将提取添加的属性供我们使用。但这似乎……很棘手。它似乎是专门构建的,我们似乎不能将它用于此类操作。
理想情况下,我希望远离应用程序内过滤器,因为我希望尽可能将 IBM 特定代码排除在应用程序之外。
这里有人有什么建议吗?
最佳答案
一个可能的解决方案是使用驻留在应用程序外部的过滤器,类似于以下示例:
https://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101859
这仍然是过滤器链的一部分,其功能与任何其他过滤器相同,但代码不会成为应用程序的一部分。它将驻留在一个单独的 jar 文件中。
关于deployment - WebSphere 8 是否有类似于 Tomcat Valves 的东西来拦截请求(不是应用程序内的 Servlet Filters..)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846952/