IAM对接调试
This commit is contained in:
@@ -37,6 +37,7 @@ import org.springblade.core.oauth2.exception.UserInvalidException;
|
||||
import org.springblade.core.oauth2.granter.AuthorizationCodeGranter;
|
||||
import org.springblade.core.oauth2.handler.PasswordHandler;
|
||||
import org.springblade.core.oauth2.provider.OAuth2Request;
|
||||
import org.springblade.core.oauth2.service.OAuth2Client;
|
||||
import org.springblade.core.oauth2.service.OAuth2ClientService;
|
||||
import org.springblade.core.oauth2.service.OAuth2User;
|
||||
import org.springblade.core.oauth2.service.OAuth2UserService;
|
||||
@@ -78,10 +79,12 @@ import java.util.stream.Collectors;
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
public class IamSsoTokenGranter extends AuthorizationCodeGranter {
|
||||
|
||||
private static final String GRANT_TYPE = "iam_sso";
|
||||
private static final String IAM_GRANT_TYPE = "authorization_code";
|
||||
private static final String BEARER_PREFIX = "Bearer ";
|
||||
private static final String BASIC_PREFIX = "Basic ";
|
||||
|
||||
private final OAuth2ClientService clientService;
|
||||
private final IUserClient userClient;
|
||||
private final IamSsoProperties properties;
|
||||
private final ObjectMapper objectMapper;
|
||||
@@ -95,16 +98,33 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
|
||||
IamSsoProperties properties,
|
||||
ObjectMapper objectMapper) {
|
||||
super(clientService, userService, passwordHandler, bladeRedis);
|
||||
this.clientService = clientService;
|
||||
this.userClient = userClient;
|
||||
this.properties = properties;
|
||||
this.objectMapper = objectMapper;
|
||||
this.httpClient = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String type() {
|
||||
return GRANT_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Client client(OAuth2Request request) {
|
||||
String clientId = request.getClientId();
|
||||
String clientSecret = request.getClientSecret();
|
||||
OAuth2Client client = clientService.loadByClientId(clientId);
|
||||
if (!clientService.validateClient(client, clientId, clientSecret)) {
|
||||
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
|
||||
}
|
||||
return client;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2User user(OAuth2Request request) {
|
||||
if (!isIamRequest(request)) {
|
||||
return super.user(request);
|
||||
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
|
||||
}
|
||||
validateRequest(request);
|
||||
// 先校验本系统客户端,IAM的redirect_uri由后续远端接口校验。
|
||||
|
||||
Reference in New Issue
Block a user