12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- *
- */
- package com.yihu.base.security.sms;
- import org.springframework.security.authentication.AuthenticationProvider;
- import org.springframework.security.authentication.InternalAuthenticationServiceException;
- import org.springframework.security.core.Authentication;
- import org.springframework.security.core.AuthenticationException;
- import org.springframework.security.core.userdetails.UserDetails;
- import org.springframework.security.core.userdetails.UserDetailsService;
- /**
- * @author chenweida
- *
- */
- public class SmsCodeAuthenticationProvider implements AuthenticationProvider {
- private UserDetailsService userDetailsService;
- /*
- * (non-Javadoc)
- *
- * @see org.springframework.security.authentication.AuthenticationProvider#
- * authenticate(org.springframework.security.core.Authentication)
- */
- @Override
- public Authentication authenticate(Authentication authentication) throws AuthenticationException {
- SmsCodeAuthenticationToken authenticationToken = (SmsCodeAuthenticationToken) authentication;
- //查找用户信息
- UserDetails user = userDetailsService.loadUserByUsername((String) authenticationToken.getPrincipal());
- if (user == null) {
- throw new InternalAuthenticationServiceException("无法获取用户信息");
- }
-
- SmsCodeAuthenticationToken authenticationResult = new SmsCodeAuthenticationToken(user, user.getAuthorities());
-
- authenticationResult.setDetails(authenticationToken.getDetails());
- return authenticationResult;
- }
- /*
- * (non-Javadoc)
- *
- * @see org.springframework.security.authentication.AuthenticationProvider#
- * supports(java.lang.Class)
- */
- @Override
- public boolean supports(Class<?> authentication) {
- return SmsCodeAuthenticationToken.class.isAssignableFrom(authentication);
- }
- public UserDetailsService getUserDetailsService() {
- return userDetailsService;
- }
- public void setUserDetailsService(UserDetailsService userDetailsService) {
- this.userDetailsService = userDetailsService;
- }
- }
|