kongzy
2024-06-03 022b17044ab6bb284fd6313da91d1d1dfb2d5079
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
@@ -1,8 +1,10 @@
package com.gkhy.assess.framework.shiro.realm;
import com.gkhy.assess.common.domain.CustomerUsernamePasswordToken;
import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.utils.RequestUtil;
import com.gkhy.assess.common.utils.SpringContextUtils;
import com.gkhy.assess.framework.shiro.JwtToken;
import com.gkhy.assess.common.domain.JwtToken;
import com.gkhy.assess.framework.shiro.service.SysLoginService;
import com.gkhy.assess.system.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
@@ -37,8 +39,17 @@
        Set<String> roles=new HashSet<>();
        Set<String> menus=new HashSet<>();
        SimpleAuthorizationInfo info=new SimpleAuthorizationInfo();
        info.addRole("admin");
        info.addStringPermission("*:*:*");
        if(sysUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
            info.addRole("monitor");
            info.addStringPermission("system:assess:monitor");
        }else if(sysUser.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())){
            info.addRole("agency");
            info.addStringPermission("system:assess:agency");
        }else{
            info.addRole("expert");
            info.addStringPermission("system:assess:expert");
        }
        return info;
    }
@@ -50,11 +61,11 @@
     */
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
        SysUser sysUser=null;
        if(authenticationToken instanceof JwtToken){
            String token= (String) authenticationToken.getCredentials();
            if(token==null){
                HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
                log.info("————————身份认证失败——————————IP地址:  "+ RequestUtil.getRequestIp(req) +",URL:"+req.getRequestURI());
                throw new AuthenticationException("token为空!");
            }
@@ -63,10 +74,10 @@
                return new SimpleAuthenticationInfo(sysUser,token,this.getName());
            }
        }else{
            UsernamePasswordToken upToken = (UsernamePasswordToken) authenticationToken;
            CustomerUsernamePasswordToken upToken = (CustomerUsernamePasswordToken) authenticationToken;
            String username = upToken.getUsername();
            String password=new String(upToken.getPassword());
            sysUser=sysLoginService.login(username,password);
            sysUser=sysLoginService.login(username,password,upToken.getIdentity());
            if(sysUser!=null){
                return new SimpleAuthenticationInfo(sysUser,password,this.getName());
            }