Skip to content

Commit 1fc3432

Browse files
committed
feat: 登录和注销时操作客户端 cookie
1 parent cbb46e7 commit 1fc3432

5 files changed

Lines changed: 9 additions & 1 deletion

File tree

framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/security/strategy/JwtTokenAuthStrategyImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.cadecode.uniboot.framework.base.security.strategy;
22

33
import cn.hutool.core.util.StrUtil;
4+
import cn.hutool.extra.servlet.ServletUtil;
45
import cn.hutool.json.JSONObject;
56
import com.github.cadecode.uniboot.common.core.extension.strategy.StrategyContext;
67
import com.github.cadecode.uniboot.common.core.util.TokenUtil;
@@ -64,6 +65,7 @@ public void handler(HttpServletRequest request, HttpServletResponse response, Fi
6465
SecurityUtil.getExpiration(), SecurityUtil.getSecret());
6566
// token 放在请求头
6667
response.addHeader(HttpConst.HEAD_TOKEN, newJwtToken);
68+
ServletUtil.addCookie(response, HttpConst.HEAD_TOKEN, newJwtToken, SecurityUtil.getExpiration().intValue());
6769
}
6870
filterChain.doFilter(request, response);
6971
}

framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/security/strategy/RedisTokenAuthStrategyImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.github.cadecode.uniboot.framework.base.security.strategy;
22

33
import cn.hutool.core.util.StrUtil;
4+
import cn.hutool.extra.servlet.ServletUtil;
45
import com.github.cadecode.uniboot.common.core.extension.strategy.StrategyContext;
56
import com.github.cadecode.uniboot.common.plugin.cache.util.KeyGeneUtil;
67
import com.github.cadecode.uniboot.common.plugin.cache.util.RedisUtil;
8+
import com.github.cadecode.uniboot.framework.api.consts.HttpConst;
79
import com.github.cadecode.uniboot.framework.api.consts.KeyPrefixConst;
810
import com.github.cadecode.uniboot.framework.api.enums.AuthErrorEnum;
911
import com.github.cadecode.uniboot.framework.api.enums.AuthModelEnum;
@@ -49,6 +51,7 @@ public void handler(HttpServletRequest request, HttpServletResponse response, Fi
4951
}
5052
// 用户存在,刷新过期时间
5153
RedisUtil.expire(loginUserKey, SecurityUtil.getExpiration(), TimeUnit.SECONDS);
54+
ServletUtil.addCookie(response, HttpConst.HEAD_TOKEN, uuidToken, SecurityUtil.getExpiration().intValue());
5255
// 设置 AuthenticationToken
5356
setAuthentication(request, sysUserDetails);
5457
filterChain.doFilter(request, response);

framework/framework_svc/src/main/java/com/github/cadecode/uniboot/framework/svc/bean/vo/SysUserVo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
44
import com.github.cadecode.uniboot.common.core.web.response.PageParams;
5+
import com.github.cadecode.uniboot.framework.base.security.model.SysUserDetails;
56
import com.github.cadecode.uniboot.framework.svc.bean.vo.SysMenuVo.SysMenuTreeResVo;
67
import lombok.*;
78

@@ -128,6 +129,7 @@ public static class SysUserRolesResVo {
128129
@NoArgsConstructor
129130
@Builder
130131
public static class SysUserInfoResVo {
132+
private SysUserDetails userDetails;
131133
private List<SysMenuTreeResVo> menuList;
132134
}
133135
}

framework/framework_svc/src/main/java/com/github/cadecode/uniboot/framework/svc/controller/SysUserController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public class SysUserController {
5959
public SysUserInfoResVo getInfo() {
6060
SysUserDetails userDetails = SecurityUtil.getUserDetails(null);
6161
List<SysMenuTreeResVo> sysMenuTreeResVos = sysMenuService.listTreeVoByRoles(userDetails.getRoles());
62-
return SysUserInfoResVo.builder().menuList(sysMenuTreeResVos).build();
62+
return SysUserInfoResVo.builder().userDetails(userDetails).menuList(sysMenuTreeResVos).build();
6363
}
6464

6565
@ApiOperation("修改用户信息(用户中心)")

framework/framework_svc/src/main/java/com/github/cadecode/uniboot/framework/svc/security/SignOutSuccessHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse resp
4343
String loginUserKey = KeyGeneUtil.key(KeyPrefixConst.LOGIN_USER, uuidToken);
4444
RedisUtil.del(loginUserKey);
4545
}
46+
ServletUtil.addCookie(response, HttpConst.HEAD_TOKEN, "", 0);
4647
// 写入响应
4748
ApiResult<Object> result = ApiResult.error(AuthErrorEnum.TOKEN_LOGOUT).path(FrameSecurityConfig.LOGOUT_URL);
4849
response.setStatus(AuthErrorEnum.TOKEN_LOGOUT.getStatus());

0 commit comments

Comments
 (0)