在Websphere7中启用基于角色的安全性

时间:2012-07-18 16:50:44

标签: java-ee struts2 websphere-7 security-roles

我的网络应用程序(使用struts2创建,包含2页

  • 1)提出请求
  • 2)批准请求

)部署在websphere 7.我需要为此应用程序启用基于角色的安全性。我有两个角色

1)用户(可以提出请求)

2)审批

两者都有不同的凭据。我没有使用任何后端进行身份验证。如何使用web.xml和映射用户使用websphere安全功能来实现此目的。

1 个答案:

答案 0 :(得分:1)

我邀请您阅读JavaEE 6 Tutorial chapter "Getting Started Securing Web Applications",特别是提供示例。

您的应用程序必须声明两个安全角色userapprover,而web.xml必须通过security-constraints来保护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作为身份验证和权限的后端,强烈建议使用。

默认情况下,运行应用程序的服务器实例配置为使用全局安全性,但您可以为服务器/应用程序对创建专用的安全域以供使用专用的后端。以下network deployment reference documentation security section指导您了解这些方面。