mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-01 09:42:13 +00:00
Remove Type Parameter
Closes gh-14012
This commit is contained in:
parent
82e11ccb25
commit
96ebab324c
@ -146,7 +146,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @author Evgeniy Cheban
|
* @author Evgeniy Cheban
|
||||||
*/
|
*/
|
||||||
public final class AuthorizationManagerRequestMatcherRegistry
|
public final class AuthorizationManagerRequestMatcherRegistry
|
||||||
extends AbstractRequestMatcherBuilderRegistry<AuthorizedUrl<AuthorizationManagerRequestMatcherRegistry>> {
|
extends AbstractRequestMatcherBuilderRegistry<AuthorizedUrl> {
|
||||||
|
|
||||||
private final RequestMatcherDelegatingAuthorizationManager.Builder managerBuilder = RequestMatcherDelegatingAuthorizationManager
|
private final RequestMatcherDelegatingAuthorizationManager.Builder managerBuilder = RequestMatcherDelegatingAuthorizationManager
|
||||||
.builder();
|
.builder();
|
||||||
@ -209,10 +209,9 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected AuthorizedUrl<AuthorizationManagerRequestMatcherRegistry> chainRequestMatchers(
|
protected AuthorizedUrl chainRequestMatchers(List<RequestMatcher> requestMatchers) {
|
||||||
List<RequestMatcher> requestMatchers) {
|
|
||||||
this.unmappedMatchers = requestMatchers;
|
this.unmappedMatchers = requestMatchers;
|
||||||
return new AuthorizedUrl<>(
|
return new AuthorizedUrl(
|
||||||
(manager) -> AuthorizeHttpRequestsConfigurer.this.addMapping(requestMatchers, manager));
|
(manager) -> AuthorizeHttpRequestsConfigurer.this.addMapping(requestMatchers, manager));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -416,8 +415,8 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @see AbstractRequestMatcherRegistry
|
* @see AbstractRequestMatcherRegistry
|
||||||
* @see AuthorizeHttpRequestsConfigurer
|
* @see AuthorizeHttpRequestsConfigurer
|
||||||
*/
|
*/
|
||||||
public final class AuthorizationManagerServletRequestMatcherRegistry extends
|
public final class AuthorizationManagerServletRequestMatcherRegistry
|
||||||
AbstractRequestMatcherBuilderRegistry<AuthorizedUrl<AuthorizationManagerServletRequestMatcherRegistry>> {
|
extends AbstractRequestMatcherBuilderRegistry<ServletAuthorizedUrl> {
|
||||||
|
|
||||||
private final RequestMatcherDelegatingAuthorizationManager.Builder managerBuilder = RequestMatcherDelegatingAuthorizationManager
|
private final RequestMatcherDelegatingAuthorizationManager.Builder managerBuilder = RequestMatcherDelegatingAuthorizationManager
|
||||||
.builder();
|
.builder();
|
||||||
@ -437,10 +436,9 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected AuthorizedUrl<AuthorizationManagerServletRequestMatcherRegistry> chainRequestMatchers(
|
protected ServletAuthorizedUrl chainRequestMatchers(List<RequestMatcher> requestMatchers) {
|
||||||
List<RequestMatcher> requestMatchers) {
|
|
||||||
this.unmappedMatchers = requestMatchers;
|
this.unmappedMatchers = requestMatchers;
|
||||||
return new AuthorizedUrl<>((manager) -> addMapping(requestMatchers, manager));
|
return new ServletAuthorizedUrl((manager) -> addMapping(requestMatchers, manager));
|
||||||
}
|
}
|
||||||
|
|
||||||
private AuthorizationManagerServletRequestMatcherRegistry addMapping(List<RequestMatcher> matchers,
|
private AuthorizationManagerServletRequestMatcherRegistry addMapping(List<RequestMatcher> matchers,
|
||||||
@ -454,6 +452,147 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An object that allows configuring the {@link AuthorizationManager} for
|
||||||
|
* {@link RequestMatcher}s.
|
||||||
|
*
|
||||||
|
* @author Josh Cummings
|
||||||
|
* @since 6.2
|
||||||
|
*/
|
||||||
|
public final class ServletAuthorizedUrl {
|
||||||
|
|
||||||
|
private final Function<AuthorizationManager<RequestAuthorizationContext>, AuthorizationManagerServletRequestMatcherRegistry> registrar;
|
||||||
|
|
||||||
|
ServletAuthorizedUrl(
|
||||||
|
Function<AuthorizationManager<RequestAuthorizationContext>, AuthorizationManagerServletRequestMatcherRegistry> registrar) {
|
||||||
|
this.registrar = registrar;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify that URLs are allowed by anyone.
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry permitAll() {
|
||||||
|
return access(permitAllAuthorizationManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify that URLs are not allowed by anyone.
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry denyAll() {
|
||||||
|
return access((a, o) -> new AuthorizationDecision(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies a user requires a role.
|
||||||
|
* @param role the role that should be required which is prepended with ROLE_
|
||||||
|
* automatically (i.e. USER, ADMIN, etc). It should not start with ROLE_
|
||||||
|
* @return {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry hasRole(String role) {
|
||||||
|
return access(withRoleHierarchy(AuthorityAuthorizationManager
|
||||||
|
.hasAnyRole(AuthorizeHttpRequestsConfigurer.this.rolePrefix, new String[] { role })));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies that a user requires one of many roles.
|
||||||
|
* @param roles the roles that the user should have at least one of (i.e.
|
||||||
|
* ADMIN, USER, etc). Each role should not start with ROLE_ since it is
|
||||||
|
* automatically prepended already
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry hasAnyRole(String... roles) {
|
||||||
|
return access(withRoleHierarchy(AuthorityAuthorizationManager
|
||||||
|
.hasAnyRole(AuthorizeHttpRequestsConfigurer.this.rolePrefix, roles)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies a user requires an authority.
|
||||||
|
* @param authority the authority that should be required
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry hasAuthority(String authority) {
|
||||||
|
return access(withRoleHierarchy(AuthorityAuthorizationManager.hasAuthority(authority)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies that a user requires one of many authorities.
|
||||||
|
* @param authorities the authorities that the user should have at least one
|
||||||
|
* of (i.e. ROLE_USER, ROLE_ADMIN, etc)
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry hasAnyAuthority(String... authorities) {
|
||||||
|
return access(withRoleHierarchy(AuthorityAuthorizationManager.hasAnyAuthority(authorities)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private AuthorityAuthorizationManager<RequestAuthorizationContext> withRoleHierarchy(
|
||||||
|
AuthorityAuthorizationManager<RequestAuthorizationContext> manager) {
|
||||||
|
manager.setRoleHierarchy(AuthorizeHttpRequestsConfigurer.this.roleHierarchy.get());
|
||||||
|
return manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify that URLs are allowed by any authenticated user.
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry authenticated() {
|
||||||
|
return access(AuthenticatedAuthorizationManager.authenticated());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify that URLs are allowed by users who have authenticated and were not
|
||||||
|
* "remembered".
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customization
|
||||||
|
* @see RememberMeConfigurer
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry fullyAuthenticated() {
|
||||||
|
return access(AuthenticatedAuthorizationManager.fullyAuthenticated());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify that URLs are allowed by users that have been remembered.
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customization
|
||||||
|
* @since 5.8
|
||||||
|
* @see RememberMeConfigurer
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry rememberMe() {
|
||||||
|
return access(AuthenticatedAuthorizationManager.rememberMe());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify that URLs are allowed by anonymous users.
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customization
|
||||||
|
* @since 5.8
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry anonymous() {
|
||||||
|
return access(AuthenticatedAuthorizationManager.anonymous());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows specifying a custom {@link AuthorizationManager}.
|
||||||
|
* @param manager the {@link AuthorizationManager} to use
|
||||||
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
|
* customizations
|
||||||
|
*/
|
||||||
|
public AuthorizationManagerServletRequestMatcherRegistry access(
|
||||||
|
AuthorizationManager<RequestAuthorizationContext> manager) {
|
||||||
|
Assert.notNull(manager, "manager cannot be null");
|
||||||
|
return this.registrar.apply(manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -462,11 +601,12 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
*
|
*
|
||||||
* @author Evgeniy Cheban
|
* @author Evgeniy Cheban
|
||||||
*/
|
*/
|
||||||
public class AuthorizedUrl<R> {
|
public class AuthorizedUrl {
|
||||||
|
|
||||||
private final Function<AuthorizationManager<RequestAuthorizationContext>, R> registrar;
|
private final Function<AuthorizationManager<RequestAuthorizationContext>, AuthorizationManagerRequestMatcherRegistry> registrar;
|
||||||
|
|
||||||
AuthorizedUrl(Function<AuthorizationManager<RequestAuthorizationContext>, R> registrar) {
|
AuthorizedUrl(
|
||||||
|
Function<AuthorizationManager<RequestAuthorizationContext>, AuthorizationManagerRequestMatcherRegistry> registrar) {
|
||||||
this.registrar = registrar;
|
this.registrar = registrar;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -475,7 +615,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R permitAll() {
|
public AuthorizationManagerRequestMatcherRegistry permitAll() {
|
||||||
return access(permitAllAuthorizationManager);
|
return access(permitAllAuthorizationManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -484,7 +624,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R denyAll() {
|
public AuthorizationManagerRequestMatcherRegistry denyAll() {
|
||||||
return access((a, o) -> new AuthorizationDecision(false));
|
return access((a, o) -> new AuthorizationDecision(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,7 +635,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R hasRole(String role) {
|
public AuthorizationManagerRequestMatcherRegistry hasRole(String role) {
|
||||||
return access(withRoleHierarchy(AuthorityAuthorizationManager
|
return access(withRoleHierarchy(AuthorityAuthorizationManager
|
||||||
.hasAnyRole(AuthorizeHttpRequestsConfigurer.this.rolePrefix, new String[] { role })));
|
.hasAnyRole(AuthorizeHttpRequestsConfigurer.this.rolePrefix, new String[] { role })));
|
||||||
}
|
}
|
||||||
@ -508,7 +648,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R hasAnyRole(String... roles) {
|
public AuthorizationManagerRequestMatcherRegistry hasAnyRole(String... roles) {
|
||||||
return access(withRoleHierarchy(
|
return access(withRoleHierarchy(
|
||||||
AuthorityAuthorizationManager.hasAnyRole(AuthorizeHttpRequestsConfigurer.this.rolePrefix, roles)));
|
AuthorityAuthorizationManager.hasAnyRole(AuthorizeHttpRequestsConfigurer.this.rolePrefix, roles)));
|
||||||
}
|
}
|
||||||
@ -519,7 +659,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R hasAuthority(String authority) {
|
public AuthorizationManagerRequestMatcherRegistry hasAuthority(String authority) {
|
||||||
return access(withRoleHierarchy(AuthorityAuthorizationManager.hasAuthority(authority)));
|
return access(withRoleHierarchy(AuthorityAuthorizationManager.hasAuthority(authority)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -530,7 +670,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R hasAnyAuthority(String... authorities) {
|
public AuthorizationManagerRequestMatcherRegistry hasAnyAuthority(String... authorities) {
|
||||||
return access(withRoleHierarchy(AuthorityAuthorizationManager.hasAnyAuthority(authorities)));
|
return access(withRoleHierarchy(AuthorityAuthorizationManager.hasAnyAuthority(authorities)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -545,7 +685,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R authenticated() {
|
public AuthorizationManagerRequestMatcherRegistry authenticated() {
|
||||||
return access(AuthenticatedAuthorizationManager.authenticated());
|
return access(AuthenticatedAuthorizationManager.authenticated());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -557,7 +697,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @since 5.8
|
* @since 5.8
|
||||||
* @see RememberMeConfigurer
|
* @see RememberMeConfigurer
|
||||||
*/
|
*/
|
||||||
public R fullyAuthenticated() {
|
public AuthorizationManagerRequestMatcherRegistry fullyAuthenticated() {
|
||||||
return access(AuthenticatedAuthorizationManager.fullyAuthenticated());
|
return access(AuthenticatedAuthorizationManager.fullyAuthenticated());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -568,7 +708,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @since 5.8
|
* @since 5.8
|
||||||
* @see RememberMeConfigurer
|
* @see RememberMeConfigurer
|
||||||
*/
|
*/
|
||||||
public R rememberMe() {
|
public AuthorizationManagerRequestMatcherRegistry rememberMe() {
|
||||||
return access(AuthenticatedAuthorizationManager.rememberMe());
|
return access(AuthenticatedAuthorizationManager.rememberMe());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -578,7 +718,7 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* customization
|
* customization
|
||||||
* @since 5.8
|
* @since 5.8
|
||||||
*/
|
*/
|
||||||
public R anonymous() {
|
public AuthorizationManagerRequestMatcherRegistry anonymous() {
|
||||||
return access(AuthenticatedAuthorizationManager.anonymous());
|
return access(AuthenticatedAuthorizationManager.anonymous());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -588,7 +728,8 @@ public final class AuthorizeHttpRequestsConfigurer<H extends HttpSecurityBuilder
|
|||||||
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
* @return the {@link AuthorizationManagerRequestMatcherRegistry} for further
|
||||||
* customizations
|
* customizations
|
||||||
*/
|
*/
|
||||||
public R access(AuthorizationManager<RequestAuthorizationContext> manager) {
|
public AuthorizationManagerRequestMatcherRegistry access(
|
||||||
|
AuthorizationManager<RequestAuthorizationContext> manager) {
|
||||||
Assert.notNull(manager, "manager cannot be null");
|
Assert.notNull(manager, "manager cannot be null");
|
||||||
return this.registrar.apply(manager);
|
return this.registrar.apply(manager);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user