forked from kidgrow-microservices-platform

luliqiang
2020-12-31 6fb14149d62199cfcc0448c82eb2f51f9c5181de
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/resolver/TokenArgumentResolver.java
@@ -1,11 +1,14 @@
package com.kidgrow.common.resolver;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.kidgrow.common.annotation.LoginUser;
import com.kidgrow.common.constant.SecurityConstants;
import com.kidgrow.common.feign.UserService;
import com.kidgrow.common.model.SysOrganization;
import com.kidgrow.common.model.SysRole;
import com.kidgrow.common.model.SysUser;
import com.kidgrow.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
@@ -64,6 +67,7 @@
        String userId = request.getHeader(SecurityConstants.USER_ID_HEADER);
        String username = request.getHeader(SecurityConstants.USER_HEADER);
        String roles = request.getHeader(SecurityConstants.ROLE_HEADER);
        String organizations = request.getHeader(SecurityConstants.USER_ORGS_HEADER);
        if (StrUtil.isBlank(username)) {
            log.warn("resolveArgument error username is empty");
            return null;
@@ -75,14 +79,21 @@
            user = new SysUser();
            user.setId(Long.valueOf(userId));
            user.setUsername(username);
//            List<SysRole> sysRoleList = new ArrayList<>();
            if(StringUtils.isNotBlank(roles)){
                List<SysRole> sysRoles = JSON.parseArray(roles, SysRole.class);
//                Arrays.stream(roles.split(",")).forEach(role -> {
//                    SysRole sysRole = new SysRole();
//                    sysRole.setCode(role);
//                    sysRoleList.add(sysRole);
//                });
                user.setRoles(sysRoles);
            }
            if(organizations!=null){
                List<SysOrganization> sysOrganizations = JSON.parseArray(organizations, SysOrganization.class);
                user.setOrganizations(sysOrganizations);
            }
        }
        List<SysRole> sysRoleList = new ArrayList<>();
        Arrays.stream(roles.split(",")).forEach(role -> {
            SysRole sysRole = new SysRole();
            sysRole.setCode(role);
            sysRoleList.add(sysRole);
        });
        user.setRoles(sysRoleList);
        return user;
    }
}