aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java34
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