JBoss EAP 7.4 (Undertow)์ HTTP ์๋ต ํค๋์ ๋ ธ์ถ๋๋ ์๋ฒ ๋ฒ์ ์ ๋ณด(
Server: JBoss-EAP/7,X-Powered-By: JSP/2.3)๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ์ฌ ๋ณด์์ฑ์ ๊ฐํํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํฉ๋๋ค. CLI ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ JSP ์ค์ ๋ณ๊ฒฝ๊ณผ ํํฐ(Filter) ์ ์ฉ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.
1. ๋ฌธ์ ํ์ (Issue)
๊ธฐ๋ณธ ์ค์ ์ํ์์ JBoss EAP 7.4๋ ์๋ต ํค๋์ ๊ตฌ์ฒด์ ์ธ ๋ฏธ๋ค์จ์ด ์ ๋ณด๋ฅผ ๋ ธ์ถํฉ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์์๊ฒ ์๋ฒ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋จ์๊ฐ ๋๋ฏ๋ก ๋ณด์ ์ทจ์ฝ์ ์ผ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
๋ ธ์ถ๋๋ ํค๋ ์์
HTTP/1.1 200 OK
X-Powered-By: Undertow/1
X-Powered-By: JSP/2.3
Server: JBoss-EAP/7
...
2. ํด๊ฒฐ ๋ฐฉ๋ฒ (Resolution Plan)
์กฐ์น๋ ํฌ๊ฒ ๋ ๋จ๊ณ๋ก ๋๋ฉ๋๋ค. ① JSP ์์ง์ด ์๋์ผ๋ก ๋ถ์ด๋ ํค๋ ๋นํ์ฑํ, ② Undertow ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ Server ํค๋ ๋ฎ์ด์ฐ๊ธฐ์ ๋๋ค.
Step 1: X-Powered-By (JSP) ๋นํ์ฑํ
์๋ธ๋ฆฟ ์ปจํ ์ด๋ ์ค์ ์์ JSP ์์ง์ด ํด๋น ํค๋๋ฅผ ์์ฑํ์ง ๋ชปํ๋๋ก ์ค์ ํฉ๋๋ค.
[JBoss CLI ๋ช ๋ น์ด]
# JSP ์ค์ ์ x-powered-by ์์ฑ์ false๋ก ๋ณ๊ฒฝ
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=x-powered-by,value=false)
# ์ค์ ์ ์ฉ์ ์ํ ๋ฆฌ๋ก๋ (ํ์์)
reload
Configuration > Subsystems > Undertow > Servlet Container > JSP ํญ๋ชฉ์์ X-Powered-By ์ฒดํฌ๋ฐ์ค๊ฐ ํด์ ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Step 2: Server ํค๋ ๋ณ๊ฒฝ/์ญ์ (Undertow Filter)
Server ํค๋๋ ์์ง ๋ ๋ฒจ์์ ๋ถ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์์ ์ญ์ ๊ฐ ์ด๋ ต๋ค๋ฉด, ํํฐ(Filter)๋ฅผ ํตํด ๋ฌด์๋ฏธํ ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๋(Override) ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
[JBoss CLI ๋ช ๋ น์ด]
# 1. ํค๋ ๋ณ๊ฒฝ์ฉ ํํฐ ์์ฑ (์ด๋ฆ: server-header, ๊ฐ: "Apache" ๋๋ ๋น ๊ฐ)
/subsystem=undertow/configuration=filter/response-header=server-header:add(header-name="Server", header-value="Apache")
# 2. X-Powered-By (Undertow) ํค๋ ์ ๊ฑฐ ํํฐ ์์ฑ (ํ์ ์)
/subsystem=undertow/configuration=filter/response-header=x-powered-by-header:add(header-name="X-Powered-By", header-value="Unknown")
# 3. ์์ฑํ ํํฐ๋ฅผ ๊ธฐ๋ณธ ํธ์คํธ(default-host)์ ์ ์ฉ
/subsystem=undertow/server=default-server/host=default-host/filter-ref=server-header:add
/subsystem=undertow/server=default-server/host=default-host/filter-ref=x-powered-by-header:add
header-value์ ๋น ๊ฐ("")์ ๋ฃ๊ฑฐ๋ ์ผ๋ฐ์ ์ธ ์น ์๋ฒ ์ด๋ฆ("Webserver")์ ๋ฃ์ด ๊ณต๊ฒฉ์์๊ฒ ํผ๋์ ์ค ์ ์์ต๋๋ค.
3. ์กฐ์น ๊ฒฐ๊ณผ ํ์ธ (Verification)
์ค์ ์ ์ฉ ํ curl ๋ช
๋ น์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํตํด ์๋ต ํค๋๊ฐ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํฉ๋๋ค.
๋ณ๊ฒฝ ์ ํ ๋น๊ต
| ํค๋(Header) | ๋ณ๊ฒฝ ์ (Before) | ๋ณ๊ฒฝ ํ (After) |
|---|---|---|
| Server | JBoss-EAP/7 |
Apache (์ค์ ํ ๊ฐ) |
| X-Powered-By | JSP/2.3, Undertow/1 |
(์ญ์ ๋จ) ๋๋ Unknown |
[๊ทธ๋ฆผ] ์กฐ์น ํ ํค๋ ์ ๋ณด ๋ ธ์ถ ํ ์คํธ ๊ฒฐ๊ณผ