Как установить заголовки http в JBoss EAP 6.1
Я хочу установить заголовки http для параметров x-frame и Strict-Transport-Security в jboss 6.1.0.
Я искал подходящий файл конфигурации для добавления этих заголовков, я вижу некоторые процедуры для jboss 6.4, jboss 7, но я ничего не получил для jboss 6.1
Настройте заголовки Http в JBoss EAP 7
Это в jboss 7, мне нужно сделать то же самое для jboss 6.1
Я много пытался определить правильные изменения конфигурации, необходимые для этого в jboss 6.1, но я беспомощен.
пожалуйста, позвольте мне знать, если кто-то знает об этом в jboss 6.1
Заранее спасибо.
2 ответа
Если вы используете Apache HTTPD в качестве прокси для JBoss, очень легко добавить все эти заголовки, используя директиву Header. В противном случае вы можете установить все эти заголовки в пользовательском фильтре и поместить в папку lib соответствующего веб-приложения.
Этот ответ присутствует в базе знаний RedHat. Поскольку это требует учетных данных RedHat, я выкладываю тот же ответ здесь.
Решение:
Фильтр сервлета можно использовать для добавления дополнительного HTTP-заголовка к ответу. Ниже приведен пример фильтра, который использует Servlet 3.0 @WebFilter
, Использование аннотации не требует настройки web.xml
включить фильтр.
/*
* This is a sample servlet filter to set "X-Frame-Options" http header to
* http response.
*/
package com.redhat.jboss.support;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/*")
public class AddCustomHeaderFilter implements Filter {
/**
* Take this filter out of service.
*/
public void destroy() {
}
/**
* @param request The servlet request we are processing
* @param result The servlet response we are creating
* @param chain The filter chain we are processing
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
((HttpServletResponse)response).setHeader("X-Frame-Options", "SAMEORIGIN");
chain.doFilter(request, response);
}
/**
* Place this filter into service.
*
* @param filterConfig The filter configuration object
*/
public void init(FilterConfig filterConfig) throws ServletException {
}
}
- После компиляции
AddCustomHeaderFilter.java
, один пакет будет создавать по имениcom.redhat.jboss.support
с участиемAddCustomHeaderFilter.class
, Создать банку для
AddCustomHeaderFilter.class
используя следующую команду. Это создаст банкуAddCustomHeaderFilter.jar
:jar -cvf AddCustomHeaderFilter.jar com
Поместите эту банку в вашем веб-приложении
WEB-INF/lib
папка. Это включит фильтр сервлетов в веб-приложении.
ПРИМЕЧАНИЕ: пример, приведенный в AddCustomHeaderFilter.java
класс для "SAMEORIGIN". Ниже приведены возможные значения для X-Frame-Options:
- DENY: страница не может отображаться во фрейме, независимо от того, какой сайт пытается это сделать.
- SAMEORIGIN: Страница может отображаться только в рамке того же источника, что и сама страница.