Enhance exclude url patterns of AdminAuthenticationFilter

pull/137/head
johnniang 2019-03-30 22:45:28 +08:00
parent e99561ef6a
commit 78b6fe5fe2
2 changed files with 20 additions and 6 deletions

View File

@ -111,7 +111,7 @@ public class HaloConfiguration {
ObjectMapper objectMapper) { ObjectMapper objectMapper) {
AdminAuthenticationFilter adminAuthenticationFilter = new AdminAuthenticationFilter(cacheStore, userService, haloProperties); AdminAuthenticationFilter adminAuthenticationFilter = new AdminAuthenticationFilter(cacheStore, userService, haloProperties);
// Config the admin filter // Config the admin filter
adminAuthenticationFilter.setExcludeUrlPatterns("/admin/api/login") adminAuthenticationFilter.addExcludeUrlPatterns("/admin/api/login")
.setFailureHandler(new AdminAuthenticationFailureHandler() .setFailureHandler(new AdminAuthenticationFailureHandler()
.setProductionEnv(haloProperties.getProductionEnv()) .setProductionEnv(haloProperties.getProductionEnv())
.setObjectMapper(objectMapper)); .setObjectMapper(objectMapper));

View File

@ -59,7 +59,7 @@ public class AdminAuthenticationFilter extends OncePerRequestFilter {
private final AntPathMatcher antPathMatcher; private final AntPathMatcher antPathMatcher;
private Collection<String> excludeUrlPatterns; private Set<String> excludeUrlPatterns = new HashSet<>(1);
public AdminAuthenticationFilter(StringCacheStore cacheStore, public AdminAuthenticationFilter(StringCacheStore cacheStore,
UserService userService, UserService userService,
@ -155,12 +155,26 @@ public class AdminAuthenticationFilter extends OncePerRequestFilter {
} }
/** /**
* Set exclude url patterns. * Sets exclude url patterns.
* *
* @param excludeUrls exclude urls * @param excludeUrlPatterns exclude urls
*/ */
public AdminAuthenticationFilter setExcludeUrlPatterns(String... excludeUrls) { public AdminAuthenticationFilter setExcludeUrlPatterns(Collection<String> excludeUrlPatterns) {
this.excludeUrlPatterns = excludeUrls == null ? Collections.emptyList() : Collections.unmodifiableCollection(Arrays.asList(excludeUrls)); Assert.notNull(excludeUrlPatterns, "Exclude url patterns must not be null");
this.excludeUrlPatterns = new HashSet<>(excludeUrlPatterns);
return this;
}
/**
* Adds exclude url patterns.
*
* @param excludeUrlPatterns exclude urls
*/
public AdminAuthenticationFilter addExcludeUrlPatterns(String... excludeUrlPatterns) {
Assert.notNull(excludeUrlPatterns, "Exclude url patterns must not be null");
Collections.addAll(this.excludeUrlPatterns, excludeUrlPatterns);
return this; return this;
} }