22
33import cn .hutool .core .collection .CollUtil ;
44import cn .hutool .core .util .ArrayUtil ;
5+ import com .github .cadecode .uniboot .framework .config .SecurityConfig .SecurityProperties ;
56import com .github .cadecode .uniboot .framework .enums .AuthModelEnum ;
67import com .github .cadecode .uniboot .framework .security .LoginSuccessHandler ;
78import com .github .cadecode .uniboot .framework .security .TokenAuthFilter ;
1415import lombok .RequiredArgsConstructor ;
1516import lombok .extern .slf4j .Slf4j ;
1617import org .springframework .boot .context .properties .ConfigurationProperties ;
18+ import org .springframework .boot .context .properties .EnableConfigurationProperties ;
1719import org .springframework .context .annotation .Bean ;
1820import org .springframework .context .annotation .Configuration ;
1921import org .springframework .http .HttpMethod ;
4648@ RequiredArgsConstructor
4749@ EnableWebSecurity
4850@ EnableGlobalMethodSecurity (prePostEnabled = true )
51+ @ EnableConfigurationProperties (SecurityProperties .class )
4952@ Configuration
50- @ ConfigurationProperties ("uni-boot.security" )
5153public class SecurityConfig {
5254
53- /**
54- * 鉴权模式
55- */
56- private AuthModelEnum authModel ;
57-
58- /**
59- * 忽略鉴权的 url
60- */
61- private List <String > ignoreUrls ;
62-
63- /**
64- * JWT Token 配置
65- */
66- private TokenConfig token ;
67-
6855 /**
6956 * 登录路径
7057 */
@@ -81,6 +68,11 @@ public class SecurityConfig {
8168 */
8269 public static final String LOGOUT_URL = "/logout" ;
8370
71+ /**
72+ * 配置项
73+ */
74+ private final SecurityProperties properties ;
75+
8476 /**
8577 * 注入各种处理器
8678 */
@@ -159,7 +151,7 @@ protected void configure(HttpSecurity http) throws Exception {
159151 .failureHandler (loginFailureHandler );
160152 // 配置 Token 校验过滤器
161153 http .addFilterBefore (tokenAuthFilter , UsernamePasswordAuthenticationFilter .class );
162- log .info ("Config Security over,AuthModel:{}" , authModel );
154+ log .info ("Config Security over,AuthModel:{}" , properties . getAuthModel () );
163155 }
164156
165157 @ Override
@@ -171,6 +163,7 @@ public void configure(WebSecurity web) {
171163 // 放行其他框架
172164 ignoring .antMatchers ("/error" , "/druid/**" , "/actuator/**" );
173165 // 设置忽略的路径
166+ List <String > ignoreUrls = properties .getIgnoreUrls ();
174167 if (CollUtil .isNotEmpty (ignoreUrls )) {
175168 log .info ("Config Security ignore urls:{}" , ignoreUrls );
176169 ignoring .antMatchers (ArrayUtil .toArray (ignoreUrls , String .class ));
@@ -179,6 +172,30 @@ public void configure(WebSecurity web) {
179172 };
180173 }
181174
175+ /**
176+ * Security 配置
177+ */
178+ @ Data
179+ @ ConfigurationProperties ("uni-boot.security" )
180+ public static class SecurityProperties {
181+
182+ /**
183+ * 鉴权模式
184+ */
185+ private AuthModelEnum authModel ;
186+
187+ /**
188+ * 忽略鉴权的 url
189+ */
190+ private List <String > ignoreUrls ;
191+
192+ /**
193+ * JWT Token 配置
194+ */
195+ private TokenConfig token ;
196+
197+ }
198+
182199 /**
183200 * JWT 配置类
184201 */
0 commit comments