Skip to content

Commit e52987d

Browse files
ngocnhan-tran1996jzheaux
authored andcommitted
Remove RoleHierarchyImpl Deprecations
Closes gh-17297 Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
1 parent 62252c1 commit e52987d

File tree

13 files changed

+44
-96
lines changed

13 files changed

+44
-96
lines changed

config/src/test/java/org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfigurationTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -542,9 +542,7 @@ MethodSecurityService service() {
542542

543543
@Bean
544544
RoleHierarchy roleHierarchy() {
545-
RoleHierarchyImpl result = new RoleHierarchyImpl();
546-
result.setHierarchy("ROLE_USER > ROLE_ADMIN");
547-
return result;
545+
return RoleHierarchyImpl.fromHierarchy("ROLE_USER > ROLE_ADMIN");
548546
}
549547

550548
}

config/src/test/java/org/springframework/security/config/annotation/method/configuration/PrePostMethodSecurityConfigurationTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,9 +1566,7 @@ static class RoleHierarchyConfig {
15661566

15671567
@Bean
15681568
static RoleHierarchy roleHierarchy() {
1569-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
1570-
roleHierarchyImpl.setHierarchy("ROLE_ADMIN > ROLE_USER");
1571-
return roleHierarchyImpl;
1569+
return RoleHierarchyImpl.fromHierarchy("ROLE_ADMIN > ROLE_USER");
15721570
}
15731571

15741572
}

config/src/test/java/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurationTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -571,9 +571,7 @@ static class WebSecurityExpressionHandlerRoleHierarchyBeanConfig {
571571

572572
@Bean
573573
RoleHierarchy roleHierarchy() {
574-
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
575-
roleHierarchy.setHierarchy("ROLE_ADMIN > ROLE_USER");
576-
return roleHierarchy;
574+
return RoleHierarchyImpl.fromHierarchy("ROLE_ADMIN > ROLE_USER");
577575
}
578576

579577
}

config/src/test/java/org/springframework/security/config/annotation/web/configurers/AuthorizeHttpRequestsConfigurerTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -970,9 +970,7 @@ SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
970970

971971
@Bean
972972
RoleHierarchy roleHierarchy() {
973-
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
974-
roleHierarchy.setHierarchy("ROLE_ADMIN > ROLE_USER");
975-
return roleHierarchy;
973+
return RoleHierarchyImpl.fromHierarchy("ROLE_ADMIN > ROLE_USER");
976974
}
977975

978976
}

config/src/test/java/org/springframework/security/config/annotation/web/configurers/AuthorizeRequestsTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -311,9 +311,7 @@ UserDetailsService userDetailsService() {
311311

312312
@Bean
313313
RoleHierarchy roleHiearchy() {
314-
RoleHierarchyImpl result = new RoleHierarchyImpl();
315-
result.setHierarchy("ROLE_USER > ROLE_ADMIN");
316-
return result;
314+
return RoleHierarchyImpl.fromHierarchy("ROLE_USER > ROLE_ADMIN");
317315
}
318316

319317
}

config/src/test/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurerTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -1193,9 +1193,7 @@ SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
11931193

11941194
@Bean
11951195
RoleHierarchy roleHierarchy() {
1196-
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
1197-
roleHierarchy.setHierarchy("ROLE_USER > ROLE_MEMBER");
1198-
return roleHierarchy;
1196+
return RoleHierarchyImpl.fromHierarchy("ROLE_USER > ROLE_MEMBER");
11991197
}
12001198

12011199
}

