2727import org .springframework .security .access .hierarchicalroles .RoleHierarchyImpl ;
2828import org .springframework .security .authentication .AuthenticationTrustResolver ;
2929import org .springframework .security .authentication .TestingAuthenticationToken ;
30+ import org .springframework .security .authorization .DefaultAuthorizationManagerFactory ;
3031import org .springframework .security .core .context .SecurityContextHolder ;
3132import org .springframework .security .core .context .SecurityContextHolderStrategy ;
3233import org .springframework .security .core .context .SecurityContextImpl ;
@@ -90,6 +91,7 @@ public void getRootObjectExplicitAuthentication() {
9091 }
9192
9293 @ Test
94+ @ SuppressWarnings ("deprecation" )
9395 public void setTrustResolverWhenNullThenIllegalArgumentException () {
9496 TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_EXPLICIT" );
9597 this .securityExtension = new SecurityEvaluationContextExtension (explicit );
@@ -98,6 +100,7 @@ public void setTrustResolverWhenNullThenIllegalArgumentException() {
98100 }
99101
100102 @ Test
103+ @ SuppressWarnings ("deprecation" )
101104 public void setTrustResolverWhenNotNullThenVerifyRootObject () {
102105 TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_EXPLICIT" );
103106 this .securityExtension = new SecurityEvaluationContextExtension (explicit );
@@ -109,6 +112,7 @@ public void setTrustResolverWhenNotNullThenVerifyRootObject() {
109112 }
110113
111114 @ Test
115+ @ SuppressWarnings ("deprecation" )
112116 public void setRoleHierarchyWhenNullThenIllegalArgumentException () {
113117 TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_EXPLICIT" );
114118 this .securityExtension = new SecurityEvaluationContextExtension (explicit );
@@ -117,6 +121,7 @@ public void setRoleHierarchyWhenNullThenIllegalArgumentException() {
117121 }
118122
119123 @ Test
124+ @ SuppressWarnings ("deprecation" )
120125 public void setRoleHierarchyWhenNotNullThenVerifyRootObject () {
121126 TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_PARENT" );
122127 this .securityExtension = new SecurityEvaluationContextExtension (explicit );
@@ -143,6 +148,7 @@ public void setPermissionEvaluatorWhenNotNullThenVerifyRootObject() {
143148 }
144149
145150 @ Test
151+ @ SuppressWarnings ("deprecation" )
146152 public void setDefaultRolePrefixWhenCustomThenVerifyRootObject () {
147153 TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "CUSTOM_EXPLICIT" );
148154 this .securityExtension = new SecurityEvaluationContextExtension (explicit );
@@ -151,6 +157,41 @@ public void setDefaultRolePrefixWhenCustomThenVerifyRootObject() {
151157 assertThat (getRoot ().hasRole ("EXPLICIT" )).isTrue ();
152158 }
153159
160+ @ Test
161+ public void setAuthorizationManagerFactoryWithTrustResolverThenVerifyRootObject () {
162+ TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_EXPLICIT" );
163+ this .securityExtension = new SecurityEvaluationContextExtension (explicit );
164+ AuthenticationTrustResolver trustResolver = mock (AuthenticationTrustResolver .class );
165+ given (trustResolver .isAuthenticated (explicit )).willReturn (true );
166+ DefaultAuthorizationManagerFactory <Object > factory = new DefaultAuthorizationManagerFactory <>();
167+ factory .setTrustResolver (trustResolver );
168+ this .securityExtension .setAuthorizationManagerFactory (factory );
169+ assertThat (getRoot ().isAuthenticated ()).isTrue ();
170+ verify (trustResolver ).isAuthenticated (explicit );
171+ }
172+
173+ @ Test
174+ public void setAuthorizationManagerFactoryWithRoleHierarchyThenVerifyRootObject () {
175+ TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_PARENT" );
176+ this .securityExtension = new SecurityEvaluationContextExtension (explicit );
177+ RoleHierarchy roleHierarchy = RoleHierarchyImpl .fromHierarchy ("ROLE_PARENT > ROLE_EXPLICIT" );
178+ DefaultAuthorizationManagerFactory <Object > factory = new DefaultAuthorizationManagerFactory <>();
179+ factory .setRoleHierarchy (roleHierarchy );
180+ this .securityExtension .setAuthorizationManagerFactory (factory );
181+ assertThat (getRoot ().hasRole ("EXPLICIT" )).isTrue ();
182+ }
183+
184+ @ Test
185+ public void setAuthorizationManagerFactoryWithRolePrefixThenVerifyRootObject () {
186+ TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "CUSTOM_EXPLICIT" );
187+ this .securityExtension = new SecurityEvaluationContextExtension (explicit );
188+ String customRolePrefix = "CUSTOM_" ;
189+ DefaultAuthorizationManagerFactory <Object > factory = new DefaultAuthorizationManagerFactory <>();
190+ factory .setRolePrefix (customRolePrefix );
191+ this .securityExtension .setAuthorizationManagerFactory (factory );
192+ assertThat (getRoot ().hasRole ("EXPLICIT" )).isTrue ();
193+ }
194+
154195 @ Test
155196 public void getRootObjectWhenAdditionalFieldsNotSetThenVerifyDefaults () {
156197 TestingAuthenticationToken explicit = new TestingAuthenticationToken ("explicit" , "password" , "ROLE_EXPLICIT" );
0 commit comments