| package com.google.gerrit.httpd.auth.openid; |
| |
| import com.google.gerrit.server.config.CanonicalWebUrl; |
| import com.google.inject.Inject; |
| import com.google.inject.Provider; |
| import com.google.inject.Singleton; |
| |
| 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; |
| |
| @Singleton |
| class XrdsFilter implements Filter { |
| private final Provider<String> url; |
| |
| @Inject |
| XrdsFilter(@CanonicalWebUrl final Provider<String> url) { |
| this.url = url; |
| } |
| |
| @Override |
| public void doFilter(ServletRequest request, ServletResponse response, |
| FilterChain chain) throws IOException, ServletException { |
| HttpServletResponse rsp = (HttpServletResponse) response; |
| rsp.setHeader("X-XRDS-Location", url.get() + XrdsServlet.LOCATION); |
| chain.doFilter(request, response); |
| } |
| |
| @Override |
| public void init(FilterConfig config) { |
| } |
| |
| @Override |
| public void destroy() { |
| } |
| } |