我的web应用程序(使用struts2创建,包含2页
- 1) 提出请求
- 2) 批准请求
)部署在websphere7.我需要为此应用程序启用基于角色的安全性。我有两个角色
1) 用户(可以提出请求)
2) 批准人
两者都具有不同的证书。我没有使用任何后端进行身份验证。如何通过web.xml和映射用户使用websphere安全功能来做到这一点。
我邀请您阅读JavaEE 6教程"开始保护Web应用程序"一章,特别是提供的示例。
您的应用程序必须声明两个安全角色user
和approver
,并且由于security-constraints
,web.xml
必须保护servlet路径。
以下是这样一个设置作为起点:
<security-constraint>
<display-name>Raise Request</display-name>
<web-resource-collection>
<web-resource-name>raiserequestservlet</web-resource-name>
<description/>
<url-pattern>/raiserequest</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<display-name>Approve Request</display-name>
<web-resource-collection>
<web-resource-name>approverequestservlet</web-resource-name>
<description/>
<url-pattern>/approverequest</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>approver</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>WebSphere</realm-name>
</login-config>
<security-role>
<description>Security Role required to raise a request</description>
<role-name>user</role-name>
</security-role>
<security-role>
<description>Security Role required to approve a request</description>
<role-name>approver</role-name>
</security-role>
对于第一次测试,我选择了基本身份验证,但还有其他选项。
然后,当将WAR包部署到WebSphere中时,向导将允许您将两个应用程序角色映射到LDAP组,只要您使用LDAP作为身份验证和权限的后端即可,这是强烈建议的。
默认情况下,运行应用程序的服务器实例配置为使用全局安全,但您可以为服务器/应用程序对创建一个专用的安全域以使用专用后端。以下是网络部署参考文档安全部分,可在这些方面为您提供指导。