Add AuthorizationProxy Interface

Closes gh-15747
This commit is contained in:
Josh Cummings
2024-09-05 17:24:26 -06:00
parent 4855287743
commit fce2eb1531
3 changed files with 103 additions and 0 deletions

View File

@@ -46,6 +46,7 @@ import org.springframework.security.authentication.TestAuthentication;
import org.springframework.security.authorization.method.AuthorizationAdvisor;
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory;
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor;
import org.springframework.security.authorization.method.AuthorizationProxy;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -350,6 +351,15 @@ public class AuthorizationAdvisorProxyFactoryTests {
assertThat(properties).hasSize(3).containsKeys("id", "firstName", "lastName");
}
@Test
public void proxyWhenDefaultsThenInstanceOfAuthorizationProxy() {
AuthorizationAdvisorProxyFactory factory = AuthorizationAdvisorProxyFactory.withDefaults();
Flight flight = proxy(factory, this.flight);
assertThat(flight).isInstanceOf(AuthorizationProxy.class);
Flight target = (Flight) ((AuthorizationProxy) flight).toAuthorizedTarget();
assertThat(target).isSameAs(this.flight);
}
private Authentication authenticated(String user, String... authorities) {
return TestAuthentication.authenticated(TestAuthentication.withUsername(user).authorities(authorities).build());
}