core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImpl.java

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -78,7 +78,7 @@
7878
* @author Michael Mayr
7979
* @author Josh Cummings
8080
*/
81-
public class RoleHierarchyImpl implements RoleHierarchy {
81+
public final class RoleHierarchyImpl implements RoleHierarchy {
8282

8383
private static final Log logger = LogFactory.getLog(RoleHierarchyImpl.class);
8484

@@ -88,14 +88,6 @@ public class RoleHierarchyImpl implements RoleHierarchy {
8888
*/
8989
private Map<String, Set<GrantedAuthority>> rolesReachableInOneOrMoreStepsMap = null;
9090

91-
/**
92-
* @deprecated Use {@link RoleHierarchyImpl#fromHierarchy} instead
93-
*/
94-
@Deprecated
95-
public RoleHierarchyImpl() {
96-
97-
}
98-
9991
private RoleHierarchyImpl(Map<String, Set<GrantedAuthority>> hierarchy) {
10092
this.rolesReachableInOneOrMoreStepsMap = buildRolesReachableInOneOrMoreStepsMap(hierarchy);
10193
}
@@ -139,24 +131,6 @@ public static Builder withRolePrefix(String rolePrefix) {
139131
return new Builder(rolePrefix);
140132
}
141133

142-
/**
143-
* Set the role hierarchy and pre-calculate for every role the set of all reachable
144-
* roles, i.e. all roles lower in the hierarchy of every given role. Pre-calculation
145-
* is done for performance reasons (reachable roles can then be calculated in O(1)
146-
* time). During pre-calculation, cycles in role hierarchy are detected and will cause
147-
* a <tt>CycleInRoleHierarchyException</tt> to be thrown.
148-
* @param roleHierarchyStringRepresentation - String definition of the role hierarchy.
149-
* @deprecated Use {@link RoleHierarchyImpl#fromHierarchy} instead
150-
*/
151-
@Deprecated
152-
public void setHierarchy(String roleHierarchyStringRepresentation) {
153-
logger.debug(LogMessage.format("setHierarchy() - The following role hierarchy was set: %s",
154-
roleHierarchyStringRepresentation));
155-
Map<String, Set<GrantedAuthority>> hierarchy = buildRolesReachableInOneStepMap(
156-
roleHierarchyStringRepresentation);
157-
this.rolesReachableInOneOrMoreStepsMap = buildRolesReachableInOneOrMoreStepsMap(hierarchy);
158-
}
159-
160134
@Override
161135
public Collection<GrantedAuthority> getReachableGrantedAuthorities(
162136
Collection<? extends GrantedAuthority> authorities) {

core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyAuthoritiesMapperTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2016 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -32,8 +32,7 @@ public class RoleHierarchyAuthoritiesMapperTests {
3232

3333
@Test
3434
public void expectedAuthoritiesAreReturned() {
35-
RoleHierarchyImpl rh = new RoleHierarchyImpl();
36-
rh.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C");
35+
RoleHierarchyImpl rh = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C");
3736
RoleHierarchyAuthoritiesMapper mapper = new RoleHierarchyAuthoritiesMapper(rh);
3837
Collection<? extends GrantedAuthority> authorities = mapper
3938
.mapAuthorities(AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_D"));

core/src/test/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImplTests.java

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class RoleHierarchyImplTests {
4040
public void testRoleHierarchyWithNullOrEmptyAuthorities() {
4141
List<GrantedAuthority> authorities0 = null;
4242
List<GrantedAuthority> authorities1 = new ArrayList<>();
43-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
44-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
43+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B");
4544
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities0)).isNotNull();
4645
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities0)).isEmpty();
4746
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(authorities1)).isNotNull();
@@ -53,8 +52,7 @@ public void testSimpleRoleHierarchy() {
5352
List<GrantedAuthority> authorities0 = AuthorityUtils.createAuthorityList("ROLE_0");
5453
List<GrantedAuthority> authorities1 = AuthorityUtils.createAuthorityList("ROLE_A");
5554
List<GrantedAuthority> authorities2 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B");
56-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
57-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
55+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B");
5856
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
5957
roleHierarchyImpl.getReachableGrantedAuthorities(authorities0), authorities0))
6058
.isTrue();
@@ -72,12 +70,11 @@ public void testTransitiveRoleHierarchies() {
7270
List<GrantedAuthority> authorities2 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B", "ROLE_C");
7371
List<GrantedAuthority> authorities3 = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B", "ROLE_C",
7472
"ROLE_D");
75-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
76-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C");
73+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C");
7774
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
7875
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities2))
7976
.isTrue();
80-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_D");
77+
roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_D");
8178
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
8279
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities3))
8380
.isTrue();
@@ -94,8 +91,8 @@ public void testComplexRoleHierarchy() {
9491
List<GrantedAuthority> authoritiesOutput3 = AuthorityUtils.createAuthorityList("ROLE_C", "ROLE_D");
9592
List<GrantedAuthority> authoritiesInput4 = AuthorityUtils.createAuthorityList("ROLE_D");
9693
List<GrantedAuthority> authoritiesOutput4 = AuthorityUtils.createAuthorityList("ROLE_D");
97-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
98-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D");
94+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl
95+
.fromHierarchy("ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D");
9996
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
10097
roleHierarchyImpl.getReachableGrantedAuthorities(authoritiesInput1), authoritiesOutput1))
10198
.isTrue();
@@ -112,24 +109,22 @@ public void testComplexRoleHierarchy() {
112109

113110
@Test
114111
public void testCyclesInRoleHierarchy() {
115-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
116112
assertThatExceptionOfType(CycleInRoleHierarchyException.class)
117-
.isThrownBy(() -> roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_A"));
113+
.isThrownBy(() -> RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_A"));
118114
assertThatExceptionOfType(CycleInRoleHierarchyException.class)
119-
.isThrownBy(() -> roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_A"));
115+
.isThrownBy(() -> RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_A"));
120116
assertThatExceptionOfType(CycleInRoleHierarchyException.class)
121-
.isThrownBy(() -> roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_A"));
122-
assertThatExceptionOfType(CycleInRoleHierarchyException.class).isThrownBy(() -> roleHierarchyImpl
123-
.setHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_E\nROLE_E > ROLE_D\nROLE_D > ROLE_B"));
117+
.isThrownBy(() -> RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_A"));
118+
assertThatExceptionOfType(CycleInRoleHierarchyException.class).isThrownBy(() -> RoleHierarchyImpl
119+
.fromHierarchy("ROLE_A > ROLE_B\nROLE_B > ROLE_C\nROLE_C > ROLE_E\nROLE_E > ROLE_D\nROLE_D > ROLE_B"));
124120
assertThatExceptionOfType(CycleInRoleHierarchyException.class)
125-
.isThrownBy(() -> roleHierarchyImpl.setHierarchy("ROLE_C > ROLE_B\nROLE_B > ROLE_A\nROLE_A > ROLE_B"));
121+
.isThrownBy(() -> RoleHierarchyImpl.fromHierarchy("ROLE_C > ROLE_B\nROLE_B > ROLE_A\nROLE_A > ROLE_B"));
126122
}
127123

128124
@Test
129125
public void testNoCyclesInRoleHierarchy() {
130-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
131-
assertThatNoException().isThrownBy(() -> roleHierarchyImpl
132-
.setHierarchy("ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D"));
126+
assertThatNoException().isThrownBy(() -> RoleHierarchyImpl
127+
.fromHierarchy("ROLE_A > ROLE_B\nROLE_A > ROLE_C\nROLE_C > ROLE_D\nROLE_B > ROLE_D"));
133128
}
134129

135130
// SEC-863
@@ -138,8 +133,7 @@ public void testSimpleRoleHierarchyWithCustomGrantedAuthorityImplementation() {
138133
List<GrantedAuthority> authorities0 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_0");
139134
List<GrantedAuthority> authorities1 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_A");
140135
List<GrantedAuthority> authorities2 = HierarchicalRolesTestHelper.createAuthorityList("ROLE_A", "ROLE_B");
141-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
142-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
136+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B");
143137
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthoritiesCompareByAuthorityString(
144138
roleHierarchyImpl.getReachableGrantedAuthorities(authorities0), authorities0))
145139
.isTrue();
@@ -157,12 +151,11 @@ public void testWhitespaceRoleHierarchies() {
157151
List<GrantedAuthority> authorities2 = AuthorityUtils.createAuthorityList("ROLE A", "ROLE B", "ROLE>C");
158152
List<GrantedAuthority> authorities3 = AuthorityUtils.createAuthorityList("ROLE A", "ROLE B", "ROLE>C",
159153
"ROLE D");
160-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
161-
roleHierarchyImpl.setHierarchy("ROLE A > ROLE B\nROLE B > ROLE>C");
154+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE A > ROLE B\nROLE B > ROLE>C");
162155
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
163156
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities2))
164157
.isTrue();
165-
roleHierarchyImpl.setHierarchy("ROLE A > ROLE B\nROLE B > ROLE>C\nROLE>C > ROLE D");
158+
roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE A > ROLE B\nROLE B > ROLE>C\nROLE>C > ROLE D");
166159
assertThat(HierarchicalRolesTestHelper.containTheSameGrantedAuthorities(
167160
roleHierarchyImpl.getReachableGrantedAuthorities(authorities1), authorities3))
168161
.isTrue();
@@ -174,8 +167,7 @@ public void testJavadoc() {
174167
List<GrantedAuthority> flatAuthorities = AuthorityUtils.createAuthorityList("ROLE_A");
175168
List<GrantedAuthority> allAuthorities = AuthorityUtils.createAuthorityList("ROLE_A", "ROLE_B",
176169
"ROLE_AUTHENTICATED", "ROLE_UNAUTHENTICATED");
177-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
178-
roleHierarchyImpl.setHierarchy(
170+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy(
179171
"ROLE_A > ROLE_B\n" + "ROLE_B > ROLE_AUTHENTICATED\n" + "ROLE_AUTHENTICATED > ROLE_UNAUTHENTICATED");
180172
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(flatAuthorities))
181173
.containsExactlyInAnyOrderElementsOf(allAuthorities);
@@ -187,9 +179,8 @@ public void testInterfaceJavadoc() {
187179
List<GrantedAuthority> flatAuthorities = AuthorityUtils.createAuthorityList("ROLE_HIGHEST");
188180
List<GrantedAuthority> allAuthorities = AuthorityUtils.createAuthorityList("ROLE_HIGHEST", "ROLE_HIGHER",
189181
"ROLE_LOW", "ROLE_LOWER");
190-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
191-
roleHierarchyImpl
192-
.setHierarchy("ROLE_HIGHEST > ROLE_HIGHER\n" + "ROLE_HIGHER > ROLE_LOW\n" + "ROLE_LOW > ROLE_LOWER");
182+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl
183+
.fromHierarchy("ROLE_HIGHEST > ROLE_HIGHER\n" + "ROLE_HIGHER > ROLE_LOW\n" + "ROLE_LOW > ROLE_LOWER");
193184
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(flatAuthorities))
194185
.containsExactlyInAnyOrderElementsOf(allAuthorities);
195186
}
@@ -200,8 +191,8 @@ public void singleLineLargeHierarchy() {
200191
List<GrantedAuthority> flatAuthorities = AuthorityUtils.createAuthorityList("ROLE_HIGHEST");
201192
List<GrantedAuthority> allAuthorities = AuthorityUtils.createAuthorityList("ROLE_HIGHEST", "ROLE_HIGHER",
202193
"ROLE_LOW", "ROLE_LOWER");
203-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
204-
roleHierarchyImpl.setHierarchy("ROLE_HIGHEST > ROLE_HIGHER > ROLE_LOW > ROLE_LOWER");
194+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl
195+
.fromHierarchy("ROLE_HIGHEST > ROLE_HIGHER > ROLE_LOW > ROLE_LOWER");
205196
assertThat(roleHierarchyImpl.getReachableGrantedAuthorities(flatAuthorities))
206197
.containsExactlyInAnyOrderElementsOf(allAuthorities);
207198
}

core/src/test/java/org/springframework/security/access/vote/RoleHierarchyVoterTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2016 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -29,8 +29,7 @@ public class RoleHierarchyVoterTests {
2929

3030
@Test
3131
public void hierarchicalRoleIsIncludedInDecision() {
32-
RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
33-
roleHierarchyImpl.setHierarchy("ROLE_A > ROLE_B");
32+
RoleHierarchyImpl roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy("ROLE_A > ROLE_B");
3433
// User has role A, role B is required
3534
TestingAuthenticationToken auth = new TestingAuthenticationToken("user", "password", "ROLE_A");
3635
RoleHierarchyVoter voter = new RoleHierarchyVoter(roleHierarchyImpl);

0 commit comments

Comments
 (0)