Skip to content

Commit eac1f84

Browse files
committed
Update RoleHierarchy Docs
Closes gh-12766
1 parent f5a4b52 commit eac1f84

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

docs/modules/ROOT/pages/servlet/authorization/architecture.adoc

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,22 +196,25 @@ A typical configuration might look like this:
196196
[source,java,role="primary"]
197197
----
198198
@Bean
199-
AccessDecisionVoter hierarchyVoter() {
199+
static RoleHierarchy roleHierarchy() {
200200
RoleHierarchy hierarchy = new RoleHierarchyImpl();
201201
hierarchy.setHierarchy("ROLE_ADMIN > ROLE_STAFF\n" +
202202
"ROLE_STAFF > ROLE_USER\n" +
203203
"ROLE_USER > ROLE_GUEST");
204-
return new RoleHierarchyVoter(hierarchy);
204+
}
205+
206+
// and, if using method security also add
207+
@Bean
208+
static MethodSecurityExpressionHandler methodSecurityExpressionHandler(RoleHierarchy roleHierarchy) {
209+
DefaultMethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler();
210+
expressionHandler.setRoleHierarchy(roleHierarchy);
211+
return expressionHandler;
205212
}
206213
----
207214
208215
.Xml
209216
[source,java,role="secondary"]
210217
----
211-
212-
<bean id="roleVoter" class="org.springframework.security.access.vote.RoleHierarchyVoter">
213-
<constructor-arg ref="roleHierarchy" />
214-
</bean>
215218
<bean id="roleHierarchy"
216219
class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
217220
<property name="hierarchy">
@@ -222,6 +225,12 @@ AccessDecisionVoter hierarchyVoter() {
222225
</value>
223226
</property>
224227
</bean>
228+
229+
<!-- and, if using method security also add -->
230+
<bean id="methodSecurityExpressionHandler"
231+
class="org.springframework.security.access.expression.method.MethodSecurityExpressionHandler">
232+
<property ref="roleHierarchy"/>
233+
</bean>
225234
----
226235
====
227236

0 commit comments

Comments
 (0)