在Tomcat中部署时的Spring Boot / Keycloak OIDC配置

时间:2019-05-05 20:47:23

标签: spring-boot spring-security keycloak

我已经在applications.properties中配置了密钥斗篷参数(以在保护REST端点中使用OpenID connect)。这包括指定的受保护端点...

keycloak.security-constraints[0].securityCollections[0].patterns[0]=/getRecord
keycloak.security-constraints[0].securityCollections[0].patterns[1]=/getUsers

当我在Eclipse中运行“ Spring Boot App”(使用嵌入式Tomcat服务器)时,此方法有效,但是当打包打包并将其部署到Tomcat时,这些端点不受保护。

要保护已部署应用程序中的端点,我必须直接在代码中定义它们(SecurityConfig类扩展了KeycloakWebSecurityConfigurerAdapter)

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
        http.authorizeRequests()
          .antMatchers("/getRecord").hasRole("user")
          .antMatchers("/getUsers").hasRole("user")
          .anyRequest().permitAll();
    }

这不像Applications.properties中的配置那样灵活。 它确实从属性文件中选取了其他配置参数,例如keycloak.auth-server-url,keycloak.realm等,而不是端点。

我如何指定端点以便它们既可以在Eclipse(嵌入式Tomcat)中运行,又可以在Tomcat(9.0.13)中部署时正常工作?

0 个答案:

没有答案