| | |
| | | import com.ruoyi.common.core.constant.CacheConstants; |
| | | import com.ruoyi.common.core.constant.Constants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.ServletUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; |
| | | import reactor.core.publisher.Mono; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLEncoder; |
| | | |
| | | /** |
| | | * 网关鉴权 |
| | |
| | | } |
| | | JSONObject obj = JSONObject.parseObject(userStr); |
| | | String userid = obj.getString("userid"); |
| | | String username = urlEncode(obj.getString("username")); |
| | | String username = obj.getString("username"); |
| | | if (StringUtils.isBlank(userid) || StringUtils.isBlank(username)) |
| | | { |
| | | return setUnauthorizedResponse(exchange, "令牌验证失败"); |
| | |
| | | redisService.expire(getTokenKey(token), EXPIRE_TIME); |
| | | // 设置用户信息到请求 |
| | | ServerHttpRequest mutableReq = exchange.getRequest().mutate().header(CacheConstants.DETAILS_USER_ID, userid) |
| | | .header(CacheConstants.DETAILS_USERNAME, username).build(); |
| | | .header(CacheConstants.DETAILS_USERNAME, ServletUtils.urlEncode(username)).build(); |
| | | ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build(); |
| | | |
| | | return chain.filter(mutableExchange); |
| | |
| | | private String getTokenKey(String token) |
| | | { |
| | | return CacheConstants.LOGIN_TOKEN_KEY + token; |
| | | } |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private String urlEncode(String value) { |
| | | try { |
| | | value = URLEncoder.encode(value, "UTF-8"); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return value; |
| | | } |
| | | |
| | | /** |