Commit db9a9783a58b8df17567f186583a9325b418c3a1

Authored by 谭毅彬
1 parent 5b0ec621

多仓支持提交(1)

Signed-off-by: TanYibin <5491541@qq.com>
ant-design-vue-jeecg/src/views/user/LoginAccount.vue
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div> 2 <div>
3 <a-form-model ref="form" :model="model" :rules="validatorRules"> 3 <a-form-model ref="form" :model="model" :rules="validatorRules">
4 <a-form-model-item required prop="username"> 4 <a-form-model-item required prop="username">
5 - <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin" @blur="getWarehouse"> 5 + <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin" @blur="getWarehouse">
6 <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/> 6 <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/>
7 </a-input> 7 </a-input>
8 </a-form-model-item> 8 </a-form-model-item>
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 <a-form-model-item prop="warehouseCode"> 16 <a-form-model-item prop="warehouseCode">
17 <a-select 17 <a-select
18 show-search 18 show-search
19 - placeholder="请选择仓库!" 19 + placeholder="请选择仓库"
20 option-filter-prop="label" 20 option-filter-prop="label"
21 v-model="model.warehouseCode"> 21 v-model="model.warehouseCode">
22 <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{ 22 <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{
@@ -61,7 +61,7 @@ export default { @@ -61,7 +61,7 @@ export default {
61 required: true, message: '请输入密码!', validator: 'click' 61 required: true, message: '请输入密码!', validator: 'click'
62 }], 62 }],
63 warehouseCode: [{ 63 warehouseCode: [{
64 - required: true, message: '请选择仓库!', trigger: "change" ,validator: 'click' 64 + required: true, message: '请选择仓库!', trigger: "change" , validator: 'click'
65 }], 65 }],
66 } 66 }
67 } 67 }
huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -62,7 +62,7 @@ public class LoginController { @@ -62,7 +62,7 @@ public class LoginController {
62 public RedisTemplate<String, ?> redisTemplate; 62 public RedisTemplate<String, ?> redisTemplate;
63 @Autowired 63 @Autowired
64 private ISysDictService sysDictService; 64 private ISysDictService sysDictService;
65 - @Resource 65 + @Autowired
66 private BaseCommonService baseCommonService; 66 private BaseCommonService baseCommonService;
67 67
68 @ApiOperation("登录接口") 68 @ApiOperation("登录接口")
@@ -112,12 +112,10 @@ public class LoginController { @@ -112,12 +112,10 @@ public class LoginController {
112 result.error500("用户名或密码错误"); 112 result.error500("用户名或密码错误");
113 return result; 113 return result;
114 } 114 }
115 -  
116 if (StringUtils.isEmpty(warehouseCode)) { 115 if (StringUtils.isEmpty(warehouseCode)) {
117 - result.error500("仓库编码错误"); 116 + result.error500("请选择仓库编码");
118 return result; 117 return result;
119 } 118 }
120 -  
121 // 用户登录信息 119 // 用户登录信息
122 result = userInfo(sysUser, warehouseCode); 120 result = userInfo(sysUser, warehouseCode);
123 // update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 121 // update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码
@@ -444,9 +442,9 @@ public class LoginController { @@ -444,9 +442,9 @@ public class LoginController {
444 // } 442 // }
445 // } 443 // }
446 // } 444 // }
447 - // update-end--Author:sunjianlei Date:20210802 for:获取用户租户信息 445 + List<String> roles = sysBaseAPI.getRolesByUsername(username);
448 // 生成token 446 // 生成token
449 - String token = HuahengJwtUtil.sign(username, syspassword, warehouseCode); 447 + String token = HuahengJwtUtil.sign(username, syspassword, warehouseCode, roles);
450 // 设置token缓存有效时间 448 // 设置token缓存有效时间
451 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); 449 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
452 redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, HuahengJwtUtil.EXPIRE_TIME / 1000); 450 redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, HuahengJwtUtil.EXPIRE_TIME / 1000);
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
@@ -143,4 +143,11 @@ public interface SysUserMapper extends BaseMapper&lt;SysUser&gt; { @@ -143,4 +143,11 @@ public interface SysUserMapper extends BaseMapper&lt;SysUser&gt; {
143 * @return 143 * @return
144 */ 144 */
145 public List<Map<String, Object>> getWarehouseByUserName(@Param("username") String username); 145 public List<Map<String, Object>> getWarehouseByUserName(@Param("username") String username);
  146 +
  147 + /**
  148 + * 查询所有仓库
  149 + * @param username
  150 + * @return
  151 + */
  152 + public List<Map<String, Object>> getWarehouses();
146 } 153 }
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
@@ -180,7 +180,6 @@ @@ -180,7 +180,6 @@
180 </if> 180 </if>
181 </select> 181 </select>
182 182
183 -  
184 <select id="getWarehouseByUserName" resultType="java.util.HashMap"> 183 <select id="getWarehouseByUserName" resultType="java.util.HashMap">
185 SELECT r.name, r.code 184 SELECT r.name, r.code
186 FROM sys_user u 185 FROM sys_user u
@@ -189,5 +188,11 @@ @@ -189,5 +188,11 @@
189 WHERE u.username = #{username,jdbcType=VARCHAR} 188 WHERE u.username = #{username,jdbcType=VARCHAR}
190 AND r.enable = 1 189 AND r.enable = 1
191 </select> 190 </select>
  191 +
  192 + <select id="getWarehouses" resultType="java.util.HashMap">
  193 + SELECT r.name, r.code
  194 + FROM warehouse r
  195 + WHERE r.enable = 1
  196 + </select>
192 197
193 </mapper> 198 </mapper>
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -25,6 +25,7 @@ import org.jeecg.modules.wms.config.sysUserWarehouse.entity.SysUserWarehouse; @@ -25,6 +25,7 @@ import org.jeecg.modules.wms.config.sysUserWarehouse.entity.SysUserWarehouse;
25 import org.jeecg.modules.wms.config.sysUserWarehouse.service.ISysUserWarehouseService; 25 import org.jeecg.modules.wms.config.sysUserWarehouse.service.ISysUserWarehouseService;
26 import org.jeecg.modules.wms.config.warehouse.entity.Warehouse; 26 import org.jeecg.modules.wms.config.warehouse.entity.Warehouse;
27 import org.jeecg.modules.wms.config.warehouse.service.IWarehouseService; 27 import org.jeecg.modules.wms.config.warehouse.service.IWarehouseService;
  28 +import org.jeecg.utils.HuahengJwtUtil;
28 import org.jeecg.utils.StringUtils; 29 import org.jeecg.utils.StringUtils;
29 import org.springframework.beans.factory.annotation.Autowired; 30 import org.springframework.beans.factory.annotation.Autowired;
30 import org.springframework.cache.annotation.CacheEvict; 31 import org.springframework.cache.annotation.CacheEvict;
@@ -54,36 +55,52 @@ public class SysUserServiceImpl extends ServiceImpl&lt;SysUserMapper, SysUser&gt; impl @@ -54,36 +55,52 @@ public class SysUserServiceImpl extends ServiceImpl&lt;SysUserMapper, SysUser&gt; impl
54 55
55 @Autowired 56 @Autowired
56 private SysUserMapper userMapper; 57 private SysUserMapper userMapper;
  58 +
57 @Autowired 59 @Autowired
58 private SysPermissionMapper sysPermissionMapper; 60 private SysPermissionMapper sysPermissionMapper;
  61 +
59 @Autowired 62 @Autowired
60 private SysUserRoleMapper sysUserRoleMapper; 63 private SysUserRoleMapper sysUserRoleMapper;
  64 +
61 @Autowired 65 @Autowired
62 private SysUserDepartMapper sysUserDepartMapper; 66 private SysUserDepartMapper sysUserDepartMapper;
  67 +
63 @Resource 68 @Resource
64 private ISysUserService sysUserService; 69 private ISysUserService sysUserService;
  70 +
65 @Resource 71 @Resource
66 private ISysRoleService sysRoleService; 72 private ISysRoleService sysRoleService;
  73 +
67 @Resource 74 @Resource
68 private ISysUserWarehouseService sysUserWarehouseService; 75 private ISysUserWarehouseService sysUserWarehouseService;
  76 +
69 @Autowired 77 @Autowired
70 private ISysBaseAPI sysBaseAPI; 78 private ISysBaseAPI sysBaseAPI;
  79 +
71 @Autowired 80 @Autowired
72 private SysDepartMapper sysDepartMapper; 81 private SysDepartMapper sysDepartMapper;
  82 +
73 @Autowired 83 @Autowired
74 private SysRoleMapper sysRoleMapper; 84 private SysRoleMapper sysRoleMapper;
  85 +
75 @Autowired 86 @Autowired
76 private SysDepartRoleUserMapper departRoleUserMapper; 87 private SysDepartRoleUserMapper departRoleUserMapper;
  88 +
77 @Autowired 89 @Autowired
78 private SysDepartRoleMapper sysDepartRoleMapper; 90 private SysDepartRoleMapper sysDepartRoleMapper;
  91 +
79 @Resource 92 @Resource
80 private BaseCommonService baseCommonService; 93 private BaseCommonService baseCommonService;
  94 +
81 @Autowired 95 @Autowired
82 private SysThirdAccountMapper sysThirdAccountMapper; 96 private SysThirdAccountMapper sysThirdAccountMapper;
  97 +
83 @Resource 98 @Resource
84 private IWarehouseService warehouseService; 99 private IWarehouseService warehouseService;
  100 +
85 @Autowired 101 @Autowired
86 ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService; 102 ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
  103 +
87 @Autowired 104 @Autowired
88 ThirdAppDingtalkServiceImpl dingtalkService; 105 ThirdAppDingtalkServiceImpl dingtalkService;
89 106
@@ -592,9 +609,16 @@ public class SysUserServiceImpl extends ServiceImpl&lt;SysUserMapper, SysUser&gt; impl @@ -592,9 +609,16 @@ public class SysUserServiceImpl extends ServiceImpl&lt;SysUserMapper, SysUser&gt; impl
592 609
593 @Override 610 @Override
594 public List<Map<String, Object>> getWarehouseByUserCode(String username) { 611 public List<Map<String, Object>> getWarehouseByUserCode(String username) {
595 - List<Map<String, Object>> list = null;  
596 - list = userMapper.getWarehouseByUserName(username);  
597 - return list; 612 + List<String> roles = sysBaseAPI.getRolesByUsername(username);
  613 + if (!StringUtils.isEmpty(roles) && roles.contains(HuahengJwtUtil.USER_ROLE_INSPECTOR)) {
  614 + List<Map<String, Object>> returnList = userMapper.getWarehouses();
  615 + Map<String, Object> inspectorWarehouse = new HashMap<String, Object>();
  616 + inspectorWarehouse.put("name", HuahengJwtUtil.ALL_WAREHOUSE_NAME);
  617 + inspectorWarehouse.put("code", HuahengJwtUtil.ALL_WAREHOUSE_CODE);
  618 + returnList.add(inspectorWarehouse);
  619 + return returnList;
  620 + }
  621 + return userMapper.getWarehouseByUserName(username);
598 } 622 }
599 623
600 } 624 }
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/supplier/controller/SupplierController.java
@@ -180,10 +180,9 @@ public class SupplierController extends JeecgController&lt;Supplier, ISupplierServi @@ -180,10 +180,9 @@ public class SupplierController extends JeecgController&lt;Supplier, ISupplierServi
180 * @param req 180 * @param req
181 */ 181 */
182 @RequestMapping(value = "/getSupplierList") 182 @RequestMapping(value = "/getSupplierList")
183 - public Result<?> getSupplierList(HttpServletRequest req) {  
184 - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); 183 + public Result<?> getSupplierList(HttpServletRequest request) {
185 LambdaQueryWrapper<Supplier> supplierLambdaQueryWrapper = Wrappers.lambdaQuery(); 184 LambdaQueryWrapper<Supplier> supplierLambdaQueryWrapper = Wrappers.lambdaQuery();
186 - supplierLambdaQueryWrapper.eq(Supplier::getWarehouseCode, warehouseCode); 185 + HuahengJwtUtil.setWarehouseCode(supplierLambdaQueryWrapper, Supplier.class, request);
187 List<Supplier> supplierList = supplierService.list(supplierLambdaQueryWrapper); 186 List<Supplier> supplierList = supplierService.list(supplierLambdaQueryWrapper);
188 return Result.OK(supplierList); 187 return Result.OK(supplierList);
189 } 188 }
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -95,10 +95,9 @@ public class ReceiptHeaderController extends JeecgController&lt;ReceiptHeader, IRec @@ -95,10 +95,9 @@ public class ReceiptHeaderController extends JeecgController&lt;ReceiptHeader, IRec
95 @ApiOperation(value = "入库表主表-分页列表查询", notes = "入库表主表-分页列表查询") 95 @ApiOperation(value = "入库表主表-分页列表查询", notes = "入库表主表-分页列表查询")
96 @GetMapping(value = "/list") 96 @GetMapping(value = "/list")
97 public Result<IPage<ReceiptHeader>> queryPageList(ReceiptHeader receiptHeader, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, 97 public Result<IPage<ReceiptHeader>> queryPageList(ReceiptHeader receiptHeader, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
98 - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {  
99 - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);  
100 - receiptHeader.setWarehouseCode(warehouseCode);  
101 - QueryWrapper<ReceiptHeader> queryWrapper = QueryGenerator.initQueryWrapper(receiptHeader, req.getParameterMap()); 98 + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
  99 + HuahengJwtUtil.setWarehouseCode(request, receiptHeader);
  100 + QueryWrapper<ReceiptHeader> queryWrapper = QueryGenerator.initQueryWrapper(receiptHeader, request.getParameterMap());
102 Page<ReceiptHeader> page = new Page<ReceiptHeader>(pageNo, pageSize); 101 Page<ReceiptHeader> page = new Page<ReceiptHeader>(pageNo, pageSize);
103 IPage<ReceiptHeader> pageList = receiptHeaderService.page(page, queryWrapper); 102 IPage<ReceiptHeader> pageList = receiptHeaderService.page(page, queryWrapper);
104 return Result.OK(pageList); 103 return Result.OK(pageList);
huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
1 package org.jeecg.utils; 1 package org.jeecg.utils;
2 2
  3 +import java.lang.reflect.Field;
3 import java.util.Arrays; 4 import java.util.Arrays;
4 import java.util.Date; 5 import java.util.Date;
  6 +import java.util.List;
5 import java.util.UUID; 7 import java.util.UUID;
6 8
7 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletRequest;
@@ -12,22 +14,36 @@ import org.jeecg.common.system.vo.LoginUser; @@ -12,22 +14,36 @@ import org.jeecg.common.system.vo.LoginUser;
12 import org.jeecg.common.util.oConvertUtils; 14 import org.jeecg.common.util.oConvertUtils;
13 import org.jeecg.modules.wms.framework.aspectj.dto.ApiAuthentication; 15 import org.jeecg.modules.wms.framework.aspectj.dto.ApiAuthentication;
14 import org.jeecg.modules.wms.framework.aspectj.dto.RSA256Key; 16 import org.jeecg.modules.wms.framework.aspectj.dto.RSA256Key;
  17 +import org.springframework.stereotype.Component;
  18 +import org.springframework.util.CollectionUtils;
15 19
16 import com.auth0.jwt.JWT; 20 import com.auth0.jwt.JWT;
17 import com.auth0.jwt.JWTVerifier; 21 import com.auth0.jwt.JWTVerifier;
18 import com.auth0.jwt.algorithms.Algorithm; 22 import com.auth0.jwt.algorithms.Algorithm;
19 import com.auth0.jwt.exceptions.JWTDecodeException; 23 import com.auth0.jwt.exceptions.JWTDecodeException;
20 import com.auth0.jwt.interfaces.DecodedJWT; 24 import com.auth0.jwt.interfaces.DecodedJWT;
  25 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
21 26
22 import cn.hutool.core.date.DatePattern; 27 import cn.hutool.core.date.DatePattern;
23 import cn.hutool.core.date.DateUtil; 28 import cn.hutool.core.date.DateUtil;
  29 +import cn.hutool.core.util.ReflectUtil;
24 30
  31 +@Component
25 public class HuahengJwtUtil { 32 public class HuahengJwtUtil {
26 33
27 /** token失效时间 1天 */ 34 /** token失效时间 1天 */
28 public static final long EXPIRE_TIME = 12 * 60 * 60 * 1000; 35 public static final long EXPIRE_TIME = 12 * 60 * 60 * 1000;
29 36
30 public static final String HUAHENG_SYSTEM_ID = "HUAHENG-WMS4"; 37 public static final String HUAHENG_SYSTEM_ID = "HUAHENG-WMS4";
  38 +
  39 + /** 仓库视察员角色 */
  40 + public static final String USER_ROLE_INSPECTOR = "inspector";
  41 +
  42 + /** 全仓中文名称 */
  43 + public static final String ALL_WAREHOUSE_NAME = "全部仓库";
  44 +
  45 + /** 全仓CODE */
  46 + public static final String ALL_WAREHOUSE_CODE = "ALL_WAREHOUSE";
31 47
32 /** 48 /**
33 * 根据request中的token获取用户账号 49 * 根据request中的token获取用户账号
@@ -35,7 +51,7 @@ public class HuahengJwtUtil { @@ -35,7 +51,7 @@ public class HuahengJwtUtil {
35 * @return 51 * @return
36 * @throws JeecgBootException 52 * @throws JeecgBootException
37 */ 53 */
38 - public static String getUserNameByToken(HttpServletRequest request) throws JeecgBootException { 54 + public static String getUserNameByToken(HttpServletRequest request) {
39 String accessToken = request.getHeader("X-Access-Token"); 55 String accessToken = request.getHeader("X-Access-Token");
40 String username = getUsername(accessToken); 56 String username = getUsername(accessToken);
41 if (oConvertUtils.isEmpty(username)) { 57 if (oConvertUtils.isEmpty(username)) {
@@ -56,6 +72,19 @@ public class HuahengJwtUtil { @@ -56,6 +72,19 @@ public class HuahengJwtUtil {
56 return null; 72 return null;
57 } 73 }
58 } 74 }
  75 +
  76 + /**
  77 + * 获得token中的信息无需secret解密也能获得
  78 + * @return token中包含的角色信息
  79 + */
  80 + public static List<String> getRoles(String token) {
  81 + try {
  82 + DecodedJWT jwt = JWT.decode(token);
  83 + return jwt.getClaim("roles").asList(String.class);
  84 + } catch (JWTDecodeException e) {
  85 + return null;
  86 + }
  87 + }
59 88
60 /** 89 /**
61 * 根据request中的token获取用户账号 90 * 根据request中的token获取用户账号
@@ -63,7 +92,7 @@ public class HuahengJwtUtil { @@ -63,7 +92,7 @@ public class HuahengJwtUtil {
63 * @return 92 * @return
64 * @throws JeecgBootException 93 * @throws JeecgBootException
65 */ 94 */
66 - public static String getWarehouseCodeByToken(HttpServletRequest request) throws JeecgBootException { 95 + public static String getWarehouseCodeByToken(HttpServletRequest request) {
67 String accessToken = request.getHeader("X-Access-Token"); 96 String accessToken = request.getHeader("X-Access-Token");
68 String warehouseCode = getWarehouseCode(accessToken); 97 String warehouseCode = getWarehouseCode(accessToken);
69 if (oConvertUtils.isEmpty(warehouseCode)) { 98 if (oConvertUtils.isEmpty(warehouseCode)) {
@@ -72,6 +101,49 @@ public class HuahengJwtUtil { @@ -72,6 +101,49 @@ public class HuahengJwtUtil {
72 return warehouseCode; 101 return warehouseCode;
73 } 102 }
74 103
  104 + public static List<String> getRolesByToken(HttpServletRequest request) {
  105 + String accessToken = request.getHeader("X-Access-Token");
  106 + List<String> roles = getRoles(accessToken);
  107 + if (CollectionUtils.isEmpty(roles)) {
  108 + throw new JeecgBootException("未获取到仓库编码");
  109 + }
  110 + return roles;
  111 + }
  112 +
  113 + public static <T> void setWarehouseCode(HttpServletRequest request, T t) {
  114 + try {
  115 + Field warehouseCodeField = ReflectUtil.getField(t.getClass(), "warehouseCode");
  116 + if (warehouseCodeField != null) {
  117 + List<String> roles = HuahengJwtUtil.getRolesByToken(request);
  118 + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(request);
  119 + if (roles.contains("inspector")) {
  120 + return;
  121 + }
  122 + ReflectUtil.setFieldValue(t, "warehouseCode", warehouseCode);
  123 +
  124 + }
  125 + } catch (Exception e) {
  126 + return;
  127 + }
  128 + }
  129 +
  130 + public static <T> void setWarehouseCode(LambdaQueryWrapper<T> lambdaQueryWrapper, Class<T> clazz, HttpServletRequest request) {
  131 + try {
  132 + Field warehouseCodeField = ReflectUtil.getField(clazz, "warehouseCode");
  133 + if (warehouseCodeField != null) {
  134 + List<String> roles = HuahengJwtUtil.getRolesByToken(request);
  135 + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(request);
  136 + if (roles.contains("inspector")) {
  137 + return;
  138 + }
  139 + lambdaQueryWrapper.apply("warehouse_code = {0}", warehouseCode);
  140 +
  141 + }
  142 + } catch (Exception e) {
  143 + return;
  144 + }
  145 + }
  146 +
75 /** 147 /**
76 * 生成签名 148 * 生成签名
77 * @param username 用户名 149 * @param username 用户名
@@ -90,13 +162,14 @@ public class HuahengJwtUtil { @@ -90,13 +162,14 @@ public class HuahengJwtUtil {
90 * @param username 用户名 162 * @param username 用户名
91 * @param secret 用户的密码 163 * @param secret 用户的密码
92 * @param warehouseCode 登录仓库 164 * @param warehouseCode 登录仓库
  165 + * @param roles 用户的角色
93 * @return 加密的token 166 * @return 加密的token
94 */ 167 */
95 - public static String sign(String username, String secret, String warehouseCode) { 168 + public static String sign(String username, String secret, String warehouseCode, List<String> roles) {
96 Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); 169 Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME);
97 Algorithm algorithm = Algorithm.HMAC256(secret); 170 Algorithm algorithm = Algorithm.HMAC256(secret);
98 // 附带username信息 171 // 附带username信息
99 - return JWT.create().withClaim("username", username).withClaim("warehouseCode", warehouseCode).withExpiresAt(date).sign(algorithm); 172 + return JWT.create().withClaim("username", username).withClaim("warehouseCode", warehouseCode).withClaim("roles", roles).withExpiresAt(date).sign(algorithm);
100 } 173 }
101 174
102 /** 175 /**