SecurityConfig.java 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. package com.poyee.common.service.config;
  2. import com.poyee.common.service.common.filter.AuthenticationFilter;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  6. import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
  7. import org.springframework.security.config.http.SessionCreationPolicy;
  8. import org.springframework.security.web.SecurityFilterChain;
  9. import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
  10. @Configuration
  11. public class SecurityConfig {
  12. private final AuthenticationFilter authenticationFilter;
  13. public SecurityConfig(AuthenticationFilter authenticationFilter) {
  14. this.authenticationFilter = authenticationFilter;
  15. }
  16. @Bean
  17. public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
  18. http.csrf(AbstractHttpConfigurer::disable) // 禁用 CSRF
  19. .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) // 使用无状态会话
  20. .authorizeHttpRequests(auth -> auth.antMatchers("/actuator/**").permitAll().anyRequest().authenticated() // 其他请求需要身份验证
  21. )
  22. .addFilterBefore(authenticationFilter, UsernamePasswordAuthenticationFilter.class); // 添加自定义过滤器
  23. return http.build();
  24. }
  25. }