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
---