Browse Source

feat(security): 添加 SecurityBootstrap安全配置

- 在 AppAutoConfiguration 中添加 SecurityBootstrap 配置
- 使用默认安全配置初始化 SecurityBootstrap
- 新增认证、登录、登出和授权过滤器注册 bean
- 在 VirtualCl2Connector 和 DashboardManager 中实现 Cl2Connector 接口方法
master
lizw-2015 6 months ago
parent
commit
106b6bd2a4
  1. 24
      servo/src/main/java/com/galaxis/rcs/connector/cl2/VirtualCl2Connector.java
  2. 24
      servo/src/main/java/com/yvan/logisticsMonitor/dashboard/DashboardManager.java
  3. 50
      servo/src/main/java/com/yvan/workbench/autoconfigure/AppAutoConfiguration.java

24
servo/src/main/java/com/galaxis/rcs/connector/cl2/VirtualCl2Connector.java

@ -6,4 +6,28 @@ package com.galaxis.rcs.connector.cl2;
*/ */
public class VirtualCl2Connector implements Cl2Connector { public class VirtualCl2Connector implements Cl2Connector {
@Override
public int transport() {
return 0;
}
@Override
public int pickup() {
return 0;
}
@Override
public int unload() {
return 0;
}
@Override
public int charge() {
return 0;
}
@Override
public int lift() {
return 0;
}
} }

24
servo/src/main/java/com/yvan/logisticsMonitor/dashboard/DashboardManager.java

@ -3,4 +3,28 @@ package com.yvan.logisticsMonitor.dashboard;
import com.galaxis.rcs.connector.cl2.Cl2Connector; import com.galaxis.rcs.connector.cl2.Cl2Connector;
public class DashboardManager implements Cl2Connector { public class DashboardManager implements Cl2Connector {
@Override
public int transport() {
return 0;
}
@Override
public int pickup() {
return 0;
}
@Override
public int unload() {
return 0;
}
@Override
public int charge() {
return 0;
}
@Override
public int lift() {
return 0;
}
} }

50
servo/src/main/java/com/yvan/workbench/autoconfigure/AppAutoConfiguration.java

@ -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);
} }

Loading…
Cancel
Save