1

サーブレットのセキュリティについては、web.xml で宣言できることを読みました。

<auth-constraints> and <user-data-constraint> 

SSL を有効にするため、および認証の目的で使用します。しかし、これまでのところ、実際のweb.xml(Tomcat、Glassfishで実行されているアプリ)でこれらの宣言を個人的に見たことはありません

それでは、これらの目標を達成するための代替方法は何だろうか? どちらの方法が好ましいですか?

4

2 に答える 2

3

使用するアプリケーション サーバーに大きく依存しますが、一般に、(デプロイメント記述子ではなく) AS のレベルで SSL を有効にしない限り、アプリケーション サーバーが SSL を使用してアプリケーションを公開するようにする方法はありません。

たとえば、Tomcat の場合、SSL コネクタ (デフォルト ポート 8443) を で有効にする必要がありserver.xmlます。mod_proxyまたはを使用して、リバース プロキシとして Apache (httpd) を使用できmod_jkます。

すべてのリクエストをインターセプトするために使用できるコードServletFilterで、通信が SSL の上にない場合は、ユーザーをログイン ページにリダイレクトできます。

于 2012-12-22T20:25:17.197 に答える
1

最初にロールを宣言します。アノテーションを使用するか、web.xml で実行できます。

@DeclareRoles("userRole")
public class SomeServlet extends HttpServlet {
...
}

次に、に追加<security-constraint> しますweb.xml

  <security-constraint>
        <display-name>SecurityConstraint</display-name>
        <web-resource-collection>
             <web-resource-name>SomeServlet</web-resource-name>
            <url-pattern>/some_servlet</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>userRole</role-name>
        </auth-constraint>
        <user-data-constraint>
             <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>file</realm-name>
    </login-config>

<url-pattern>保護するパターンです。

SSLの場合、入力CONFIDENTIALします<transport-guarantee>

于 2012-12-22T20:25:41.533 に答える