1

ESAPI の使用を開始していますが、問題があります。サンプル ルール (Validator.Single=[AZ]$) を作成しようとしています。String に大文字のみが含まれているかどうかを検証します。

Validator.Single=[AZ]$ をvalidator.propertiesファイルに入れましたが、コードで使用すると:

System.out.println(v.isValidInput("Single", "A", "Single", 1, true));

出力が教えてくれます

SecurityConfiguration for Validator.Single not found in ESAPI.properties. Using default: 
false

「A」は有効な文字であるため、true に対して false を返します。

私がさらに何をすべきか知っている人はいますか?それとも私がルールを悪くしますか?

ご回答ありがとうございます。

4

3 に答える 3

1

君のValidator.Single=[A-Z]$

になるはずだった

Validator.Single=^[A-Z]$

正規表現の先頭にあるキャレット文字(^) に注意してください。Java 正規表現の詳細については、Lars のJava Regex チュートリアルを参照してください。

于 2014-01-20T13:45:36.913 に答える
0

ここでの問題は、おそらくクラスパスに関連しています。ESAPI を呼び出すプロセスを実行するとき、jvm にプロパティ ファイルの場所を伝えていますか?それともソースからライブラリを自分でコンパイルしていますか?

そのコード行をどのように実行しているかについては十分ではありませんが、validation.properties使用している esapi jar にファイルがあり、必要なファイルを取得していないのではないかと思います。

ただし、プロセスが実行されている場合は、次のプロパティが jvm に渡されていることを確認してください。

-Dorg.owasp.esapi.resources="<path_to_your_resources_directory>"

または、コンパイルする場合は、validation.properties を変更していることを確認してくださいsrc/main/resources

于 2014-10-17T12:08:56.687 に答える