Всем добрый день!
Первое, что хочется подчеркнуть: стартер jmix-bpm-rest-starter
экспериментальный. Он не был официально зарелизен или анонсирован. Его работоспособность не гарантируется, и в нём возможны изменения.
Есть тикет на доведение его до “production-ready” состояния. Постараемся успеть добраться до данной задачи к июньскому релизу Jmix.
Что касается workaround, который сейчас можно добавить в проект для того, чтобы эндпойнты BPM REST были защищены токеном, выданным Keycloak - должна сработать следующая конфигурация:
@Configuration
public class BpmRestSecurityConfiguration {
@Bean
@Order(JmixSecurityFilterChainOrder.OIDC_RESOURCE_SERVER - 10)
public SecurityFilterChain myBpmRestSecurityFilterChain(HttpSecurity http,
JmixJwtAuthenticationConverter jmixJwtAuthenticationConverter,
ApplicationEventPublisher applicationEventPublisher) throws Exception {
http
.securityMatcher(new AntPathRequestMatcher("/rest/bpm/**"))
.oauth2ResourceServer(resourceServer -> {
resourceServer.jwt(jwt -> {
jwt.jwtAuthenticationConverter(jmixJwtAuthenticationConverter);
});
})
.cors(Customizer.withDefaults());
//this filter is required if you want to check whether the user has the "bpm.rest.enabled" specific policy
OidcResourceServerEventSecurityFilter resourceServerEventSecurityFilter =
new OidcResourceServerEventSecurityFilter(applicationEventPublisher);
http.addFilterBefore(resourceServerEventSecurityFilter, AuthorizationFilter.class);
return http.build();
}
}