Настройка Spring Boot / Keycloak OIDC при развертывании в Tomcat - PullRequest
0 голосов
/ 05 мая 2019

Я настроил параметры keycloak в application.properties (чтобы использовать OpenID connect для защиты конечных точек REST). Это включает в себя указанные защищенные конечные точки ...

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

Это работает, когда я запускаю 'Spring Boot App' в Eclipse (используя встроенный сервер 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();
    }

Это не так гибко, как конфигурация в application.properties. Он выбирает другие параметры конфигурации, такие как keycloak.auth-server-url, keycloak.realm и т. Д. Из файла свойств, но не конечные точки.

Как указать конечные точки, чтобы они работали как в Eclipse (встроенный Tomcat), так и при развертывании в Tomcat (9.0.13)?

...