123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- *
- */
- package com.yihu.base.security.sms;
- import com.yihu.base.security.sms.filter.SmsvalidateCodeFilter;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.authentication.AuthenticationManager;
- import org.springframework.security.config.annotation.SecurityConfigurerAdapter;
- import org.springframework.security.config.annotation.web.builders.HttpSecurity;
- import org.springframework.security.core.userdetails.UserDetailsService;
- import org.springframework.security.web.DefaultSecurityFilterChain;
- import org.springframework.security.web.authentication.AuthenticationFailureHandler;
- import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
- import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
- import org.springframework.stereotype.Component;
- /**
- * @author chenweida
- */
- @Component
- public class SmsCodeAuthenticationSecurityConfig extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> {
- @Autowired
- private AuthenticationSuccessHandler authenticationSuccessHandler;
- @Autowired
- private AuthenticationFailureHandler authenticationFailureHandler;
- @Autowired
- private UserDetailsService userDetailsService;
- @Autowired
- private SmsvalidateCodeFilter smsvalidateCodeFilter;
- @Override
- public void configure(HttpSecurity http) throws Exception {
- //短信验证码过滤器
- SmsCodeAuthenticationFilter smsCodeAuthenticationFilter = new SmsCodeAuthenticationFilter();
- smsCodeAuthenticationFilter.setAuthenticationManager(http.getSharedObject(AuthenticationManager.class));
- smsCodeAuthenticationFilter.setAuthenticationSuccessHandler(authenticationSuccessHandler);
- smsCodeAuthenticationFilter.setAuthenticationFailureHandler(authenticationFailureHandler);
- SmsCodeAuthenticationProvider smsCodeAuthenticationProvider = new SmsCodeAuthenticationProvider();
- smsCodeAuthenticationProvider.setUserDetailsService(userDetailsService);
- http.authenticationProvider(smsCodeAuthenticationProvider)
- .addFilterAfter(smsCodeAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)//在账号密码验证过滤器之后添加短信验证码过滤器
- .addFilterBefore(smsvalidateCodeFilter,SmsCodeAuthenticationFilter.class); //添加短信验证码登陆过滤器
- }
- }
|