target/classes/com/phms/shiro/CustomRealm.java
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package com.phms.shiro;
import com.phms.mapper.UserMapper;
import com.phms.mapper.UserRoleMapper;
import com.phms.pojo.User;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
@Component
public class CustomRealm extends AuthorizingRealm {
/** 用户信息service */
private final UserMapper userMapper;
/** 用户权限service */
private final UserRoleMapper userRoleMapper;
/** logback日志记录 */
private final Logger logger = LoggerFactory.getLogger(CustomRealm.class);
private static Map<String, Session> sessionMap = new HashMap<>();
@Autowired
public CustomRealm(UserMapper userMapper, UserRoleMapper userRoleMapper) {
this.userMapper = userMapper;
this.userRoleMapper = userRoleMapper;
}
/**
* @Override
* @see org.apache.shiro.realm.AuthenticatingRealm#doGetAuthenticationInfo(AuthenticationToken)
* <BR>
* Method name: doGetAuthenticationInfo <BR>
* 获取身份验证信息 Description: Shiro中,最终是通过 Realm 来获取应用程序中的用户、角色及权限信息的。 <BR>
* @param authenticationToken 用户身份信息 token
* @return 返回封装了用户信息的 AuthenticationInfo 实例
* @throws AuthenticationException <BR>
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken)
throws AuthenticationException {
// 获取token令牌
UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
// 从数据库获取对应用户名密码的用户
User user = userMapper.getByName(token.getUsername());
if (null == user) {
logger.warn("{}---用户不存在", token.getUsername());
// 向前台抛出用户不存在json对象
throw new AccountException("USERNAME_NOT_EXIST");
}
后面还有 66 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
