Skip to content

Instantly share code, notes, and snippets.

@mehmetcemyucel
Created May 25, 2020 15:37
Show Gist options
  • Save mehmetcemyucel/3d4c9e544ca12577a91baad328d7e825 to your computer and use it in GitHub Desktop.
Save mehmetcemyucel/3d4c9e544ca12577a91baad328d7e825 to your computer and use it in GitHub Desktop.
keycloak-feign-resttemplate
package com.cem.oauth2.configuration.feign;
import com.cem.oauth2.configuration.AuthProperties;
import feign.RequestInterceptor;
import org.keycloak.OAuth2Constants;
import org.springframework.cloud.security.oauth2.client.feign.OAuth2FeignRequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext;
import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails;
@Configuration
public class FeignConfiguration {
private final AuthProperties properties;
public FeignConfiguration(AuthProperties properties) {
this.properties = properties;
}
@Bean
public RequestInterceptor requestInterceptor() {
return new OAuth2FeignRequestInterceptor(new DefaultOAuth2ClientContext(), resource());
}
private OAuth2ProtectedResourceDetails resource() {
ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
resourceDetails.setGrantType(OAuth2Constants.CLIENT_CREDENTIALS);
resourceDetails.setAccessTokenUri(properties.getTokenUri());
resourceDetails.setClientId(properties.getClientId());
resourceDetails.setClientSecret(properties.getClientSecret());
return resourceDetails;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment