From 304fa9d89f139bf53abac057de9ca6586f357072 Mon Sep 17 00:00:00 2001
From: kstranacher <kstranacher@d688527b-c9ab-4aba-bd8d-4036d912da1d>
Date: Fri, 12 Aug 2011 08:31:57 +0000
Subject: Update ProxyServlet.java (ELAK)

git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1212 d688527b-c9ab-4aba-bd8d-4036d912da1d
---
 .../moa/id/proxy/servlet/ProxyServlet.java         | 34 ++++++++++++++++------
 1 file changed, 25 insertions(+), 9 deletions(-)

(limited to 'id/server/idserverlib/src')

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 
-- 
cgit v1.2.3