У меня проблемы с реализацией собственного фильтра аутентификации в Tomcat. При развертывании проекта я получаю следующий журнал:
Вызвано: java .lang.ClassCastException: class com.somename.se c .sso.camunda.KeycloakSSOAuthenticationProvider не может быть преобразован в класс org.camunda.bpm.engine.rest.security.auth.AuthenticationProvider (com.somename.se c .sso.camunda.KeycloakSSOAuthenticationProvider находится в безымянном модуле загрузчика java. net .URLClassLoader @ 6fc6f14e; or 6fc6f14e; .camunda.bpm.engine.rest.security.auth.AuthenticationProvider находится в безымянном модуле организации загрузчика. apache .catalina.loader.ParallelWebappClassLoader @ 7a498efa)
Что странно, так как мой KeycloakSSOAuthentication реализует AuthenticationProvider. По-видимому, кастинг не удается из-за разных загрузчиков классов. Я полагаю, что приведение в моем web. xml файле не удается, когда я определяю фильтр аутентификации:
<!-- Container Based Authentication filter -->
<filter>
<filter-name>Container Based Authentication Filter</filter-name>
<filter-class>org.camunda.bpm.webapp.impl.security.auth.ContainerBasedAuthenticationFilter</filter-class>
<init-param>
<param-name>authentication-provider</param-name>
<param-value>com.somename.sec.sso.camunda.KeycloakSSOAuthenticationProvider</param-value>
</init-param>
</filter>
Есть ли способ принудительно загрузить KeycloakSSOAuthenticationProvider
с тем же загрузчиком классов, что и AuthenticationProvider
? Или как мне подойти к этой проблеме?