diff options
author | Shawn Pearce <sop@google.com> | 2013-04-25 09:31:52 -0700 |
---|---|---|
committer | Shawn Pearce <sop@google.com> | 2013-04-25 09:31:52 -0700 |
commit | 2a707bdefee91dca342d6e0a64c94aeb59aa6b4b (patch) | |
tree | 6d394d0dae1ce9882803da7cf4d07d06aa133a31 /gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java | |
parent | 2244c3a0b48c94e60ecb33976efe7d84d1522513 (diff) | |
parent | 376da31e92527def686395182e1efbd6f54354cc (diff) |
Merge branch 'stable-2.6'
* stable-2.6:
Make Diffy in Diffy theme smaller
Remove unnecessary @SuppressWarnings annotations in ChangeControl
Update documentation to clarify how to set Global Capabilities
Distinguish between error and timeout in intraline diff error message
Replace Hashtable with ConcurrentMap
Fix login redirect loop when auth.type = HTTP
Include site header, footer and CSS on OpenID login form
TrivialRebase: Fix custom categories
Diffstat (limited to 'gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java')
-rw-r--r-- | gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java | 53 |
1 files changed, 5 insertions, 48 deletions
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java index 1d7b376850..cfae86c8ba 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/LdapLoginServlet.java @@ -19,6 +19,7 @@ import com.google.common.base.Strings; import com.google.gerrit.common.PageLinks; import com.google.gerrit.httpd.HtmlDomUtil; import com.google.gerrit.httpd.WebSession; +import com.google.gerrit.httpd.template.SiteHeaderFooter; import com.google.gerrit.server.account.AccountException; import com.google.gerrit.server.account.AccountManager; import com.google.gerrit.server.account.AccountUserNameException; @@ -26,7 +27,6 @@ import com.google.gerrit.server.account.AuthRequest; import com.google.gerrit.server.account.AuthResult; import com.google.gerrit.server.auth.AuthenticationUnavailableException; import com.google.gerrit.server.config.CanonicalWebUrl; -import com.google.gerrit.server.config.SitePaths; import com.google.gwtexpui.server.CacheHeaders; import com.google.inject.Inject; import com.google.inject.Provider; @@ -37,7 +37,6 @@ import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; -import java.io.File; import java.io.IOException; import javax.annotation.Nullable; @@ -57,17 +56,17 @@ class LdapLoginServlet extends HttpServlet { private final AccountManager accountManager; private final Provider<WebSession> webSession; private final Provider<String> urlProvider; - private final SitePaths sitePaths; + private final SiteHeaderFooter headers; @Inject LdapLoginServlet(AccountManager accountManager, Provider<WebSession> webSession, @CanonicalWebUrl @Nullable Provider<String> urlProvider, - SitePaths sitePaths) { + SiteHeaderFooter headers) { this.accountManager = accountManager; this.webSession = webSession; this.urlProvider = urlProvider; - this.sitePaths = sitePaths; + this.headers = headers; if (Strings.isNullOrEmpty(urlProvider.get())) { log.error("gerrit.canonicalWebUrl must be set in gerrit.config"); @@ -83,13 +82,7 @@ class LdapLoginServlet extends HttpServlet { cancel += "#" + token; } - Document doc = - HtmlDomUtil.parseFile(LdapLoginServlet.class, "LoginForm.html"); - - injectCssFile(doc, "gerrit_sitecss", sitePaths.site_css); - injectXmlFile(doc, "gerrit_header", sitePaths.site_header); - injectXmlFile(doc, "gerrit_footer", sitePaths.site_footer); - + Document doc = headers.parse(LdapLoginServlet.class, "LoginForm.html"); HtmlDomUtil.find(doc, "hostName").setTextContent(req.getServerName()); HtmlDomUtil.find(doc, "login_form").setAttribute("action", self); HtmlDomUtil.find(doc, "cancel_link").setAttribute("href", cancel); @@ -114,42 +107,6 @@ class LdapLoginServlet extends HttpServlet { } } - private void injectCssFile(final Document hostDoc, final String id, - final File src) throws IOException { - final Element banner = HtmlDomUtil.find(hostDoc, id); - if (banner != null) { - while (banner.getFirstChild() != null) { - banner.removeChild(banner.getFirstChild()); - } - - String css = HtmlDomUtil.readFile(src.getParentFile(), src.getName()); - if (css == null) { - banner.getParentNode().removeChild(banner); - } else { - banner.removeAttribute("id"); - banner.appendChild(hostDoc.createCDATASection("\n" + css + "\n")); - } - } - } - - private void injectXmlFile(final Document hostDoc, final String id, - final File src) throws IOException { - final Element banner = HtmlDomUtil.find(hostDoc, id); - if (banner != null) { - while (banner.getFirstChild() != null) { - banner.removeChild(banner.getFirstChild()); - } - - Document html = HtmlDomUtil.parseFile(src); - if (html == null) { - banner.getParentNode().removeChild(banner); - } else { - final Element content = html.getDocumentElement(); - banner.appendChild(hostDoc.importNode(content, true)); - } - } - } - @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { |