3

web.xmlには次のようなものがあります

 <security-constraint>
    <auth-constraint>
        <role-name>ROLE_USER</role-name>
    </auth-constraint>
    <web-resource-collection>
        <url-pattern>/app/*</url-pattern>
    </web-resource-collection>
</security-constraint>

これは、実稼働Websphere環境にのみ存在します。
現在、Websphereでテストするのではなく、JettyとJBossを使用しています。そのため、これらの環境のさまざまなセキュリティ構成に対処するための特定のSpringプロファイルがあります。しかし、Springプロファイルのスコープはweb.xmlに到達せず、テスト環境のSpringSecurityと競合するこれらのセキュリティ制約命令に固執しています。

これで、この質問で説明されているように、Mavenプロファイルを使用してこれに対処できますが、これには複数のビルドが含まれるため、その端を避けたいと考えています。

要約すると、Jettyのweb.xmlセキュリティを考慮しない方法はありますか?(そして、JBoss 7の答えがあれば、それも素晴らしいことです!)

編集:Jetty6の実行時のエラーはhttp500で、ショートメッセージが表示されます"No Realm"。別の解決策は、デフォルトのダミーユーザーを自動的にログに記録することですが、これが可能かどうかはわかりません。

4

1 に答える 1

1

最終的にそれをした方法(ジェティ6):

WEB-INFにjetty-web.xmlを追加しました。

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  <Set name="securityHandler">
      <New class="mypackage.util.JettySecurityHandler" />
  </Set>
</Configure>

オーバーライドされたSecurityHandler:

package mypackage.util;

import org.mortbay.jetty.Request;
import org.mortbay.jetty.Response;
import org.mortbay.jetty.security.SecurityHandler;
import java.io.IOException;

public class JettySecurityHandler extends SecurityHandler {

    @Override
    public boolean checkSecurityConstraints(String pathInContext, Request request, Response response)
            throws IOException {
        return true;
    }
}

これは素晴らしいことではありません。-
カスタムコード
-バージョン固有(Jetty 7および8では機能しません)
が、機能します。

于 2013-01-28T11:44:49.967 に答える