我需要将 IBM Security Access Manger 与 Tomcat 9 集成以对用户进行身份验证。我为 IBM SAM 部分正确配置了 Webseal(联结)。它获取用户的凭据,再次验证 SAM 服务器,然后如果成功重定向到 Tomcat,同时传递标头iv-user
、iv-group
和iv-creds
. 我现在需要编写一个自定义的 Tomcat Valve 来实现身份验证并允许基于用户组访问应用程序。这样做的最佳方法是什么?
我目前的想法是扩展,org.apache.catalina.valves.AuthenticatorBase
以便我可以在web.xml
我的应用程序中使用以下设置:
<security-constraint>
<web-resource-collection>
<web-resource-name>Application</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>MyRoleName</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
来自 Webseal 的标头可以被解析并用于生成 a org.apache.catalina.realm.GenericPrincipal
,然后用于验证添加到给定领域(或写入tomcat-users.xml
)的角色。
我对如何实际实现此身份验证有点犹豫,因此无论多么基本的任何帮助都将不胜感激。