JBossでのパスワード設定

基本的にはTomcatと同じ仕組みのようですが触るファイルが異なるのでメモしておきます。
まずはJboss全体レベルとして触るのが以下のファイルです。ここで、このファイルにuserやroleを指定します。
….jboss-epp-5.2/jboss-as/server/default/conf/login-config.xml
私が追加した例はこんな感じ、
  <application-policy name=”MyJbossWebService”>
    <authentication>
      <login-module code=”org.jboss.security.auth.spi.UsersRolesLoginModule”
        flag=”required”>
        <module-option name=”usersProperties”>props/ws-users.properties</module-option>
        <module-option name=”rolesProperties”>props/ws-roles.properties</module-option>
      </login-module>
    </authentication>
  </application-policy>
ここで実際のuser名やrole名は実はprop配下の対応ファイルにこんな感じで設定

# cat ws-users.properties
# A sample users.properties file for use with the UsersRolesLoginModule
admin=testpassword
# cat ws-roles.properties
# A sample roles.properties file for use with the UsersRolesLoginModule
admin=client

次にそれぞれのアプリケーションに付属するファイルは以下の二つです。
WEB-INF/jboss-web.xml
WEB-INF/web.xml

jboss-web.xmlはTomcatにはありませんが、セキュリティ部分を宣言するだけのようです。

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<!DOCTYPE jboss-web
    PUBLIC “-//JBoss//DTD Web Application 2.3V2//EN”
    “http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd“>
<jboss-web>
  <!– A security domain that restricts access –>
  <security-domain>java:/jaas/MyJbossWebServiceClient</security-domain>
</jboss-web>

web.xmlに関してはTomcatと同じような設定が必要です。

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>
        MyJbossWebServcieClient
      </web-resource-name>
      <url-pattern>/RemoteHourly</url-pattern>
      <url-pattern>/RemoteTemp</url-pattern>
      <url-pattern>/RemoteYear</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>client</role-name>
    </auth-constraint>
  </security-constraint>
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>UserDatabaseRealm</realm-name>
  </login-config>
  <security-role>
   <role-name>client</role-name>
  </security-role>