我已经在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)中部署时正常工作?