Java EE安全角色设置混乱

时间:2015-01-11 14:14:40

标签: security java-ee authorization jaas

如果我们想在部署描述符中定义安全角色,我们是这样做的吗?

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>
        <url-pattern>/jsp/security/protected/*</url-pattern>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>role1</role-name>
        <role-name>employee</role-name>
    </auth-constraint>
</security-constraint>

 <!-- Security roles referenced by this web application -->
<security-role>
    <role-name>role1</role-name>
</security-role>
<security-role>
    <role-name>employee</role-name>
</security-role>

假设我的应用程序有50个用户。假设User1到User50并存储在我的应用程序数据库中。

问题是,如何将某个用户连接到web.xml中定义的安全角色?让我们说成功验证User1后,我希望他有“员工”角色。对于User2,我希望他拥有“role1”。

感谢。

2 个答案:

答案 0 :(得分:0)

应用程序安全角色从用户注册表到用户或组的映射取决于平台。每个应用程序服务器都提供一些机制,它可以在安装期间,通过应用程序中包含的某些xml文件或服务器配置。您也可以在应用程序中对其进行硬编码。

某些服务器还会提供与现有用户注册表的集成,例如LDAP,因此您不必自己编写用户管理代码。

因此,请指定您正在使用或计划使用的应用程序服务器,然后您将获得更详细的答案;)

答案 1 :(得分:0)

I don't know how you do it but I am doing it this way 

In the database i am storing both User information and its role information and in the security.xml i am doing both autherization and authentication by runing sql query you can do the same.

for eg.'<security:authentication-manager>
           <security:authentication-provider>
           <security:jdbc-user-service
            data-source-ref="dataSource"
            users-by-username-query="select username,password,enabled from users where username=?"
            authorities-by-username-query="select u1.username, u2.role from user_roles u1, user_roles u2 where u1.user_role_id = u2.user_role_id and u1.username =?" />
           </security:authentication-provider>     
        </security:authentication-manager>`

在春季使用数据库搜索文章,例如身份验证,您将获得大量有用的信息。它肯定会对您有用。

谢谢, 人士Himanshu