SpringのRestControllerへのマッピングミスでTomcatのバージョン情報がクライアントに返却されてしまう
Q&A
Closed
初めまして
表題の内容につきまして質問させていただきたく投稿しました。
早速ですが、表題の内容につきまして
SpringでRestControllerを作成し、
URLエンコード済みのパスパラメータを含むURLを
クライアントからリクエストする際
URLエンコードがSpring側で認識できないケースなどの
リクエスト情報をクライアントからリクエストすると
使用しているTomcatのバージョン情報をSpringがデフォルトで
クライアントに返却してしまいます。
対策方法等ご存知の方、ご教授いただけないでしょうか?
* 試した対策
・ExceptionHandlerでBadRequestを返却するハンドラを全てオーバーライド
・Errorハンドル用のRestControllerを作成(implements ErrorController.class)
e.g )
サンプルコード
@RequestMapping( value = "address/{prefecture}", method = RequestMethod.GET)
public ResponseEntity<Object> getPostInfoByPrefecture(
@PathVariable @NotNull String prefecture
) {
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
}
リクエスト
curl -G -i http://localhost:8080/address/%
レスポンス
<!doctype html>
<html lang="en">
<head>
<title>HTTP Status 400 – Bad Request</title>
<style type="text/css">
body {font-family:Tahoma,Arial,sans-serif;}
h1, h2, h3, b {color:white;background-color:#525D76;}
h1 {font-size:22px;}
h2 {font-size:16px;}
h3 {font-size:14px;}
p {font-size:12px;}
a {color:black;}
.line {height:1px;background-color:#525D76;border:none;}
</style>
</head>
<body>
<h1>HTTP Status 400 – Bad Request</h1>
<hr class="line" />
<p><b>Type</b> Status Report</p>
<p><b>Message</b> Invalid URI: End of file (EOF)</p>
<p><b>Description</b> The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).</p>
<hr class="line" />
<h3>Apache Tomcat/9.0.37</h3>
</body>
</html>
問題の箇所
Apache Tomcat/9.0.37
0