Liferayを使用すると、それに応じてポータルについて常に説明されます。
Liferay-Portal:Liferay Portal Community Edition 6.1.0 CE (Paton / Build 6100 / January 6, 2012)
Server:GlassFish Server Open Source Edition 3.1.1
これらの情報を削除するにはどうすればよいですか?
HttpServletResponse
オブジェクトに追加されたヘッダーを削除する方法はありません。この問題を処理する唯一の方法は、Wrapping the HttpServletResponse
オブジェクトを使用してFilter
、無視したいヘッダーを食べることです。
使用するサンプルコードは次のとおりです。
public class EatHeadersFilters implements Filter
{
private List<String> headers;
public void init(FilterConfig filterConfig) throws ServletException
{
String headersString = filterConfig.getInitParameter("headers");
String[] strings = headersString.split(",");
headers = Arrays.asList(strings);
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException
{
filterChain.doFilter(request,
new HttpServletResponseWrapper((HttpServletResponse) response){
public void addHeader(String headerName, String headerValue)
{
if(!headers.contains(headerName)){
super.addHeader(headerName, headerValue);
} else {
//eat the header
}
}
});
}
public void destroy()
{
}
}
portal-ext.propertiesで次のキーを使用して、アプリ名とエディションのみを表示できます(例:コミュニティ)
http.header.version.verbosity=partial
特定のバージョンは表示されません。
元のリソースはhttp://arunkumarsrm.blogspot.com/2012/11/liferay-611-ga2-application-security.htmlで見つかりました
また、提供されたパッチを知るために、次のチケットをさらにチェックすることもできます(私はそれを試していません)
http://issues.liferay.com/browse/LPS-2748
http://issues.liferay.com/browse/LPS-9011
* UPD:*実際には、次のオプションを使用してサーバー情報を完全に無効にすることができます。
# portal-ext.properties:
http.header.version.verbosity=Liferay Portal Community Edition
/tomcat-7.0.27/conf/server.xmlの次の設定
<Connector
URIEncoding="UTF-8"
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
server="My Server!"
/>
リソース:http ://tech-annex.blogspot.com/2013/01/hidding-server-signaturebanner.html
Rameshは正しいですが、これは純粋なサーブレットの実装です。インターフェースを確認してくださいcom.liferay.portal.kernel.servlet.WrapHttpServletResponseFilter
。同じ目的で提供されます。ポートレットコンテキストで機能します。