7

Spring 3.1 Securityのcontact例では、次の2つの役割を使用しています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ロールはどこで定義されていますか?これらのデフォルトの役割はSpringSecurityによって作成されますか?

4

2 に答える 2

14

IS_AUTHENTICATED_ANONYMOUSLYは、 AuthenticatedVoterクラスで定義されています。 さまざまなROLE_xxxxには特別な意味はありません。

Spring Securityは、ほとんどのアプリケーションで使用されるため、デフォルトでこれらのロールを提案します。
ただし、カスタムロール(つまり、ROLE_SUPERMAN)を自由に定義して使用できます。によって返されたものに、これが(DBからまたは手動で) として割り当てられ
ていることを確認する必要があります。UserDetailUserDetailServiceROLEGrantedAuthority

実際にはROLEがプレフィックスです。APP(つまり、APP_ADMIN)に変更する場合は、カスタムを定義する必要がありAppVoterます。

<bean class="org.springframework.security.vote.RoleVoter">
  <property name="rolePrefix" value="APP"/>
</bean>
于 2012-07-20T11:30:46.483 に答える
2

役割ROLE_SUPERVISOR, ROLE_USERは、アプリケーションに応じて定義されます。

カスタムロールを作成する方法:Spring Securityでカスタムロール/権限を使用するにはどうすればよいですか?

チュートリアルを参照して、を使用してカスタムロールを作成しますorg.springframework.security.core.userdetails.UserDetailsService

于 2012-07-20T12:23:49.227 に答える