mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-14 21:43:11 +00:00
added Filter for set Content-Language Header of the response
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
package org.dspace.app.rest.filter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Locale;
|
||||||
|
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 org.dspace.core.I18nUtil;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This filter assures that when the dspace instance supports multiple languages
|
||||||
|
* they are noted in the Content-Language Header of the response
|
||||||
|
*
|
||||||
|
* @author Mykhaylo Boychuk (at 4science.it)
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class ContentLanguageHeaderResponseFilter implements Filter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(FilterConfig filterConfig) throws ServletException {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
||||||
|
throws IOException, ServletException {
|
||||||
|
chain.doFilter(request, response);
|
||||||
|
|
||||||
|
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
|
||||||
|
if (!httpServletResponse.containsHeader("Content-Language")) {
|
||||||
|
Locale[] locales = I18nUtil.getSupportedLocales();
|
||||||
|
StringBuilder locsStr = new StringBuilder();
|
||||||
|
for (Locale locale : locales) {
|
||||||
|
if (locsStr.length() > 0) {
|
||||||
|
locsStr.append(",");
|
||||||
|
}
|
||||||
|
locsStr.append(locale.getLanguage());
|
||||||
|
}
|
||||||
|
httpServletResponse.setHeader("Content-Language", locsStr.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user