| | |
| | | import com.doumee.service.system.SystemUserService; |
| | | import org.apache.shiro.authc.AuthenticationInfo; |
| | | import org.apache.shiro.authc.AuthenticationToken; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | | import org.apache.shiro.authc.credential.HashedCredentialsMatcher; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | |
| | | /** |
| | | * Shiro密码比对处理 |
| | | * @author Eva.Caesar Liu |
| | | * @date 2023/02/14 11:14 |
| | | * @date 2023/04/17 12:11 |
| | | */ |
| | | @Component |
| | | public class ShiroCredentialsMatcher extends HashedCredentialsMatcher { |
| | | |
| | | @Lazy |
| | | @Autowired |
| | | private SystemUserService systemUserService; |
| | | |
| | | @Override |
| | | public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) { |
| | | UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token; |
| | | ShiroToken usernamePasswordToken = (ShiroToken) token; |
| | | SystemUser queryUserDto = new SystemUser(); |
| | | queryUserDto.setUsername(usernamePasswordToken.getUsername()); |
| | | queryUserDto.setDeleted(Boolean.FALSE); |
| | |
| | | if (systemUser == null) { |
| | | return Boolean.FALSE; |
| | | } |
| | | if(usernamePasswordToken.getDdLogin()){ |
| | | return Boolean.TRUE; |
| | | } |
| | | if(usernamePasswordToken.getWxLogin()){ |
| | | return Boolean.TRUE; |
| | | } |
| | | // 加密密码 |
| | | String pwd = Utils.Secure.encryptPassword(new String(usernamePasswordToken.getPassword()), systemUser.getSalt()); |
| | | // 比较密码 |