提交 89c9e5af authored 作者: 李秋林's avatar 李秋林

登录错误或过期时,返回报错信息

上级 9f3d61ca
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<dependency> <dependency>
<groupId>com.wangxiaolu</groupId> <groupId>com.wangxiaolu</groupId>
<artifactId>wangxiaolu-promotion-common</artifactId> <artifactId>wangxiaolu-promotion-common</artifactId>
<version>0.0.1</version> <version>0.0.2</version>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -7,6 +7,7 @@ import com.promotion.gateway.data.UserDataService; ...@@ -7,6 +7,7 @@ import com.promotion.gateway.data.UserDataService;
import com.wangxiaolu.promotion.common.redis.RedisKeys; import com.wangxiaolu.promotion.common.redis.RedisKeys;
import com.wangxiaolu.promotion.result.basedata.R; import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.result.basedata.RCode; import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.result.basedata.StatusCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GatewayFilterChain;
...@@ -51,21 +52,20 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered { ...@@ -51,21 +52,20 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
// 1、判断url是否放行 // 1、判断url是否放行
boolean isIgnore = whiteUrls.stream().anyMatch(url::contains); boolean isIgnore = whiteUrls.stream().anyMatch(url::contains);
if (isIgnore) { if (isIgnore) {
log.info("非校验URL放行:{}", url);
return chain.filter(exchange); return chain.filter(exchange);
} }
// 2、未登录请求跳转登录 // 2、未登录请求跳转登录
String token = exchange.getRequest().getHeaders().getFirst("Authorization"); String token = exchange.getRequest().getHeaders().getFirst("Authorization");
if (StringUtils.isBlank(token)) { if (StringUtils.isBlank(token)) {
return loginError(exchange); return loginError(exchange,RCode.NOT_LOGIN_ERROR);
} }
// 3、验证token // 3、验证token
JSONObject userJson = userDataService.getUserByToken(RedisKeys.UserKeys.TEMPORARY_TOKEN.getKey() + token); JSONObject userJson = userDataService.getUserByToken(RedisKeys.UserKeys.TEMPORARY_TOKEN.getKey() + token);
if (Objects.isNull(userJson)) { if (Objects.isNull(userJson)) {
log.info("token登录错误:{}", token); log.info("访问URL:{},token登录错误:{}", url,token);
return loginError(exchange); return loginError(exchange,RCode.NOT_LOGIN_TIMEOUT_ERROR);
} }
ServerHttpRequest httpRequest = exchange.getRequest().mutate().header("loginId", userJson.getString("id")).header("loginQcId", userJson.getString("qcId")).build(); ServerHttpRequest httpRequest = exchange.getRequest().mutate().header("loginId", userJson.getString("id")).header("loginQcId", userJson.getString("qcId")).build();
return chain.filter(exchange.mutate().request(httpRequest).build()); return chain.filter(exchange.mutate().request(httpRequest).build());
...@@ -76,11 +76,11 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered { ...@@ -76,11 +76,11 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
return -2; return -2;
} }
private Mono<Void> loginError(ServerWebExchange exchange) { private Mono<Void> loginError(ServerWebExchange exchange, StatusCode statusCode) {
ServerHttpResponse response = exchange.getResponse(); ServerHttpResponse response = exchange.getResponse();
response.setStatusCode(HttpStatus.OK); response.setStatusCode(HttpStatus.OK);
response.getHeaders().add("Content-Type", "application/json;charset=UTF-8"); response.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
R res = new R(RCode.NOT_LOGIN_ERROR); R res = new R(statusCode);
DataBuffer buffer = response.bufferFactory().wrap(new Gson().toJson(res).getBytes(StandardCharsets.UTF_8)); DataBuffer buffer = response.bufferFactory().wrap(new Gson().toJson(res).getBytes(StandardCharsets.UTF_8));
return response.writeWith(Flux.just(buffer)); return response.writeWith(Flux.just(buffer));
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论