与 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()
{
}
}
Ramesh 是正确的,但这是纯粹的 Servlet 实现。请检查接口com.liferay.portal.kernel.servlet.WrapHttpServletResponseFilter
。它是由相同的目的提供的。它将在 Portlet 上下文中工作。
您可以在 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