トラブルシューティング
最終更新日: 2023年3月9日
R8 | R9
Q. Wagby の REST API へアクセスしたとき、次のようなエラーが生じる場合があります。
A. アクセスする際のURLのパスに "[", "," "]", "|" などの文字が含まれていると発生します。これらはURLやHTTPヘッダに使えない文字となります。
URLのクエリ部分にはアルファベット,数字,"-",".","_","~" が使用できます。これ以外の文字を送信する場合はURLエンコードを行うようにしてください。
リクエスト文字列にURLエンコードした文字列を含む場合、Wagbyが内部で採用しているセキュリティフレームワーク Spring Security の HTTP ファイアウォール機能がエラーと判断することがあります。次のエラーメッセージが記録されます。
例えばURLエンコード文字列にパス内の "%2e" (エンコード前の文字は半角ピリオド) が含まれている場合、これをパストラバーサルと検知し、拒否するというものです。半角ピリオドや、連続したスラッシュ文字列 "//" が該当します。
このように一部の文字は利用できない場合があります。
URLエンコード
使えない文字
org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:479)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:835)
RequestRejectedExceptionが発生する
The request was rejected because the URL contained a potentially malicious String