|
|
@ -22,6 +22,7 @@ import org.clever.core.task.StartupTaskBootstrap; |
|
|
import org.clever.data.jdbc.JdbcBootstrap; |
|
|
import org.clever.data.jdbc.JdbcBootstrap; |
|
|
import org.clever.data.jdbc.config.JdbcConfig; |
|
|
import org.clever.data.jdbc.config.JdbcConfig; |
|
|
import org.clever.data.redis.RedisBootstrap; |
|
|
import org.clever.data.redis.RedisBootstrap; |
|
|
|
|
|
import org.clever.security.SecurityBootstrap; |
|
|
import org.clever.web.FilterRegistrar; |
|
|
import org.clever.web.FilterRegistrar; |
|
|
import org.clever.web.JavalinAppDataKey; |
|
|
import org.clever.web.JavalinAppDataKey; |
|
|
import org.clever.web.MvcBootstrap; |
|
|
import org.clever.web.MvcBootstrap; |
|
|
@ -35,6 +36,7 @@ import org.springframework.boot.context.properties.bind.Binder; |
|
|
import org.springframework.boot.web.servlet.FilterRegistrationBean; |
|
|
import org.springframework.boot.web.servlet.FilterRegistrationBean; |
|
|
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 org.springframework.context.annotation.DependsOn; |
|
|
import org.springframework.core.Ordered; |
|
|
import org.springframework.core.Ordered; |
|
|
import org.springframework.core.env.Environment; |
|
|
import org.springframework.core.env.Environment; |
|
|
|
|
|
|
|
|
@ -124,6 +126,14 @@ public class AppAutoConfiguration { |
|
|
return MvcBootstrap.create(appBasicsConfig.getRootPath(), jdbcConfig.getDefaultName(), environment); |
|
|
return MvcBootstrap.create(appBasicsConfig.getRootPath(), jdbcConfig.getDefaultName(), environment); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@DependsOn({"jdbcBootstrap", "redisBootstrap"}) |
|
|
|
|
|
@Bean |
|
|
|
|
|
public SecurityBootstrap securityBootstrap() { |
|
|
|
|
|
SecurityBootstrap securityBootstrap = SecurityBootstrap.create(environment); |
|
|
|
|
|
SecurityBootstrap.useDefaultSecurity(securityBootstrap.getSecurityConfig()); |
|
|
|
|
|
return securityBootstrap; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// --------------------------------------------------------------------------------------------
|
|
|
// --------------------------------------------------------------------------------------------
|
|
|
// HttpFilter(servlet过滤器链)
|
|
|
// HttpFilter(servlet过滤器链)
|
|
|
//
|
|
|
//
|
|
|
@ -218,6 +228,46 @@ public class AppAutoConfiguration { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Bean |
|
|
@Bean |
|
|
|
|
|
public FilterRegistrationBean<HttpFilter> authenticationFilter(SecurityBootstrap securityBootstrap) { |
|
|
|
|
|
FilterRegistrationBean<HttpFilter> filterBean = new FilterRegistrationBean<>(); |
|
|
|
|
|
filterBean.setOrder(Ordered.HIGHEST_PRECEDENCE + 700); |
|
|
|
|
|
filterBean.addUrlPatterns(PathConstants.ALL); |
|
|
|
|
|
filterBean.setName("AuthenticationFilter"); |
|
|
|
|
|
filterBean.setFilter(new FilterAdapter(securityBootstrap.getAuthenticationFilter())); |
|
|
|
|
|
return filterBean; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
|
public FilterRegistrationBean<HttpFilter> loginFilter(SecurityBootstrap securityBootstrap) { |
|
|
|
|
|
FilterRegistrationBean<HttpFilter> filterBean = new FilterRegistrationBean<>(); |
|
|
|
|
|
filterBean.setOrder(Ordered.HIGHEST_PRECEDENCE + 800); |
|
|
|
|
|
filterBean.addUrlPatterns(PathConstants.ALL); |
|
|
|
|
|
filterBean.setName("LoginFilter"); |
|
|
|
|
|
filterBean.setFilter(new FilterAdapter(securityBootstrap.getLoginFilter())); |
|
|
|
|
|
return filterBean; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
|
public FilterRegistrationBean<HttpFilter> logoutFilter(SecurityBootstrap securityBootstrap) { |
|
|
|
|
|
FilterRegistrationBean<HttpFilter> filterBean = new FilterRegistrationBean<>(); |
|
|
|
|
|
filterBean.setOrder(Ordered.HIGHEST_PRECEDENCE + 900); |
|
|
|
|
|
filterBean.addUrlPatterns(PathConstants.ALL); |
|
|
|
|
|
filterBean.setName("LogoutFilter"); |
|
|
|
|
|
filterBean.setFilter(new FilterAdapter(securityBootstrap.getLogoutFilter())); |
|
|
|
|
|
return filterBean; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
|
public FilterRegistrationBean<HttpFilter> authorizationFilter(SecurityBootstrap securityBootstrap) { |
|
|
|
|
|
FilterRegistrationBean<HttpFilter> filterBean = new FilterRegistrationBean<>(); |
|
|
|
|
|
filterBean.setOrder(Ordered.HIGHEST_PRECEDENCE + 1000); |
|
|
|
|
|
filterBean.addUrlPatterns(PathConstants.ALL); |
|
|
|
|
|
filterBean.setName("AuthorizationFilter"); |
|
|
|
|
|
filterBean.setFilter(new FilterAdapter(securityBootstrap.getAuthorizationFilter())); |
|
|
|
|
|
return filterBean; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
public StaticResourceFilter rawStaticResourceFilter(AppBasicsConfig appBasicsConfig) { |
|
|
public StaticResourceFilter rawStaticResourceFilter(AppBasicsConfig appBasicsConfig) { |
|
|
return StaticResourceFilter.create(appBasicsConfig.getRootPath(), environment); |
|
|
return StaticResourceFilter.create(appBasicsConfig.getRootPath(), environment); |
|
|
} |
|
|
} |
|
|
|