如何将Keycloak注册到Spring Eureka服务器上?

问题描述 投票:0回答:1

有3个服务。

  • 用户服务
  • eureka-discovery-service
  • 钥匙扣-授权服务

我已经配置了eureka服务器,它已经启动并运行,我已经注册了用户服务。@EnableDiscoveryClient

application.properties(user-service)

spring.application.name=user-service
server.port=8040
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka

我可以看到已注册的用户服务,对于Spring Boot应用来说是可以的。

我如何将Keycloak注册到Eureka Discovery服务中?

spring-boot spring-cloud keycloak netflix-eureka
1个回答
0
投票

你可以尝试使用spring security和内置的keycloak支持。https:/www.baeldung.comspring-boot-keycloak] 给出了一个非常完整的例子。

为了完整起见,这里是指南中的相关摘录。如果您还没有,您将需要在您的pom.xml中添加springs keycloak的依赖关系。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.keycloak.bom</groupId>
            <artifactId>keycloak-adapter-bom</artifactId>
            <version>3.3.0.Final</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

...
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-boot-starter</artifactId>
</dependency>

你可以通过应用程序属性来配置Spring。然后简单地设置你的Spring安全配置类,扩展keycloak适配器。

@Configuration
@EnableWebSecurity
@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {

    @Autowired
    public void configureGlobal(
      AuthenticationManagerBuilder auth) throws Exception {

        KeycloakAuthenticationProvider keycloakAuthenticationProvider
         = keycloakAuthenticationProvider();
        keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(
          new SimpleAuthorityMapper());
        auth.authenticationProvider(keycloakAuthenticationProvider);
    }

    @Bean
    public KeycloakSpringBootConfigResolver KeycloakConfigResolver() {
        return new KeycloakSpringBootConfigResolver();
    }

    @Bean
    @Override
    protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
        return new RegisterSessionAuthenticationStrategy(
          new SessionRegistryImpl());
    }
 }
© www.soinside.com 2019 - 2024. All rights reserved.