diff options
Diffstat (limited to 'id/server/idserverlib')
-rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java index d4edc4298..d7e8ae686 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java @@ -648,15 +648,31 @@ private int tunnelRequest(HttpServletRequest req, HttpServletResponse resp, Map String loginType = (String) req.getSession().getAttribute(ATT_OA_LOGINTYPE); while ((headerKey = conn.getHeaderFieldKey(i)) != null) { String headerValue = conn.getHeaderField(i); - // Überschrift im Browser-Passworteingabedialog setzen (sonst ist der reale host eingetragen) - if (headerKey.equalsIgnoreCase("WWW-Authenticate") && headerValue.startsWith("Basic realm=\"")) { - headerValue = "Basic realm=\"" + publicURLPrefix + "\""; - if (OAConfiguration.BINDUNG_USERNAME.equals(originBinding) || OAConfiguration.BINDUNG_NOMATCH.equals(originBinding)) { - headerValue = "Basic realm=\"Bitte Passwort eingeben\""; - } else if (OAConfiguration.BINDUNG_NONE.equals(originBinding)) { - headerValue = "Basic realm=\"Bitte Benutzername und Passwort eingeben\""; - } - } + + if (headerKey.equalsIgnoreCase("WWW-Authenticate")) { + int start = headerValue.indexOf("Basic realm=\""); + boolean requestsBasicAuth = headerValue.substring(start).startsWith("Basic realm=\""); + if (requestsBasicAuth) { + headerValue = "Basic realm=\"" + publicURLPrefix + "\""; + + if ( OAConfiguration.BINDUNG_USERNAME.equals(originBinding) || OAConfiguration.BINDUNG_NOMATCH.equals(originBinding)) + headerValue = "Basic realm=\"Bitte Passwort eingeben\""; + else if ("none".equals(originBinding)) { + headerValue = "Basic realm=\"Bitte Benutzername und Passwort eingeben\""; + } + } + } + +// // Überschrift im Browser-Passworteingabedialog setzen (sonst ist der reale host eingetragen) +// if (headerKey.equalsIgnoreCase("WWW-Authenticate") && headerValue.startsWith("Basic realm=\"")) { +// headerValue = "Basic realm=\"" + publicURLPrefix + "\""; +// if (OAConfiguration.BINDUNG_USERNAME.equals(originBinding) || OAConfiguration.BINDUNG_NOMATCH.equals(originBinding)) { +// headerValue = "Basic realm=\"Bitte Passwort eingeben\""; +// } else if (OAConfiguration.BINDUNG_NONE.equals(originBinding)) { +// headerValue = "Basic realm=\"Bitte Benutzername und Passwort eingeben\""; +// } +// } + String respHeader[] = new String[2]; if ((conn.getResponseCode()==HttpURLConnection.HTTP_UNAUTHORIZED) && headerKey.equalsIgnoreCase("content-length")) { //alter the unauthorized message with template for login |