You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.9 KiB
40 lines
1.9 KiB
package cc.bnblogs.springsecurity.validate.smscode; |
|
|
|
import cc.bnblogs.springsecurity.Service.UserDetailService; |
|
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.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; |
|
|
|
@Component |
|
public class SmsAuthenticationConfig extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> { |
|
|
|
@Autowired |
|
private AuthenticationSuccessHandler authenticationSuccessHandler; |
|
|
|
@Autowired |
|
private AuthenticationFailureHandler authenticationFailureHandler; |
|
|
|
@Autowired |
|
private UserDetailService userDetailService; |
|
|
|
@Override |
|
public void configure(HttpSecurity http){ |
|
SmsAuthenticationFilter smsAuthenticationFilter = new SmsAuthenticationFilter(); |
|
smsAuthenticationFilter.setAuthenticationManager(http.getSharedObject(AuthenticationManager.class)); |
|
smsAuthenticationFilter.setAuthenticationSuccessHandler(authenticationSuccessHandler); |
|
smsAuthenticationFilter.setAuthenticationFailureHandler(authenticationFailureHandler); |
|
|
|
SmsAuthenticationProvider smsAuthenticationProvider = new SmsAuthenticationProvider(); |
|
smsAuthenticationProvider.setUserDetailService(userDetailService); |
|
|
|
http.authenticationProvider(smsAuthenticationProvider) |
|
.addFilterAfter(smsAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); |
|
|
|
} |
|
}
|
|
|