fix bug
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
package org.springblade.auth.config;
|
||||
|
||||
import org.springblade.auth.granter.IamAwareTokenGranterFactory;
|
||||
import org.springblade.auth.handler.BladeAuthorizationHandler;
|
||||
import org.springblade.auth.handler.BladeLockHandler;
|
||||
import org.springblade.auth.handler.BladeLogHandler;
|
||||
@@ -37,6 +38,9 @@ import org.springblade.core.jwt.props.JwtProperties;
|
||||
import org.springblade.core.launch.props.BladeProperties;
|
||||
import org.springblade.core.launch.server.ServerInfo;
|
||||
import org.springblade.core.oauth2.config.OAuth2AutoConfiguration;
|
||||
import org.springblade.core.oauth2.granter.TokenGranter;
|
||||
import org.springblade.core.oauth2.granter.TokenGranterEnhancer;
|
||||
import org.springblade.core.oauth2.granter.TokenGranterFactory;
|
||||
import org.springblade.core.oauth2.handler.AuthorizationHandler;
|
||||
import org.springblade.core.oauth2.handler.PasswordHandler;
|
||||
import org.springblade.core.oauth2.handler.TokenHandler;
|
||||
@@ -51,8 +55,11 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* BladeAuthConfiguration
|
||||
*
|
||||
@@ -101,4 +108,12 @@ public class BladeAuthConfiguration {
|
||||
return new BladeUserDetailService(userClient);
|
||||
}
|
||||
|
||||
@Primary
|
||||
@Bean("iamAwareTokenGranterFactory")
|
||||
public TokenGranterFactory tokenGranterFactory(List<TokenGranter> tokenGranters,
|
||||
List<TokenGranterEnhancer> tokenGranterEnhancers,
|
||||
OAuth2Properties properties) {
|
||||
return new IamAwareTokenGranterFactory(tokenGranters, tokenGranterEnhancers, properties);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
|
||||
|
||||
@Override
|
||||
public OAuth2User user(OAuth2Request request) {
|
||||
if (!isIamRequest(request)) {
|
||||
if (!isIamRequest(request, true)) {
|
||||
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
|
||||
}
|
||||
validateRequest(request);
|
||||
@@ -192,12 +192,16 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
|
||||
return user;
|
||||
}
|
||||
|
||||
private boolean isIamRequest(OAuth2Request request) {
|
||||
public boolean supports(OAuth2Request request) {
|
||||
return isIamRequest(request, false);
|
||||
}
|
||||
|
||||
private boolean isIamRequest(OAuth2Request request, boolean logMiss) {
|
||||
String redirectUri = normalizeRedirectUri(request.getRedirectUri());
|
||||
boolean iamRequest = StringUtil.isNotBlank(properties.getRedirectUri())
|
||||
&& StringUtil.isNotBlank(request.getCode())
|
||||
&& StringUtil.equals(properties.getRedirectUri(), redirectUri);
|
||||
if (!iamRequest) {
|
||||
if (!iamRequest && logMiss) {
|
||||
log.info("IAM统一身份认证请求未命中,configRedirectUri={}, requestRedirectUri={}, normalizedRedirectUri={}, code={}",
|
||||
properties.getRedirectUri(), request.getRedirectUri(), redirectUri, request.getCode());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user