tomcatにwarファイルを配置する
概要
CI/CDの勉強で知識が必要になったので勉強します。
結論(流れ)
eclipseでプロジェクト作成
プロジェクトをエクスポート(war)
tomcatに配置
eclipseでプロジェクト作成
下記の条件で動的プロジェクト作成
プロジェクト名:test
ターゲットランタイム:Tomcat8(Java8) ※今回利用するxamppが8のため
クラスを作成
package test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Test01
*/
@WebServlet("/")
public class Test01 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("ABCD");
}
}
プロジェクトをエクスポート(war)
プロジェクトをwarファイルでエクスポート
tomcatに配置
xampp\tomcat\webapps配下
Tomcatを再起動すると配置される
へアクセス
起動することを確認
xamppで起動したアパッチサーバーへリクエストすると下記のようにserverによってバージョン情報が出力されます。
curl -I -s localhost
HTTP/1.1 302 Found
Date: Tue, 17 Oct 2023 19:16:02 GMT
Server: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4
X-Powered-By: PHP/8.2.4
Location: http://localhost/dashboard/
Content-Type: text/html; charset=UTF-8
なぜ表示しないように制限するのか
server・・・脆弱性のあるサーバーのバージョンを利用している場合、攻撃を受けてしまうため
serverについて
apacheの設定に下記を記載します。
ServerTokens Prod
再起動して確認
curl -I -s localhost
HTTP/1.1 302 Found
Date: Wed, 18 Oct 2023 08:05:24 GMT
Server: Apache
X-Powered-By: PHP/8.2.4
Location: http://localhost/dashboard/
Content-Type: text/html; charset=UTF-8
おまけ
apacheでサーバーフィールドを設定した場合と、java側でフィールドを設定した場合、どちらが優先されるのか?
プロジェクトを作って確認してみます。
res.setHeader("Server", "Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4");
Discussion