Skip to content

Commit 884fdbf

Browse files
jzheauxrwinch
authored andcommitted
Add Bearer Token filter to Security Filters
This introduces BearerTokenAuthenticationFilter to SecurityFilters so that it can be used in the various addFilter methods and with the `custom-filter` xml tag. Fixes: gh-5479
1 parent 981d35a commit 884fdbf

File tree

6 files changed

+8
-4
lines changed

6 files changed

+8
-4
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/HttpSecurityBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ <C extends SecurityConfigurer<DefaultSecurityFilterChain, H>> C removeConfigurer
149149
* <li>{@link org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter}</li>
150150
* <li>{@link ConcurrentSessionFilter}</li>
151151
* <li>{@link DigestAuthenticationFilter}</li>
152+
* <li>{@link org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter}</li>
152153
* <li>{@link BasicAuthenticationFilter}</li>
153154
* <li>{@link RequestCacheAwareFilter}</li>
154155
* <li>{@link SecurityContextHolderAwareRequestFilter}</li>

config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterComparator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.util.Comparator;
2020
import java.util.HashMap;
2121
import java.util.Map;
22-
2322
import javax.servlet.Filter;
2423

2524
import org.springframework.security.web.access.ExceptionTranslationFilter;
@@ -108,6 +107,9 @@ final class FilterComparator implements Comparator<Filter>, Serializable {
108107
order += STEP;
109108
put(DigestAuthenticationFilter.class, order);
110109
order += STEP;
110+
filterToOrder.put(
111+
"org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter", order);
112+
order += STEP;
111113
put(BasicAuthenticationFilter.class, order);
112114
order += STEP;
113115
put(RequestCacheAwareFilter.class, order);

config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver;
3434
import org.springframework.security.oauth2.server.resource.web.DefaultBearerTokenResolver;
3535
import org.springframework.security.oauth2.server.resource.web.access.BearerTokenAccessDeniedHandler;
36-
import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
3736
import org.springframework.security.web.util.matcher.RequestMatcher;
3837
import org.springframework.util.Assert;
3938

@@ -132,7 +131,7 @@ public void configure(H http) throws Exception {
132131
filter.setBearerTokenResolver(bearerTokenResolver);
133132
filter = postProcess(filter);
134133

135-
http.addFilterBefore(filter, BasicAuthenticationFilter.class);
134+
http.addFilter(filter);
136135

137136
JwtDecoder decoder = this.jwtConfigurer.getJwtDecoder();
138137

config/src/main/java/org/springframework/security/config/http/SecurityFilters.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ enum SecurityFilters {
4242
LOGIN_PAGE_FILTER,
4343
LOGOUT_PAGE_FILTER,
4444
DIGEST_AUTH_FILTER,
45+
BEARER_TOKEN_AUTH_FILTER,
4546
BASIC_AUTH_FILTER,
4647
REQUEST_CACHE_FILTER,
4748
SERVLET_API_SUPPORT_FILTER,

config/src/main/resources/org/springframework/security/config/spring-security-5.1.rnc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,4 +906,4 @@ position =
906906
## The explicit position at which the custom-filter should be placed in the chain. Use if you are replacing a standard filter.
907907
attribute position {named-security-filter}
908908

909-
named-security-filter = "FIRST" | "CHANNEL_FILTER" | "SECURITY_CONTEXT_FILTER" | "CONCURRENT_SESSION_FILTER" | "WEB_ASYNC_MANAGER_FILTER" | "HEADERS_FILTER" | "CORS_FILTER" | "CSRF_FILTER" | "LOGOUT_FILTER" | "X509_FILTER" | "PRE_AUTH_FILTER" | "CAS_FILTER" | "FORM_LOGIN_FILTER" | "OPENID_FILTER" | "LOGIN_PAGE_FILTER" |"LOGOUT_PAGE_FILTER" | "DIGEST_AUTH_FILTER" | "BASIC_AUTH_FILTER" | "REQUEST_CACHE_FILTER" | "SERVLET_API_SUPPORT_FILTER" | "JAAS_API_SUPPORT_FILTER" | "REMEMBER_ME_FILTER" | "ANONYMOUS_FILTER" | "SESSION_MANAGEMENT_FILTER" | "EXCEPTION_TRANSLATION_FILTER" | "FILTER_SECURITY_INTERCEPTOR" | "SWITCH_USER_FILTER" | "LAST"
909+
named-security-filter = "FIRST" | "CHANNEL_FILTER" | "SECURITY_CONTEXT_FILTER" | "CONCURRENT_SESSION_FILTER" | "WEB_ASYNC_MANAGER_FILTER" | "HEADERS_FILTER" | "CORS_FILTER" | "CSRF_FILTER" | "LOGOUT_FILTER" | "X509_FILTER" | "PRE_AUTH_FILTER" | "CAS_FILTER" | "FORM_LOGIN_FILTER" | "OPENID_FILTER" | "LOGIN_PAGE_FILTER" |"LOGOUT_PAGE_FILTER" | "DIGEST_AUTH_FILTER" | "BEARER_TOKEN_AUTH_FILTER" | "BASIC_AUTH_FILTER" | "REQUEST_CACHE_FILTER" | "SERVLET_API_SUPPORT_FILTER" | "JAAS_API_SUPPORT_FILTER" | "REMEMBER_ME_FILTER" | "ANONYMOUS_FILTER" | "SESSION_MANAGEMENT_FILTER" | "EXCEPTION_TRANSLATION_FILTER" | "FILTER_SECURITY_INTERCEPTOR" | "SWITCH_USER_FILTER" | "LAST"

config/src/main/resources/org/springframework/security/config/spring-security-5.1.xsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2721,6 +2721,7 @@
27212721
<xs:enumeration value="LOGIN_PAGE_FILTER"/>
27222722
<xs:enumeration value="LOGOUT_PAGE_FILTER"/>
27232723
<xs:enumeration value="DIGEST_AUTH_FILTER"/>
2724+
<xs:enumeration value="BEARER_TOKEN_AUTH_FILTER"/>
27242725
<xs:enumeration value="BASIC_AUTH_FILTER"/>
27252726
<xs:enumeration value="REQUEST_CACHE_FILTER"/>
27262727
<xs:enumeration value="SERVLET_API_SUPPORT_FILTER"/>

0 commit comments

Comments
 (0)