Последствия сохранения сеанса на клиенте с помощью javax.faces.STATE_SAVING_METHOD

Моя первая страница JSF бросала javax.faces.application.ViewExpiredException, пока я искал, я получил это решение, которое решило мою проблему.

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>

Но я обеспокоен последствиями безопасности.

1 ответ

Решение

Это не сохраняет "сессию" на стороне клиента вообще.

Это только сохраняет состояние просмотра JSF на стороне клиента. Это в JSF 2.2 всегда AES-шифруется ключом, который генерируется при запуске приложения. Это, однако, делает недействительным после перезапуска приложения, в результате чего все существующие состояния просмотра становятся недействительными. Вы можете указать фиксированный ключ, как показано ниже web.xml так что все существующие состояния просмотра остаются действительными при перезапусках сервера:

<env-entry>
    <env-entry-name>jsf/ClientSideSecretKey</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>[AES key in Base64 format]</env-entry-value>
</env-entry>

Вы можете использовать эту страницу для генерации случайного ключа AES в формате Base64.

Смотрите также:

Другие вопросы по тегам