3

OWASP の ESAPI を使って作業していると、この特定のコード行に行き詰まっていることに気付きました。

private static String customDirectory = System.getProperty("org.owasp.esapi.resources");

私のコンピューターにはそのようなシステム プロパティ「org.owasp.esapi.resources」が設定されていないため、コードは null を返します。このプロパティをコンピューターに永続的に設定する方法はありますか?

4

2 に答える 2

4

これをコマンド ライン プロパティとして JVM に渡す必要があります。ほとんどのアプリケーション コンテナーは、環境変数 JAVA_OPTS を、JVM に渡す必要があるオプションの "永続的な" ストアとして使用します。次のようなことを試すことができます。

*nix:

export JAVA_OPTS="-Dorg.owasp.esapi.resources=/path/to/esapi/configuration"

ウィンドウの場合:

set JAVA_OPTS="-Dorg.owasp.esapi.resources=C:\path\to\esapi\configuration"

これを起動コマンドとして Windows または Linux に追加できます。必要に応じて常に設定されるか、よりローカライズされたソリューションのためにアプリケーションの起動スクリプトに追加します。

于 2012-03-26T20:56:14.507 に答える
0

resources フォルダー内に ESAPI.properties と Validation.properties を配置すると、自動的に認識されます。

特定のフォルダーまたはサブフォルダーを指定する必要がある場合、1 つの可能性は、このプロパティをスタンドアロンに追加することです。

<system-properties>
    <property name="org.owasp.esapi.resources" value="C:/.../resources/esapi"/>
<system-properties>

ただし、単体テストでは、テストの前に指定する必要があります。

@BeforeClass
public static void before() {    
   if(System.getProperty("org.owasp.esapi.resources") != null) {
      System.out.println(System.getProperty("org.owasp.esapi.resources"));
   } else  {
      System.setProperty("org.owasp.esapi.resources", "src/main/resources");
   }
}
于 2020-11-17T09:08:32.827 に答える