Статья о Использование памяти Redis может помочь вам приблизительно определить, сколько памяти потребуется вашей базе данных.
Это вызвано тем, что ваш FacesServlet
, по-видимому, отображается в шаблоне URL-стиля JSF 1.0 в *.faces
вместо шаблона URL-стиля в стиле JSF 2.0 *.xhtml
. <protected-views><url-pattern>
должен соответствовать фактическому шаблону URL-адреса, как вы видите в адресной строке браузера.
Итак, учитывая фактический URL-адрес /protected/facelet2.faces
, вам необходимо настроить его, как показано ниже:
<protected-views>
<url-pattern>/protected/facelet2.faces</url-pattern>
</protected-views>
Однако в то время как в нем я обнаружил некоторые неприятные проблемы в текущей реализации Mojarra 2.2.10:
/protected/*
. <h:link>
он не сравнивает шаблон защищенного вида URL с разрешенным URL, а с идентификатором вида JSF , И, проверяя входящий запрос, он не сравнивает URL-адрес запроса с идентификатором вида JSF (например, во время создания ссылки), а к <url-pattern>
. Это, таким образом, никогда не совпадает, полностью объясняя, почему вы можете просто получить к нему доступ без действительного токена. В принципе, вам нужна следующая конфигурация, если вам нужно сохранить шаблон URL-стиля JSF 1.0 в *.faces
.
<protected-views>
<url-pattern>/protected/facelet2.xhtml</url-pattern>
<url-pattern>/protected/facelet2.faces</url-pattern>
</protected-views>
Затем он будет правильно кидать javax.faces.application.ProtectedViewException
при обращении без действительного токена. Намного лучше всего просто отобразить FacesServlet
на *.xhtml
в web.xml
.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Таким образом вам никогда не придется иметь дело с виртуальными URL-адресами.
.