Недействительный сеанс с последующим перенаправлением воссоздает bean-компонент - PullRequest
0 голосов
/ 06 августа 2020

Работа над методом проверки JSF, определенным в bean-компоненте @SessionScoped:

public void doValidation(FacesContext context, UIComponent component, Object value) throws ValidatorException {
    // throws ValidatorException on invalid input
    ...
    // But, in some cases we want to lock out the user by invalidating session and redirecting to a different error page
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
    ec.invalidateSession();
    ec.redirect(errorPage);
}

Однако поведение, которое я наблюдаю при перенаправлении, заключается в том, что вместо / перед переходом на страницу ошибки @SessionScoped bean, кажется, воссоздается (вызывается его конструктор и @PostConstruct). Когда вызов invalidateSession () удаляется, он напрямую переходит к errorPage без повторного создания bean-компонента. Обратите внимание, что на странице ошибки нет ссылок на этот bean-компонент.

...