Browse Source

Merge remote-tracking branch 'refs/remotes/origin/feature-v1.3.0' into release-sy-v1.0.0

master_tdsql
hxh 9 months ago
parent
commit
6acf7c78d4
  1. 12
      shuili-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java
  2. 19
      shuili-admin/src/main/java/com/kms/web/utils/WaterRequestUtil.java
  3. 16
      shuili-system/src/main/java/com/kms/framework/web/service/SysPermissionService.java

12
shuili-admin/src/main/java/com/kms/web/controller/system/SysLoginController.java

@ -142,7 +142,16 @@ public class SysLoginController extends BaseController {
@PostMapping("/logout") @PostMapping("/logout")
@SaCheckLogin @SaCheckLogin
public AjaxResult logout() { public AjaxResult logout() {
SysUser sysUser = UserUtils.getUser();
if (sysUser != null) {
String token = permissionService.getPortalToken(sysUser.getId());
if (StringUtils.isNotBlank(token)) {
try {
waterRequestUtil.logout(token);
} catch (Exception ignore) {
}
}
}
// 登录保存缓存 // 登录保存缓存
StpUtil.logout(); StpUtil.logout();
//删除缓存 //删除缓存
@ -287,6 +296,7 @@ public class SysLoginController extends BaseController {
throw new BaseException("账号异常,登陆失败"); throw new BaseException("账号异常,登陆失败");
} }
permissionService.setUserMenuFromPortal(simpleUser.getId(), menus); permissionService.setUserMenuFromPortal(simpleUser.getId(), menus);
permissionService.setPortalToken(simpleUser.getId(), token);
StpUtil.login(simpleUser.getId()); StpUtil.login(simpleUser.getId());
StpUtil.getSession().set("jianwei-user", simpleUser); StpUtil.getSession().set("jianwei-user", simpleUser);
String accessToken = StpUtil.getTokenValue(); String accessToken = StpUtil.getTokenValue();

19
shuili-admin/src/main/java/com/kms/web/utils/WaterRequestUtil.java

@ -39,6 +39,8 @@ public class WaterRequestUtil {
public String singOnAppsecret; public String singOnAppsecret;
@Value("${water.singOnUrl:}") @Value("${water.singOnUrl:}")
public String singOnUrl; public String singOnUrl;
@Value("${water.logoutUrl:}")
public String logoutUrl;
//验证用户登录 //验证用户登录
@Value("${water.userUrl:}") @Value("${water.userUrl:}")
@ -194,6 +196,23 @@ public class WaterRequestUtil {
return JSONObject.parseObject(body, WaterResult.class); return JSONObject.parseObject(body, WaterResult.class);
} }
public WaterResultV2<String> logout(String authorization) {
long startTime = System.currentTimeMillis();
log.info("--------请求统一门户用户注销登陆,请求地址为:{}", logoutUrl);
HttpRequest get = createGet(logoutUrl, authUserServiceId, authUserAppsecret);
String body;
try (HttpResponse response = get.header("Authorization", authorization)
.execute()) {
body = response.body();
}
long endTime = System.currentTimeMillis();
log.info("--------请求统一门户用户注销登陆,耗时{}毫秒,返回结果为:{}", endTime - startTime, body);
WaterResultV2<String> waterResult = JSON.parseObject(body, new TypeReference<WaterResultV2<String>>() {
});
isSuccess(waterResult);
return waterResult;
}
/** /**
* 验证用户登录 * 验证用户登录
* *

16
shuili-system/src/main/java/com/kms/framework/web/service/SysPermissionService.java

@ -100,6 +100,14 @@ public class SysPermissionService {
} }
} }
public String getPortalToken(String userId) {
Object cache = redisCache.getCacheObject(tokenKey(userId));
if (cache != null) {
return StringUtils.cast(cache);
} else {
return null;
}
}
public void setUserPermissionFromPortal(String userId, List<String> perms) { public void setUserPermissionFromPortal(String userId, List<String> perms) {
if (CollectionUtils.isEmpty(perms)) { if (CollectionUtils.isEmpty(perms)) {
@ -115,6 +123,10 @@ public class SysPermissionService {
redisCache.setCacheObject(menusKey(userId), menus, 7, TimeUnit.DAYS); redisCache.setCacheObject(menusKey(userId), menus, 7, TimeUnit.DAYS);
} }
public void setPortalToken(String userId, String token) {
redisCache.setCacheObject(tokenKey(userId), token, 7, TimeUnit.DAYS);
}
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ -127,6 +139,10 @@ public class SysPermissionService {
} }
private String tokenKey(String userId) {
return "portal_token:" + userId;
}
private String permsKey(String userId) { private String permsKey(String userId) {
return "user_perms:" + userId; return "user_perms:" + userId;
} }

Loading…
Cancel
Save