Spring Boot - 如何禁用 Keycloak?

Cha*_*lie 11 spring spring-boot keycloak

我有一个集成了 keycloak 的 Spring Boot 项目。现在我想禁用 keycloak 以进行测试。

我尝试通过添加keycloak.enabled=falseapplication.propertiesKeycloak文档中提到的那样,但它没有用。

那么如何禁用它呢?

Cha*_*lie 11

对于可能遇到同样问题的任何人,这就是我所做的。

我没有禁用 Keycloak,但我制作了一个单独的 Keycloak 配置文件用于测试目的。

这是我的配置文件

@Profile("test")
@Configuration
@EnableWebSecurity
public class SecurityTestConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/**").permitAll();
        http.headers().frameOptions().disable();
        http.csrf().disable();

    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/**");
    }

    @Bean
    @Scope(scopeName = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
    public AccessToken accessToken() {
        AccessToken accessToken = new AccessToken();
        accessToken.setSubject("abc");
        accessToken.setName("Tester");

        return accessToken;

    }

}
Run Code Online (Sandbox Code Playgroud)

请注意,仅在测试环境中使用它很重要,因此我将配置注释为@Profile("test"). 我还添加了一个AccessTokenbean,因为我的应用程序中的一些审计功能依赖于它。


alf*_*ope 5

它应该可以工作,但是根据有关jira 票证的最后一条评论,它似乎不是。

作为描述状态,您可以排除添加到您的 keycloak 的 spring boot 自动配置application.propertiesspring.autoconfigure.exclude=org.keycloak.adapters.springboot.KeycloakSpringBootConfiguration

  • 如果您还启用了 Spring Security,则它不起作用,`enable` 标志仅适用于单独使用的 Spring Boot Adapter。当使用 Spring Secuiryt 时,我们也有一张支持标志的票。 (3认同)