TomcatwarアプリケーションでESAPI暗号化を使用しています。環境ごとに異なるキーとソルトを使用するために、戦争以外のディレクトリからESAPI.propertiesファイルをロードしたいと思います。また、各戦争に異なるESAPI.propertiesファイルがあり、各アプリケーションが個別に構成されることを望んでいます。org.owasp.esapi.reference.DefaultSecurityConfigurationのドキュメントによると、これを実現する方法はいくつかあります。
1)SecurityConfiguration.setResourceDirectory( "C:\ temp \ resources")。
2)System.getProperty( "org.owasp.esapi.resources")
3)System.getProperty( "user.home")+"/.esapi"ディレクトリ内
4)クラスパスの最初の「.esapi」または「esapi」ディレクトリ。
最初の3つのオプションは、Tomcatごとに1つの構成を強制します。つまり、プロパティファイルの場所は、展開されたすべての戦争に適用されます。(最初のオプションはClassLoader.getSystemResourceを使用します-パスがクラスパスの一部である必要があります)
Tomcat構成を使用してそれを達成する方法はありますか?
また、ESAPIのデフォルトのセキュリティ構成をオーバーライドする方法を見つけました。DefaultSecurityConfigurationを拡張してgetResourceFileをオーバーライドできますが、ESAPI javadocは、このメソッドは「絶対に」使用しないでくださいと言っています。その理由はわかりません。
package org.owasp.esapi;
public final class ESAPI{
/**
* Overrides the current security configuration with a new implementation. This is meant
* to be used as a temporary means to alter the behavior of the ESAPI and should *NEVER*
* be used in a production environment as it will affect the behavior and configuration of
* the ESAPI *GLOBALLY*.
*
* To clear an overridden Configuration, simple call this method with null for the config
* parameter.
*
* @param config
* @return
*/
public static void override( SecurityConfiguration config ) {
overrideConfig = config;
}
助言がありますか?