package com.yuanchu.limslaboratory.shiro.realm;
|
|
import com.yuanchu.limslaboratory.pojo.User;
|
import com.yuanchu.limslaboratory.service.UserService;
|
import com.yuanchu.limslaboratory.utils.SpringUtil;
|
import org.apache.shiro.authc.*;
|
import org.apache.shiro.authz.AuthorizationInfo;
|
import org.apache.shiro.realm.AuthorizingRealm;
|
import org.apache.shiro.subject.PrincipalCollection;
|
import org.springframework.util.ObjectUtils;
|
|
public class ShiroRealm extends AuthorizingRealm {
|
|
public User user;
|
|
/**
|
* 限定这个 Realm 只处理 UsernamePasswordToken
|
*/
|
@Override
|
public boolean supports(AuthenticationToken token) {
|
return token instanceof UsernamePasswordToken;
|
}
|
|
@Override
|
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
|
return null;
|
}
|
|
@Override
|
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) {
|
String principal = (String) authenticationToken.getPrincipal();
|
//获取UserService对象
|
UserService userService = SpringUtil.getBean(UserService.class);
|
user = userService.AccordingUsernameSelectAll(principal);
|
if (!ObjectUtils.isEmpty(user)) {
|
return new SimpleAuthenticationInfo(user.getAccount(), user.getPassword(), this.getName());
|
} else {
|
throw new UnknownAccountException();
|
}
|
}
|
}
|