繁体   English   中英

Spring Security 3.1中的默认角色

[英]Default roles in Spring Security 3.1

Spring 3.1安全性contact示例在其applicationContext-security.xml使用了几个角色:

<intercept-url pattern="/" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/index.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/hello.htm" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/switchuser.jsp" access="ROLE_SUPERVISOR"/>
<intercept-url pattern="/j_spring_security_switch_user" access="ROLE_SUPERVISOR"/>
<intercept-url pattern="/**" access="ROLE_USER"/>

这些IS_AUTHENTICATED_ANONYMOUSLY,ROLE_SUPERVISOR,ROLE_USER角色定义在哪里? 这些默认角色是由Spring Security创建的吗?

IS_AUTHENTICATED_ANONYMOUSLYAuthenticatedVoter类中定义。
各种ROLE_xxxx没有特殊含义。

默认情况下,Spring Security会建议这些角色,因为它们在大多数应用程序中使用。
但是,您可以自由定义和使用自定义角色(即ROLE_SUPERMAN)。
您只需确保UserDetail返回的UserDetailService将此ROLE指定为GrantedAuthority (从DB或手动)。

实际上ROLE是前缀。 如果要将其更改为APP (即APP_ADMIN),则必须定义自定义AppVoter

<bean class="org.springframework.security.vote.RoleVoter">
  <property name="rolePrefix" value="APP"/>
</bean>

角色ROLE_SUPERVISOR, ROLE_USER由我们根据我们的应用程序定义。

如何创建自定义角色: 如何在Spring Security中使用自定义角色/权限?

请参阅教程以使用org.springframework.security.core.userdetails.UserDetailsService创建自定义角色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM