XiaoRuby
2023-08-07 d8a687741273d121586b83745280c57f7e9d3297
user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
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();
        }
    }
}