|
@@ -34,33 +34,24 @@ public class MobileAuthenticationProvider implements AuthenticationProvider, Ini
|
|
|
|
|
|
@Override
|
|
|
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
|
|
|
- Assert.isInstanceOf(MobileAuthenticationToken.class, authentication,
|
|
|
- () -> messages.getMessage(
|
|
|
- "MobileAuthenticationProvider.onlySupports",
|
|
|
- "Only MobileAuthenticationProvider is supported"));
|
|
|
|
|
|
MobileAuthenticationToken authenticationToken = (MobileAuthenticationToken) authentication;
|
|
|
String mobile = authenticationToken.getName();
|
|
|
String code = (String) authenticationToken.getCredentials();
|
|
|
|
|
|
- try {
|
|
|
+
|
|
|
+ // 测试用,跳过短信验证
|
|
|
+ if ("17600010020".equals(mobile)) {
|
|
|
+ UserDetails userDetails = mobileUserDetailsService.loadUserByMobile(mobile);
|
|
|
+ return createSuccessAuthentication(authentication, userDetails);
|
|
|
+ }
|
|
|
+ // 短信验证码效验
|
|
|
+ if (mobileVerifyCodeService.verifyCode(mobile, code)) {
|
|
|
UserDetails userDetails = mobileUserDetailsService.loadUserByMobile(mobile);
|
|
|
- if (userDetails == null) {
|
|
|
- throw new BadCredentialsException("Bad credentials");
|
|
|
- }
|
|
|
- // 测试用,跳过短信验证
|
|
|
- if("17600010020".equals(mobile)){
|
|
|
- return createSuccessAuthentication(authentication, userDetails);
|
|
|
- }
|
|
|
- // 短信验证码效验
|
|
|
- if (mobileVerifyCodeService.verifyCode(mobile, code)) {
|
|
|
- return createSuccessAuthentication(authentication, userDetails);
|
|
|
- } else {
|
|
|
- throw new BadCredentialsException("mobile code is not matched");
|
|
|
- }
|
|
|
- } catch (UsernameNotFoundException ex) {
|
|
|
- throw new BadCredentialsException(this.messages
|
|
|
- .getMessage("MobileAuthenticationProvider.badCredentials", "Bad credentials"));
|
|
|
+
|
|
|
+ return createSuccessAuthentication(authentication, userDetails);
|
|
|
+ } else {
|
|
|
+ throw new BadCredentialsException("mobile code is not matched");
|
|
|
}
|
|
|
|
|
|
}
|