【发布时间】:2021-12-16 11:45:13
【问题描述】:
我正在尝试在 KeyCloak Spring Boot 中覆盖 ClientIdAndSecretCredentialsProvider。以下是我尝试过的代码。
public class CustomClientCredentialsProvider extends ClientIdAndSecretCredentialsProvider {
public static final String PROVIDER_ID = CredentialRepresentation.SECRET;
private String clientSecret;
@Override
public String getId() {
return PROVIDER_ID;
}
@Override
public void init(KeycloakDeployment deployment, Object config) {
clientSecret = (String) config;
}
@Override
public void setClientCredentials(KeycloakDeployment deployment, Map<String, String> requestHeaders, Map<String, String> formParams) {
String clientId = deployment.getResourceName();
if (!deployment.isPublicClient()) {
if (clientSecret != null) {
// do something else
}
} else {
formParams.put(OAuth2Constants.CLIENT_ID, clientId);
}
}
}
但是,即使在覆盖之后,我仍然可以看到控件转到现有 Spring Boot 的 ClientIdAndSecretCredentialsProvider 而不是我的。
我怎样才能让我的控制权而不是 Spring Boot 的?还有什么需要设置的吗??
【问题讨论】:
标签: spring-boot keycloak