簡體   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