diff --git a/pom.xml b/pom.xml index ddf9262b11b161d768e9f0d609223931943eb916..d9f6214d14a361a553e09e8a3e3d9b63e2bc1e17 100644 --- a/pom.xml +++ b/pom.xml @@ -15,14 +15,15 @@ org.springframework.boot spring-boot-starter-parent - 2.0.1.RELEASE + 2.1.3.RELEASE 1.8 UTF-8 UTF-8 - 1.1.5 + 1.2.0 + 1.1.5 @@ -71,23 +72,23 @@ cn.stylefeng.roses biz-support-dict - ${kernel.version} + ${roses-biz-support.version} cn.stylefeng.roses biz-support-file - ${kernel.version} + ${roses-biz-support.version} cn.stylefeng.roses biz-support-log - ${kernel.version} + ${roses-biz-support.version} org.springframework.cloud spring-cloud-dependencies - Finchley.RELEASE + Greenwich.RELEASE pom import diff --git a/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginContext.java b/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginContext.java index 1318511475afc41c68a3449c98568887eea1f557..72151318dc403e2ffde577bd69c186b77d8779c9 100644 --- a/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginContext.java +++ b/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginContext.java @@ -88,7 +88,11 @@ public class LoginContext implements AbstractLoginContext { return (T) currentUser; } else { String token = getCurrentUserToken(); - return (T) this.authService.getLoginUserByToken(token); + AbstractLoginUser abstractLoginUser = this.authService.getLoginUserByToken(token); + if (abstractLoginUser != null) { + LoginUserHolder.set(abstractLoginUser); + } + return (T) abstractLoginUser; } } diff --git a/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginUser.java b/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginUser.java index d12c57062a3fe480d2e020072c1360b0f0daeb65..67ed5e1ccca265a3985783cd2679f93549d3d420 100644 --- a/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginUser.java +++ b/roses-system-api/src/main/java/cn/stylefeng/roses/system/api/context/LoginUser.java @@ -19,6 +19,7 @@ package cn.stylefeng.roses.system.api.context; import cn.stylefeng.roses.kernel.model.auth.AbstractLoginUser; import lombok.Data; +import java.util.HashSet; import java.util.Set; @@ -32,10 +33,15 @@ import java.util.Set; @Data public class LoginUser implements AbstractLoginUser { + public static final String JWT_KEY_USER_ID = "userId"; + public static final String JWT_KEY_NAME = "name"; + /** * 账号id */ - private Long accountId; + private Long userId; + + private String name; /** * 应用id @@ -45,21 +51,21 @@ public class LoginUser implements AbstractLoginUser { /** * 角色id集合 */ - private Set roleIds; + private Set roleIds = new HashSet<>(); /** * 角色编码集合 */ - private Set roleCodes; + private Set roleCodes = new HashSet<>(); /** * 可用资源集合 */ - private Set resourceUrls; + private Set resourceUrls = new HashSet<>(); @Override public Long getUserUniqueId() { - return accountId; + return userId; } @Override diff --git a/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/AuthServiceProvider.java b/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/AuthServiceProvider.java index f50bdc045655e06ec5f7d88d9a4f9cf29ad3d869..f5f09734b1f284db7ae23602735cad1bc9ae6da6 100644 --- a/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/AuthServiceProvider.java +++ b/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/AuthServiceProvider.java @@ -16,6 +16,7 @@ package cn.stylefeng.roses.system.modular.provider; import cn.stylefeng.roses.kernel.model.api.AuthService; +import cn.stylefeng.roses.kernel.model.auth.AbstractLoginUser; import cn.stylefeng.roses.system.api.context.LoginUser; import cn.stylefeng.roses.system.modular.service.SysUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -52,7 +53,7 @@ public class AuthServiceProvider implements AuthService { } @Override - public LoginUser getLoginUserByToken(@RequestParam("token") String token) { + public AbstractLoginUser getLoginUserByToken(@RequestParam("token") String token) { return sysUserService.getLoginUserByToken(token); } } diff --git a/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/ResourceServiceProvider.java b/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/ResourceServiceProvider.java index c4ce7bc43aa9e4cac09557a01474d1b532e5e54b..d475f7c5bc941ae792f87b980c74e323fb4a1b1a 100644 --- a/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/ResourceServiceProvider.java +++ b/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/provider/ResourceServiceProvider.java @@ -40,12 +40,16 @@ public class ResourceServiceProvider implements ResourceService { } @Override - public Set getUserResourceUrls(@RequestParam("accountId") String accountId) { + public Set getUserResourceUrls(@RequestParam("userId") String accountId) { return null; } @Override public ResourceDefinition getResourceByUrl(@RequestParam("url") String url) { +// ResourceDefinition resourceDefinition = new ResourceDefinition(); +// resourceDefinition.setRequiredLogin(true); +// resourceDefinition.setRequiredPermission(true); +// return resourceDefinition; return null; } } diff --git a/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/service/SysUserService.java b/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/service/SysUserService.java index 99d0b989ea5d689e0a34a654466d42eeddf860c8..128438aa71908db1c475b849a6671e30c7e9eb8c 100644 --- a/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/service/SysUserService.java +++ b/roses-system-app/src/main/java/cn/stylefeng/roses/system/modular/service/SysUserService.java @@ -15,6 +15,7 @@ */ package cn.stylefeng.roses.system.modular.service; +import cn.hutool.core.bean.BeanUtil; import cn.stylefeng.roses.core.util.ToolUtil; import cn.stylefeng.roses.kernel.jwt.utils.JwtTokenUtil; import cn.stylefeng.roses.kernel.model.exception.ServiceException; @@ -73,12 +74,15 @@ public class SysUserService extends ServiceImpl { throw new ServiceException(AuthExceptionEnum.INVALID_PWD); } - //生成token - String jwtToken = jwtTokenUtil.generateToken(sysUser.getUserId().toString(), null); //token放入缓存 LoginUser loginUser = new LoginUser(); - loginUser.setAccountId(sysUser.getUserId()); + loginUser.setUserId(sysUser.getUserId()); + loginUser.setName(sysUser.getName()); + + //生成token + String jwtToken = jwtTokenUtil.generateToken(sysUser.getUserId().toString(), BeanUtil.beanToMap(loginUser)); + BoundValueOperations opts = redisTemplate.boundValueOps(SystemConstants.LOGIN_USER_CACHE_PREFIX + jwtToken); opts.set(loginUser, SystemConstants.DEFAULT_LOGIN_TIME_OUT_SECS, TimeUnit.SECONDS); diff --git a/roses-system-app/src/main/resources/bootstrap.yml b/roses-system-app/src/main/resources/bootstrap.yml index f9e3fe92fc5b0183a326f8027e66d461b56307a7..ff45be30924da7b3b1cd74a844802de2dc5363be 100644 --- a/roses-system-app/src/main/resources/bootstrap.yml +++ b/roses-system-app/src/main/resources/bootstrap.yml @@ -7,6 +7,8 @@ spring: config: profile: @spring.active@ label: master + main: + allow-bean-definition-overriding: true ---