Spring Bootで以下のようなRestAPIを作成しています。
java
1... 2 3@RequestMapping(value = "/hoge/{param:.+}") 4public ResponseEntity<?> get(@PathVariable("param") String param) { 5 return ResponseEntity.ok("Hello, world! Param : " + param); 6} 7 8...
このAPIに対し、http://localhost:8080/hoge/.
あるいはピリオドをエンコードした http://localhost:8080/hoge/%2e
にリクエストしたとき、いずれも404エラーになってしまいます。
ただし、http://localhost:8080/hoge/param.
あるいは http://localhost:8080/hoge/param%2e
は期待通りに動きます。
おそらく末尾の /.
は Spring あるいは tomcat 側で不正なURLとして扱っていると推測していますが、それを裏付ける資料を探し当てる事ができませんでした。
また、エンコードしたピリオドも通常のピリオドと同様に扱われる理由がわかりません。
上記のような末尾にピリオドを使用した場合404エラーになってしまう原因、及びその回避策があればご教授いただきたいです。
あなたの回答
tips
プレビュー