3

Tomcat Web サーバー用の Web アプリケーションが動作しています。それを IBM websphere AS に移行したいのですが、セキュリティーの問題で立ち往生しています。アプリ全体のセキュリティは、次のように web.xml ファイルで定義されます。

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list> 

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Dynamic pages</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description>access.</description>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>

<login-config id="LoginConfig_1">
    <auth-method>FORM</auth-method>
    <realm-name>SecureRealm</realm-name>
    <form-login-config id="FormLoginConfig_1">
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/loginFail.jsp</form-error-page>
    </form-login-config>
</login-config>

<security-role>
    <description>User of the application.</description>
    <role-name>user</role-name>
</security-role> 

Websphere はこのセキュリティをすべて無視し、ログイン ページを表示せずに Web アプリから任意のページにアクセスできるようにします。手動で login.jsp に移動し、正しいパスワードをアプリに転送すると、getUserPrincipal()null (ログインなし) が返されるため失敗します。loginFail.jsp に転送される間違ったパスワードを入力した場合も同様です。
サーバーログにもエラーはありません。
私は何が間違っているのですか、それともTomcatとは違うのですか?
手伝ってくれてありがとう。

4

1 に答える 1

5

WebSphere セキュリティが有効になっていない可能性があります。そうでない場合、web.xml 設定は無視されます。

管理コンソールで、[セキュリティ] -> [グローバル セキュリティ] セクションを確認します。[アプリケーション セキュリティを有効にする] がオンになっていることを確認します。

異なる「レベル」(ノード、サーバーなど) で異なるセキュリティ設定を作成できることに注意してください。[セキュリティ] -> [セキュリティ ドメイン] で複数のドメインが定義されている場合は、Web アプリケーションが実行されているアプリケーション サーバーに正しいドメインが設定されていることを確認してください。

于 2012-09-12T15:27:52.377 に答える