мы пытаемся создать высокодоступный кластер wildfly 16 с JEE8 Security API. Проект хорошо работает как отдельное приложение, но не как кластер! Мы получаем infispan NotSerializableException.
У нас есть отдельное приложение wildfly 16 с jsf 2.3, CDI 2.0 и Soteria. Это работает нормально как автономное. Теперь мы хотим запустить эту конфигурацию как автономный кластер wildfly. Дикие мухи приближаются, и они знают друг друга.
Но когда мы вызываем наше приложение, мы получаем следующее исключение: java.lang.IllegalArgumentException: org.infinispan.commons.marshall.NotSerializableException: org.glassfish.soteria.servlet.RequestData
При необходимости мы можем опубликовать всю трассировку стека.
Если бы мы удалили «распространяемый» из web.xml, он бы работал без каких-либо исключений, но тогда мы не сможем разделить сеанс между экземплярами.
Нам не хватает какой-то конфигурации? Или у нас очередное недопонимание?
Спасибо за помощь
@AutoApplySession
@LoginToContinue(loginPage = "/login.xhtml", errorPage = "", useForwardToLogin = true)
@ApplicationScoped
public class CustomAuthenticationMechanism implements HttpAuthenticationMechanism {
@Inject
private CustomIdentityStore identityStore;
...
}
@Model
public class LoginBean implements Serializable {
public void login() {
FacesContext context = FacesContext.getCurrentInstance();
Credential credential = new CustomCredential(username, password);
AuthenticationStatus status = securityContext.authenticate(
(HttpServletRequest) externalContext.getRequest(),
(HttpServletResponse) externalContext.getResponse(),
withParams()
.credential(credential)
.newAuthentication(false)
.rememberMe(true)
);
...
}
}
web.xml:
...
distributable
...
Изменить от 3 июля 2019 года:
Как я теперь вижу, проблема в Сотерии. Я нашел следующий коммит на github: "https://github.com/eclipse-ee4j/soteria/commit/fd9a29c4452f99b426dabc296ec759d36766a56f". Вопрос для меня теперь, когда это оживет? Каковы альтернативы для достижения доступа к ресурсам на основе ролей и перенаправления неаутентифицированных пользователей на пользовательскую страницу входа?