|
@@ -6,10 +6,14 @@ import cn.iselab.mooctest.site.web.filter.AdminAuthFilter;
|
|
|
import cn.iselab.mooctest.site.web.filter.AuthFilter;
|
|
import cn.iselab.mooctest.site.web.filter.AuthFilter;
|
|
|
import cn.iselab.mooctest.site.web.filter.ManagerAuthFilter;
|
|
import cn.iselab.mooctest.site.web.filter.ManagerAuthFilter;
|
|
|
import cn.iselab.mooctest.site.web.filter.WorkerAuthFilter;
|
|
import cn.iselab.mooctest.site.web.filter.WorkerAuthFilter;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.boot.context.embedded.FilterRegistrationBean;
|
|
import org.springframework.boot.context.embedded.FilterRegistrationBean;
|
|
|
|
|
+import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* @author sean
|
|
* @author sean
|
|
|
* @date 2017-03-18.
|
|
* @date 2017-03-18.
|
|
@@ -17,14 +21,25 @@ import org.springframework.context.annotation.Configuration;
|
|
|
@Configuration
|
|
@Configuration
|
|
|
public class FilterConfiguration {
|
|
public class FilterConfiguration {
|
|
|
|
|
|
|
|
|
|
+ @Bean(name = "authFilterConfig")
|
|
|
|
|
+ @ConfigurationProperties(prefix = "auth")
|
|
|
|
|
+ public FilterConfig createAuthFilterConfig() {
|
|
|
|
|
+ return new FilterConfig();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Bean
|
|
@Bean
|
|
|
- public FilterRegistrationBean registerAuthFilter(AuthFilter authFilter) {
|
|
|
|
|
|
|
+ public FilterRegistrationBean registerAuthFilter(AuthFilter authFilter,
|
|
|
|
|
+ @Qualifier("authFilterConfig") FilterConfig filterConfig) {
|
|
|
|
|
+
|
|
|
|
|
+ authFilter.setEscapeUrls(filterConfig.getEscapeUrls());
|
|
|
|
|
+
|
|
|
FilterRegistrationBean bean = new FilterRegistrationBean(authFilter);
|
|
FilterRegistrationBean bean = new FilterRegistrationBean(authFilter);
|
|
|
bean.addUrlPatterns(UrlConstants.API_WORKER + "*");
|
|
bean.addUrlPatterns(UrlConstants.API_WORKER + "*");
|
|
|
bean.addUrlPatterns(UrlConstants.API_COMMON + "*");
|
|
bean.addUrlPatterns(UrlConstants.API_COMMON + "*");
|
|
|
bean.addUrlPatterns(UrlConstants.API_MANAGER + "*");
|
|
bean.addUrlPatterns(UrlConstants.API_MANAGER + "*");
|
|
|
bean.addUrlPatterns(UrlConstants.API_ADMIN + "*");
|
|
bean.addUrlPatterns(UrlConstants.API_ADMIN + "*");
|
|
|
bean.setOrder(FilterConsts.ORDER_AUTH);
|
|
bean.setOrder(FilterConsts.ORDER_AUTH);
|
|
|
|
|
+
|
|
|
return bean;
|
|
return bean;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -54,5 +69,19 @@ public class FilterConfiguration {
|
|
|
bean.setOrder(FilterConsts.ORDER_AUTH_ADMIN);
|
|
bean.setOrder(FilterConsts.ORDER_AUTH_ADMIN);
|
|
|
return bean;
|
|
return bean;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ private class FilterConfig {
|
|
|
|
|
+
|
|
|
|
|
+ private List<String> escapeUrls;
|
|
|
|
|
+
|
|
|
|
|
+ public List<String> getEscapeUrls() {
|
|
|
|
|
+ return escapeUrls;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void setEscapeUrls(List<String> escapeUrls) {
|
|
|
|
|
+ this.escapeUrls = escapeUrls;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|