Проблема с пересылкой JSF и ограничением безопасности - PullRequest
1 голос
/ 06 августа 2010

Я делаю веб-приложение, в котором определенные страницы защищены логином. Для этого я создал область безопасности JDBC в glassfish и использовал проверку подлинности по форме (аналогично описанному здесь )

Я использую правила навигации для перенаправления пользователя в защищенные области сайта:

<navigation-case>
        <from-outcome>showResults</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/AvailableResults.xhtml</to-view-id>
        <redirect/>
</navigation-case>
(etc...)

Это отлично работает. Но если я пропущу тег перенаправления в случае навигации, то URL-адрес страницы не изменится. И в этом случае неаутентифицированный пользователь может получить доступ к защищенной странице.

Как лучше всего это сделать? Убедиться, что страница перенаправлена, а не перенаправлена, достаточно? Должен ли я писать код на каждой защищенной странице, которая проверяет, вошел ли пользователь в систему или нет?

1 Ответ

0 голосов
/ 06 августа 2010

Использование POST для постраничной навигации считается плохой практикой.Не используйте JSF h:commandLink или h:commandButton для простой постраничной навигации.Оба генерируют POST-форму, которая совершенно не нужна и SEO-недружественна для простой навигации.Вместо этого используйте h:link или h:button.Он отображает обычную ванильную ссылку GET и форму GET соответственно.

Если вы все равно отправляете форму POST, и страница результатов отличается от страницы формы, то с помощью PRG (Post-Redirect-Get)шаблон считается хорошей практикой.Вы можете использовать <redirect/> для этого.

...