ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
@@ -8,6 +8,11 @@ public class SecurityConstants { /** * 令牌类型 */ public static final String BEARER_TOKEN_TYPE = "Bearer"; /** * 授权token url */ public static final String AUTH_TOKEN = "/oauth/token"; ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/OAuth2FeignRequestInterceptor.java
@@ -1,10 +1,12 @@ package com.ruoyi.common.security.feign; import org.springframework.http.HttpHeaders; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails; import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.SecurityConstants; import feign.RequestInterceptor; import feign.RequestTemplate; @@ -16,10 +18,6 @@ @Component public class OAuth2FeignRequestInterceptor implements RequestInterceptor { private final String AUTHORIZATION_HEADER = "Authorization"; private final String BEARER_TOKEN_TYPE = "Bearer"; @Override public void apply(RequestTemplate requestTemplate) { @@ -28,8 +26,8 @@ if (authentication != null && authentication.getDetails() instanceof OAuth2AuthenticationDetails) { OAuth2AuthenticationDetails dateils = (OAuth2AuthenticationDetails) authentication.getDetails(); requestTemplate.header(AUTHORIZATION_HEADER, String.format("%s %s", BEARER_TOKEN_TYPE, dateils.getTokenValue())); requestTemplate.header(HttpHeaders.AUTHORIZATION, String.format("%s %s", SecurityConstants.BEARER_TOKEN_TYPE, dateils.getTokenValue())); } } } ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreClientProperties.java
File was deleted ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java
@@ -3,6 +3,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.http.HttpHeaders; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; @@ -25,6 +26,12 @@ @Autowired private ValidateCodeService validateCodeService; private static final String BASIC_ = "Basic "; private static final String CODE = "code"; private static final String UUID = "uuid"; @Override public GatewayFilter apply(Object config) { @@ -36,10 +43,18 @@ { return chain.filter(exchange); } // 消息头存在内容,且不存在验证码参数,不处理 String header = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION); if (StringUtils.isNotEmpty(header) && StringUtils.startsWith(header, BASIC_) && !request.getQueryParams().containsKey(CODE) && !request.getQueryParams().containsKey(UUID)) { return chain.filter(exchange); } try { validateCodeService.checkCapcha(request.getQueryParams().getFirst("code"), request.getQueryParams().getFirst("uuid")); validateCodeService.checkCapcha(request.getQueryParams().getFirst(CODE), request.getQueryParams().getFirst(UUID)); } catch (Exception e) {