mirror of https://gitee.com/maxjhandsome/pig
🐛 fix #I3VH9H PigUserDetailsServiceImpl.loadUserByUsername中无法使用WebUtils.getClientId
This commit is contained in:
commit
e39355c3da
|
@ -34,8 +34,10 @@ import org.springframework.web.method.HandlerMethod;
|
|||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
|
@ -154,13 +156,25 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
|
|||
* @return
|
||||
*/
|
||||
@SneakyThrows
|
||||
public String[] getClientId(ServerHttpRequest request) {
|
||||
public String getClientId(ServerHttpRequest request) {
|
||||
String header = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
|
||||
|
||||
return splitClient(header)[0];
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public String getClientId(HttpServletRequest request) {
|
||||
String header = WebUtils.getRequest().getHeader("Authorization");
|
||||
|
||||
return splitClient(header)[0];
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String[] splitClient(String header) throws UnsupportedEncodingException {
|
||||
if (header == null || !header.startsWith(BASIC_)) {
|
||||
throw new CheckedException("请求头中client信息为空");
|
||||
}
|
||||
byte[] base64Token = header.substring(6).getBytes("UTF-8");
|
||||
byte[] base64Token = header.substring(6).getBytes(StandardCharsets.UTF_8);
|
||||
byte[] decoded;
|
||||
try {
|
||||
decoded = Base64.decode(base64Token);
|
||||
|
|
|
@ -60,7 +60,7 @@ public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory<Obje
|
|||
ServerHttpRequest request = exchange.getRequest();
|
||||
boolean isAuthToken = CharSequenceUtil.containsAnyIgnoreCase(request.getURI().getPath(),
|
||||
SecurityConstants.OAUTH_TOKEN_URL);
|
||||
boolean isIgnoreClient = configProperties.getIgnoreClients().contains(WebUtils.getClientId(request)[0]);
|
||||
boolean isIgnoreClient = configProperties.getIgnoreClients().contains(WebUtils.getClientId(request));
|
||||
try {
|
||||
// only oauth and the request not in ignore clients need check code.
|
||||
if (isAuthToken && !isIgnoreClient) {
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -42,7 +42,7 @@
|
|||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<spring-boot-admin.version>2.4.1</spring-boot-admin.version>
|
||||
<hutool.version>5.6.7</hutool.version>
|
||||
<mybatis-plus.version>3.3.4.1</mybatis-plus.version>
|
||||
<mybatis-plus.version>3.4.3</mybatis-plus.version>
|
||||
<dynamic-ds.version>3.4.0</dynamic-ds.version>
|
||||
<captcha.version>2.2.0</captcha.version>
|
||||
<velocity.version>1.7</velocity.version>
|
||||
|
|
Loading…
Reference in New Issue