Я использую JDBCRealm для проверки подлинности и авторизации в своем веб-приложении. Что касается аутентификации, я использую FORM с сервисом j_security_check. Я настроил все, включая страницу ошибки HTTP Status 403, где пользователь будет перенаправлен, если у него/нее нет необходимых разрешений для доступа к ресурсу. До сих пор все работает нормально. Проблема возникает, когда возвращается ошибка HTTP Status 403. Мне кажется, что, несмотря на то, что пользователь не был авторизован, сеанс JSF по-прежнему создается для этого пользователя, если он/она успешно аутентифицирован. Теперь, когда я попытаюсь вернуться на страницу входа и ввести пароль и имя пользователя пользователя, у которого есть разрешение на доступ к ресурсу, он не может разрешить, поскольку авторизация все еще применяется к пользователю, имеющему текущий сеанс, который, по-видимому, не имеет требуемое разрешение. Теперь мне нужно знать, как уничтожить или аннулировать такой сеанс, созданный при возврате статуса HTTP 403. спасибоКак уничтожить сеанс JSF, созданный после статуса Http 403
UPDATE: Я думаю, что важно отметить, что когда сеанс завершен, я теперь могу войти в систему с пользователем, у которого есть необходимые разрешения. только кончик ...
Почему сеанс создан на первом месте? По умолчанию JSF этого не делает, пока это необязательно. У вас есть форма на странице с ошибкой и/или вы ссылаетесь на объекты в режиме просмотра/сеанса на странице ошибок? Если да, то почему именно? Если вы не уверены, реализуйте 'HttpSessionListener # sessionCreated()', поместите контрольную точку и запустите отладчик, чтобы увидеть в стеке вызовов, которые его вызывали и почему. – BalusC
@BalusC Большое спасибо за отзыв, у меня нет формы на моей странице ошибки, и я не ссылаюсь ни на какой bean-компонент. Позвольте мне сделать то, что вы предложили выше, и я вернусь к вам, спасибо .. –
@BalusC после выполнения вышеописанного HttpSessionListener # sessionCreated() не отображает вызывающего абонента в иерархии вызовов, но, похоже, событие происходит от org .apache.catalina.session.StandardSessionFacade –