開発環境でBasic認証を使用するために、久しぶりに設定したら場所が全然思い出せなかったのでメモ。
使用したバージョンは
JBoss :5.1.0(ここで取得:http://www.jboss.org/jbossas/downloads/)
web.xmlの設定
<security-constraint>
<web-resource-collection>
<web-resource-name>プロジェクトリソース名</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>プロジェクトロール名</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method> ←BASIC認証用
</login-config>
<security-role>
<role-name>プロジェクトロール名</role-name>
</security-role>
定義する順番があるので、それを守らないとEclipse上でエラーが出る。
定義の順番まで覚えていないので、よくエラーが出て怒られてしまう。
jboss-web.xmlの設定
<jboss-web>
<security-domain>java:/jaas/プロジェクトレルム名</security-domain>
….
</jboss-web>
プロジェクトレルム名は、login-config.xmlを記載する際にも使用する
{JBOSS_HOME}/server/default/conf/login-config.xmlの設定
下記の記載をプロジェクト用に追加する。
<application-policy name=”プロジェクトレルム名”>
<authentication>
<login-module code=”org.jboss.security.auth.spi.UsersRolesLoginModule” flag=”required”>
<module-option name=”usersProperties”>props/hoge-users.properties</module-option>
<module-option name=”rolesProperties”>props/hoge-roles.properties</module-option>
</login-module>
</authentication>
</application-policy>
上記で記載したプロパティファイルを下記のディレクトリに作成し、中身をプロジェクト内で使用するBasic認証用に記載する。
{JBOSS_HOME}/server/default/conf/props/hoge-roles.propertiesの設定
ユーザ名=プロジェクトロール名
プロジェクトロール名は、web.xmlで記載したロール名を記載する
{JBOSS_HOME}/server/default/conf/props/hoge-users.propertiesの設定
ユーザ名=パスワード
後は、HttpServletRequestのgetRemoteUser()から認証に成功したユーザ名が取得できる