@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
//        http.sessionManagement(AbstractHttpConfigurer::disable).authenticationManager(authenticationManager)

        http.authorizeHttpRequests(auth ->  auth
                .requestMatchers("/user/login").permitAll()
                .anyRequest().authenticated()
        );

        // 自定义用户信息
        http.userDetailsService(new SecurityUserService());

        http.formLogin(fl -> fl
                // 自定义登录页面  必须为 GET 请求
                .loginPage("/user/login")
                // 自定义登录处理 表单提交 必须为 POST 请求
                .loginProcessingUrl("/user/login")
                // 自定义登录用户名参数
                .usernameParameter("user")
                // 自定义登录密码参数
                .passwordParameter("pass")
                // 登录成功跳转,默认 false
                // false:访问上一次的页面,没有则和 true 情况相同
                // true:总是访问设置的页面,一般都设置成首页
                .defaultSuccessUrl("/home/a",  true)
                // 登录成功 页面转发;优先级 > defaultSuccessUrl
                .successForwardUrl("/home/a")
                // 登录成功 处理类;优先级 > successForwardUrl > defaultSuccessUrl
                .successHandler(new MySuccessHandler())
        );

        return http.build();
    }

}

更多推荐