From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/utils/HttpUtils.java | 36 ++++++++++++++++++------------------ 1 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/gitblit/utils/HttpUtils.java b/src/main/java/com/gitblit/utils/HttpUtils.java index 86f53cf..818ed49 100644 --- a/src/main/java/com/gitblit/utils/HttpUtils.java +++ b/src/main/java/com/gitblit/utils/HttpUtils.java @@ -30,15 +30,15 @@ /** * Collection of utility methods for http requests. - * + * * @author James Moger - * + * */ public class HttpUtils { /** * Returns the Gitblit URL based on the request. - * + * * @param request * @return the host url */ @@ -59,7 +59,7 @@ } catch (Throwable t) { } } - + // try to use reverse-proxy server's scheme String forwardedScheme = request.getHeader("X-Forwarded-Proto"); if (StringUtils.isEmpty(forwardedScheme)) { @@ -68,7 +68,7 @@ if (!StringUtils.isEmpty(forwardedScheme)) { // reverse-proxy server has supplied the original scheme scheme = forwardedScheme; - + if ("https".equals(scheme) && port == 80) { // proxy server is https, inside server is 80 // this is likely because the proxy server has not supplied @@ -77,21 +77,21 @@ port = 443; } } - + String context = request.getContextPath(); String forwardedContext = request.getHeader("X-Forwarded-Context"); - if (forwardedContext != null) { + if (StringUtils.isEmpty(forwardedContext)) { forwardedContext = request.getHeader("X_Forwarded_Context"); } if (!StringUtils.isEmpty(forwardedContext)) { context = forwardedContext; } - + // trim any trailing slash if (context.length() > 0 && context.charAt(context.length() - 1) == '/') { context = context.substring(1); } - + StringBuilder sb = new StringBuilder(); sb.append(scheme); sb.append("://"); @@ -103,11 +103,11 @@ sb.append(context); return sb.toString(); } - + /** * Returns a user model object built from attributes in the SSL certificate. * This model is not retrieved from the user service. - * + * * @param httpRequest * @param checkValidity ensure certificate can be used now * @param usernameOIDs if unspecified, CN is used as the username @@ -136,7 +136,7 @@ } return null; } - + /** * Creates a UserModel from a certificate * @param cert @@ -145,16 +145,16 @@ */ public static UserModel getUserModelFromCertificate(X509Certificate cert, String... usernameOIDs) { X509Metadata metadata = X509Utils.getMetadata(cert); - + UserModel user = new UserModel(metadata.commonName); user.emailAddress = metadata.emailAddress; user.isAuthenticated = false; - + if (usernameOIDs == null || usernameOIDs.length == 0) { // use default usename<->CN mapping usernameOIDs = new String [] { "CN" }; } - + // determine username from OID fingerprint StringBuilder an = new StringBuilder(); for (String oid : usernameOIDs) { @@ -163,10 +163,10 @@ an.append(val).append(' '); } } - user.username = an.toString().trim(); + user.username = an.toString().trim(); return user; } - + public static X509Metadata getCertificateMetadata(HttpServletRequest httpRequest) { if (httpRequest.getAttribute("javax.servlet.request.X509Certificate") != null) { X509Certificate[] certChain = (X509Certificate[]) httpRequest @@ -178,7 +178,7 @@ } return null; } - + public static boolean isIpAddress(String address) { if (StringUtils.isEmpty(address)) { return false; -- Gitblit v1.9.1