Selaa lähdekoodia

【修复】修复根据token获取用户信息接口为最新信息,用于前端修改用户信息后获取

就是那个锅 4 vuotta sitten
vanhempi
commit
9176045eb3

+ 9 - 0
guns-base-support/guns-core/src/main/java/cn/stylefeng/guns/core/context/login/LoginContext.java

@ -156,4 +156,13 @@ public interface LoginContext {
     * @date 2020/4/20 16:04
     */
    List<String> getLoginUserRoleIds();
    /**
     * 获取最新的用户信息,用于修改之后前端获取
     *
     * @return 最新的用户信息
     * @author xuyuxiang
     * @date 2020/9/20 15:18
     **/
    SysLoginUser getSysLoginUserUpToDate();
}

+ 14 - 0
guns-base-support/guns-system/src/main/java/cn/stylefeng/guns/sys/modular/auth/context/LoginContextSpringSecurityImpl.java

@ -36,6 +36,8 @@ import cn.stylefeng.guns.core.pojo.login.LoginEmpInfo;
import cn.stylefeng.guns.core.pojo.login.SysLoginUser;
import cn.stylefeng.guns.sys.core.enums.AdminTypeEnum;
import cn.stylefeng.guns.sys.modular.auth.service.AuthService;
import cn.stylefeng.guns.sys.modular.user.entity.SysUser;
import cn.stylefeng.guns.sys.modular.user.service.SysUserService;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
@ -56,6 +58,9 @@ public class LoginContextSpringSecurityImpl implements LoginContext {
    @Resource
    private AuthService authService;
    @Resource
    private SysUserService sysUserService;
    private LoginContextSpringSecurityImpl() {
    }
@ -263,6 +268,15 @@ public class LoginContextSpringSecurityImpl implements LoginContext {
        return resultList;
    }
    @Override
    public SysLoginUser getSysLoginUserUpToDate() {
        SysLoginUser sysLoginUser = this.getSysLoginUser();
        Long loginUserId = sysLoginUser.getId();
        SysUser sysUser = sysUserService.getById(loginUserId);
        //构造SysLoginUser
        return authService.genSysLoginUser(sysUser);
    }
    /**
     * 获取当前用户的角色编码集合
     *

+ 1 - 1
guns-base-support/guns-system/src/main/java/cn/stylefeng/guns/sys/modular/auth/controller/SysLoginController.java

@ -89,7 +89,7 @@ public class SysLoginController {
     */
    @GetMapping("/getLoginUser")
    public ResponseData getLoginUser() {
        return new SuccessResponseData(LoginContextHolder.me().getSysLoginUser());
        return new SuccessResponseData(LoginContextHolder.me().getSysLoginUserUpToDate());
    }
}

+ 11 - 0
guns-base-support/guns-system/src/main/java/cn/stylefeng/guns/sys/modular/auth/service/AuthService.java

@ -25,6 +25,7 @@ Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意
package cn.stylefeng.guns.sys.modular.auth.service;
import cn.stylefeng.guns.core.pojo.login.SysLoginUser;
import cn.stylefeng.guns.sys.modular.user.entity.SysUser;
import org.springframework.security.core.Authentication;
import javax.servlet.http.HttpServletRequest;
@ -111,4 +112,14 @@ public interface AuthService {
     * @date 2020/9/3 21:22
     */
    void cacheTenantInfo(String tenantCode);
    /**
     * 根据系统用户构造用户登陆信息
     *
     * @param sysUser 系统用户
     * @return 用户信息
     * @author xuyuxiang
     * @date 2020/9/20 15:21
     **/
    SysLoginUser genSysLoginUser(SysUser sysUser);
}

+ 2 - 1
guns-base-support/guns-system/src/main/java/cn/stylefeng/guns/sys/modular/auth/service/impl/AuthServiceImpl.java

@ -345,7 +345,8 @@ public class AuthServiceImpl implements AuthService, UserDetailsService {
     * @author xuyuxiang
     * @date 2020/3/12 17:32
     */
    private SysLoginUser genSysLoginUser(SysUser sysUser) {
    @Override
    public SysLoginUser genSysLoginUser(SysUser sysUser) {
        SysLoginUser sysLoginUser = new SysLoginUser();
        BeanUtil.copyProperties(sysUser, sysLoginUser);
        LoginUserFactory.fillLoginUserInfo(sysLoginUser);