2

Tomcat 7 ユーザー認証に JDBCRealm を使用し、https に SSL を使用していますが、それらを組み合わせる方法がわかりません。私の目標は、すべてのページを 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 クラスを作成する必要がありました。

誰かが同じ問題を抱えている場合に備えて、このトピックを残します (管理者がこのトピックを無関係だと判断した場合は、自由に削除してください)

4

0 に答える 0