| | |
| | | }catch (Exception e){ |
| | | return unauthorizedResponse(exchange, e.getMessage()); |
| | | } |
| | | |
| | | |
| | | String token = getToken(request); |
| | | Claims claims = JwtUtils.parseToken(token); |
| | | String userkey = JwtUtils.getUserKey(claims); |
| | | String userid = JwtUtils.getUserId(claims); |
| | | String username = JwtUtils.getUserName(claims); |
| | | String userType = JwtUtils.getUserType(claims); |
| | | |
| | | String operationUserKey = JwtUtils.getOperationUserKey(claims); |
| | | String redisKey = ""; |
| | | if ("system".equals(userType)) { |
| | | redisKey = StringUtils.isNotBlank(userkey) ? getTokenKey(userkey) : ""; |
| | | } |
| | | if ("operation".equals(userType)) { |
| | | redisKey = StringUtils.isNotBlank(operationUserKey) ? getTokenKey(operationUserKey) : ""; |
| | | } |
| | | if (StringUtils.isBlank(redisKey)) { |
| | | return unauthorizedResponse(exchange, "登录状态已过期"); |
| | | } |
| | | |
| | | boolean islogin = redisService.hasKey(redisKey); |
| | | if (!islogin) |
| | | { |
| | | return unauthorizedResponse(exchange, "登录状态已过期"); |
| | | } |
| | | // 设置用户信息到请求 |
| | | addHeader(mutate, SecurityConstants.USER_KEY, userkey); |
| | | addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); |
| | | addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); |
| | | addHeader(mutate, SecurityConstants.USER_TYPE, userType); |
| | | addHeader(mutate, SecurityConstants.OPERATION_USER_KEY, operationUserKey); |
| | | // 内部请求来源参数清除 |
| | | removeHeader(mutate, SecurityConstants.FROM_SOURCE); |
| | | return chain.filter(exchange.mutate().request(mutate.build()).build()); |