FORM認証を使用する場合、web.xml(Web アプリケーションの配備記述子)およびnec-web.xml(Web アプリケーションの配備記述子。WebOTX独自の設定ファイル)に設定を行うことにより、Webコンテナの機能を利用してログインフォームを呼び出す必要があります。「HTTPステータス 400 - フォームログインページへの無効な直接参照です」の画面は、Webコンテナの機能を利用せず、直接ログイン画面を呼び出した際に表示されます。具体的には、アプリケーションで設定しているFORM認証の設定が正しく行われていない場合などです。
アプリケーションで以下の点を確認してください。
・{Webアプリケーション}/WEB-INF/web.xml に <security-constraint> の設定があり、リソースに対する制約が与えられているか
・<security-constraint>タグ内に<auth-constraint>タグの設定があり、アクセス可能なロールが指定されているか
・{Webアプリケーション}WEB-INF/nec-web.xmlに<security-role-mapping>の設定があり、ロールとプリンシパルまたはグループのマッピングが行われているか
以下は、FORM認証使用時のweb.xmlおよびnec-web.xmlの設定例です。web.xmlおよびnec-web.xmlの修正を行う場合は、修正後のファイルをWAR,またはEARに含めた上で、再配備を行ってください。
--------- web.xml ---------
<security-constraint>
<web-resource-collection>
<web-resource-name>FormAuthResource</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
<role-name>role2</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>TestRealm</realm-name>
<form-login-config>
<form-login-page>/jsp/login.jsp</form-login-page>
<form-error-page>/jsp/error.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>role1</role-name>
</security-role>
<security-role>
<role-name>role2</role-name>
</security-role>
--------- nec-web.xml ---------
<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app xmlns="
http://java.sun.com/xml/ns/j2ee">
<security-role-mapping>
<role-name>role1</role-name>
<principal-name>user1</principal-name>
</security-role-mapping>
<security-role-mapping>
<role-name>role2</role-name>
<group-name>group1</group-name>
</security-role-mapping>
</nec-web-app>
【対象製品】Application Server
【確認済みのバージョン】 V6.1 V6.2 V6.3 V6.4 V6.5 V7.1 V8.1 V8.2 V8.3 V8.4
【確認済みのエディション】 すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】Webコンテナ
【カテゴリー】トラブルシューティング