2008年12月6日土曜日

Tomcatで認証

「認証情報がなければ、FORMページへリダイレクト」といった
アプリケーションはしばしば見受けられますが、
Tomcat(他を知りませんが)はweb.xmlの編集で認証を
フォルダ、ファイル単位でかけることが可能になります。


それではPostgreSQLのテーブルを使って認証してみましょう。

データベース作成はPostgreSQLの項にありますので見てみてください。
Tomcat5だと./common/libに
JDBCドライバが存在する事が条件です。
Tomcat6では./libになります。

server.xml内にある200行目位です。
  1. <RealmclassName="org.apache.catalina.realm.JDBCRealm"debug="99"   
  2.        driverName="org.postgresql.Driver"    
  3.          connectionURL="jdbc:postgresql://サーバ名/データベース名?   
  4.          user=ユーザ&password=パスワード"   
  5.        userTable="users"   
  6.        userNameCol="user_name"   
  7.        userCredCol="user_pass"   
  8.        userRoleTable="user_roles"   
  9.        roleNameCol="role_name"/>  

って感じで編集します。

その後、アプリケーションのweb.xmlにおいて以下を追加します。

  1. <security-constraint>   
  2.   <web-resource-collection>   
  3.     <web-resource-name>Volunteer Manager ID</web-resource-name>   
  4.     <url-pattern>/manage/*</url-pattern>   
  5.   </web-resource-collection>   
  6.   <auth-constraint>   
  7.     <role-name>admin</role-name>   
  8.     <role-name>design</role-name>   
  9.   </auth-constraint>   
  10. </security-constraint>   
  11.    
  12. <login-config>   
  13.   <auth-method>DIGEST</auth-method>   
  14.   <realm-name>Volunteer Manager ID</realm-name>   
  15. </login-config>   
  16.   
  17. <security-role>   
  18.   <role-name>admin</role-name>   
  19.   <role-name>design</role-name>   
  20. </security-role>  


これで指定したパスはセキュリティがかかります。

0 件のコメント: