Контейнерная безопасность Tomcat 7 и SSL не работают вместе + jsf 2.1 - PullRequest
2 голосов
/ 14 декабря 2011

Я использую JDBCRealm для аутентификации пользователя Tomcat 7 и SSL для https, но не могу понять, как их объединить. Моя цель - сделать так, чтобы вся страница была защищена с помощью SSL и была доступна для просмотра только с определенной ролью. Я использую JSF 2.1. Вот мой код в web.xml

<security-role>
    <description/>
    <role-name>employee</role-name>
</security-role>
<security-role>
    <description/>
    <role-name>administrator</role-name>
</security-role>
<security-role>
    <description/>
    <role-name>boss</role-name>
</security-role>

<security-constraint>
    <display-name>ConstraintPrac</display-name>
    <web-resource-collection>
        <web-resource-name>panelprac</web-resource-name>
        <url-pattern>panele/pracownik/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>employee</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Кажется, они работают отдельно, но мне нужен комбинированный способ. Теперь Tomcat не перенаправляет на порт 8443 (https), и вы можете получить доступ к любой странице, просто набрав ее в браузере. Я использовал эту страницу для SSL http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html, а эту для JDBCRealm http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html. Я хочу, чтобы моя программа позволяла получать доступ к определенным страницам только для определенных ролей и в то же время делать все по HTTPS. Пожалуйста, помогите мне с этим. Я не знаю, где я сделал ошибку. Я не получаю никаких ошибок.

ПОСТАНОВИЛИ

Проблема была глубже, чем я думал. Tomcat 7 не поддерживает аутентификацию пользователя в пользовательской форме, поэтому представленные выше роли безопасности не работают. Чтобы решить эту проблему, мне пришлось создать класс Filter для защиты от несанкционированного доступа к страницам.

Я оставлю эту тему, если у кого-то возникнет такая же проблема (если администратор сочтет эту тему неуместной, не стесняйтесь ее удалять)

...