Tomcat--セキュリティ認証About

5154 ワード

WEBプロジェクトをしたことがある人はすべて知っていますが、ユーザーに関わると、私たちはユーザーのためにログインして複雑な検証コードを書かなければなりません.もちろんSpring AOPの誕生は私たちの権限管理に多くの便利さを提供しました.あなたも自分で書いたFilterで(フィルタ)あなたのプログラムを登録する際の検証を行います.今日はここでもっと簡単な方法を共有します.それはJava Webのセキュリティ検証メカニズムです.このメカニズムは対立するWEBのコンテナの上にあり、Tomcat、JBossなど、あなたのアプリケーションのweb.xmlファイルに一定の構成をするだけで簡単なログイン検証を完了することができます.機能.正確に言えば、WEBセキュリティ検証メカニズムは、ログイン機能を完了させるだけでなく、セキュリティに重点を置くことができます.保護されたリソースをすべてあなたのリソースセットに定義することができます.これにより、ユーザーは合法的な認証を取得してからアクセスすることができます.WEBのアプリケーション全体、サブフォルダ、特定のファイルを保護することができます.これは、リソースセットの定義に依存します.Tomcatコンテナは以下の4種類の認証方式をサポートする:1.BASIC認証:この方法は、強力な暗号化措置を提供していないため、最も安全ではない認証とされています.   
  <login-config> 
          <auth-method>BASIC</auth-method> 
    </login-config 

     2. DIGEST認証:BASIC認証に比べて比較的安全な認証であり、認証時に要求データをMD 5の暗号化方式で認証する.     
<login-config> 
         <auth-method>DIGEST</auth-method> 
 </login-config> 

     3.FORM認証:これは、ログイン時の認証フォームを指定できるベースのカスタムフォームの認証です.       
<login-config> 
         <auth-method>FORM</auth-method> 
         <form-login-config> 
             <!—       --> 
             <form-login-pages>/login.htm</form-login-pages> 
             <!—       --> 
             <form-error-pages>/error.html</form-error-pages> 
          </form-login-config> 
</login-config>

以下はloginです.htmの内容:(formのactionにはinput要素のnameもありますが、これらは固定されています)
Usernname
Password <login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>
認証を構成する手順を説明します.1.ロールの定義:TOMCATのtomcat-user.xmlファイルで定義されているデフォルトのロールおよびユーザーは、自分で作成したデータベースのロールとユーザーテーブルであってもよい.以下、1.1基本TOMCATの既存ユーザーおよびロールの認証構成:tomcat-users.xmlのrole要素
 <tomcat-users> 
      <role rolename=”Admin”/> 
      <role rolename=”Manager”/> 
      <user username=”admin”password=”admin” role=”Admin, Manager”/> 
  </tomcat-users> 
    web.xml    security-role   
 <security-role> 
    <!—     tomcat-users.xml   --> 
        <role-name>Admin</role-name> 
  </security-role> 

1.2基本カスタムデータベースユーザテーブルの認証構成:自分で定義したデータテーブルに基づいて認証したい場合は、META-INFフォルダの下にcontextという名前を作成する必要があります.xmlファイル.次のように構成されています.
<?xml version="1.0" encoding="UTF-8"?> 
    <Context path="/mycms"> 
    <Realm className="org.apache.catalina.realm.JDBCRealm" 
                 connectionName="root" 
                 connectionPassword="123456" 
                 connectionURL="jdbc:mysql://localhost:3306/mycms" 
                 driverName="com.mysql.jdbc.Driver" 
                 roleNameCol="rolename" 
                 userCredCol="password" 
                 userNameCol="username" 
                 userRoleTable="mc_userroles" 
                 userTable="mc_users"/> 
    </Context>

ここでは、データベースの接続情報と、認証を指定したユーザーテーブルおよびロールテーブルを構成します.2リソース/メソッド制約をwebで定義する.xmlファイルには、要素などの定義があります.
 <security-constraint> 
        <display-name>MyCMS</display-name> 
        <web-resource-collection> 
            <web-resource-name>Protected Area</web-resource-name> 
            <!-- Define the context-relative URL(s) to be protected --> 
            <url-pattern>/admin/*</url-pattern> 
        </web-resource-collection> 
        <auth-constraint> 
            <!-- Anyone with one of the listed roles may access this area --> 
            <role-name>Admin</role-name> 
        </auth-constraint> 
    </security-constraint> 
    <!-- Login configuration uses form-based authentication --> 
    <login-config> 
        <auth-method>BASIC</auth-method> 
        <realm-name>MyCMS</realm-name> 
    </login-config> 
    
    <!-- Security roles referenced by this web application --> 
    <security-role> 
        <description> 
            The role that is required to log in to the Administration Application 
        </description> 
        <role-name>Admin</role-name> 
  </security-role> 

これで基本的なTOMCATのセキュリティ認証構成が完了しました.他の3つの態様については、同様に構成する、2で定義されたwebを参照することができる.xmlファイル