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 クラスを作成する必要がありました。
誰かが同じ問題を抱えている場合に備えて、このトピックを残します (管理者がこのトピックを無関係だと判断した場合は、自由に削除してください)