如果我们想在部署描述符中定义安全角色,我们是这样做的吗?
<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”。
感谢。
答案 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