[teiid-commits] teiid SVN: r4412 - in branches/7.7.x: engine/src/main/java/org/teiid/security and 5 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Sep 7 19:06:52 EDT 2012


Author: jolee
Date: 2012-09-07 19:06:52 -0400 (Fri, 07 Sep 2012)
New Revision: 4412

Modified:
   branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
   branches/7.7.x/engine/src/main/java/org/teiid/security/SecurityHelper.java
   branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java
   branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/JBossSecurityHelper.java
   branches/7.7.x/runtime/src/main/java/org/teiid/services/TeiidLoginContext.java
   branches/7.7.x/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java
   branches/7.7.x/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java
Log:
TEIID-2109: Cannot use deployed WAR with HTTPBasic authentication

Modified: branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
===================================================================
--- branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -153,6 +153,10 @@
     	return null;
     }
     
+    public void setSecurityContext(Object securityContext) {
+    	session.setSecurityContext(securityContext);
+    }
+    
     /**
      * @return
      */

Modified: branches/7.7.x/engine/src/main/java/org/teiid/security/SecurityHelper.java
===================================================================
--- branches/7.7.x/engine/src/main/java/org/teiid/security/SecurityHelper.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/engine/src/main/java/org/teiid/security/SecurityHelper.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -32,11 +32,13 @@
 	
 	void clearSecurityContext();
 	
-	Object getSecurityContext(String securityDomain);
+	Object getSecurityContext();
 	
 	Object createSecurityContext(String securityDomain, Principal p, Object credentials, Subject subject);
 
 	Subject getSubjectInContext(String securityDomain);
 	
 	boolean sameSubject(String securityDomain, Object context, Subject subject);
+	
+	String getSecurityDomain(Object context);
 }

Modified: branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java
===================================================================
--- branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -110,7 +110,7 @@
 				return null;
 			}
 			@Override
-			public Object getSecurityContext(String securityDomain) {
+			public Object getSecurityContext() {
 				return this.mycontext;
 			}
 			@Override
@@ -127,6 +127,10 @@
 				this.mycontext = context;
 				return old;
 			}
+			@Override
+			public String getSecurityDomain(Object context) {
+				return null;
+			}
 		};	
 		Object previousSC = sc.createSecurityContext("test", null, null, null); //$NON-NLS-1$
 		sc.associateSecurityContext(previousSC);
@@ -144,13 +148,13 @@
 		Runnable r = new Runnable() {
 			@Override
 			public void run() {
-				assertEquals(currentSC, sc.getSecurityContext(null));
+				assertEquals(currentSC, sc.getSecurityContext());
 			}
 		};
 		
 		message.runInContext(r);
 		
-		assertEquals(previousSC, sc.getSecurityContext(null));
+		assertEquals(previousSC, sc.getSecurityContext());
 	}	
 	
 	

Modified: branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/JBossSecurityHelper.java
===================================================================
--- branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/JBossSecurityHelper.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/JBossSecurityHelper.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -50,12 +50,8 @@
 	}
 	
 	@Override
-	public Object getSecurityContext(String securityDomain) {
-		SecurityContext sc = SecurityActions.getSecurityContext();
-		if (sc != null && sc.getSecurityDomain().equals(securityDomain)) {
-			return sc;
-		}
-		return null;
+	public Object getSecurityContext() {
+		return SecurityActions.getSecurityContext();
 	}	
 	
 	@Override
@@ -89,5 +85,10 @@
 		}
 		return false;
 	}
+			
+	@Override
+	public String getSecurityDomain(Object context) {
+		return ((SecurityContext)context).getSecurityDomain();
+	}
 	
 }

Modified: branches/7.7.x/runtime/src/main/java/org/teiid/services/TeiidLoginContext.java
===================================================================
--- branches/7.7.x/runtime/src/main/java/org/teiid/services/TeiidLoginContext.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/runtime/src/main/java/org/teiid/services/TeiidLoginContext.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -80,7 +80,10 @@
 					this.userName = getUserName(existing)+AT+domain;
 					this.securitydomain = domain;     
 					this.loginContext = createLoginContext(domain, existing);
-			        this.securityContext = this.securityHelper.getSecurityContext(this.securitydomain);
+					Object sc = this.securityHelper.getSecurityContext();
+					if (sc != null && this.securityHelper.getSecurityDomain(sc).equals(this.securitydomain)) {
+						this.securityContext = this.securityHelper.getSecurityContext();
+					}
 					return;
 	        	}
             }

Modified: branches/7.7.x/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java
===================================================================
--- branches/7.7.x/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -81,6 +81,7 @@
 		
 		workContext.setSecurityHelper(csr.getSecurityHelper());
 		workContext.setUseCallingThread(useCallingThread);
+		workContext.setSecurityContext(csr.getSecurityHelper().getSecurityContext());
 		authenticate();
 		passthrough = Boolean.valueOf(connectionProperties.getProperty(TeiidURL.CONNECTION.PASSTHROUGH_AUTHENTICATION, "false")); //$NON-NLS-1$
 	}

Modified: branches/7.7.x/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java
===================================================================
--- branches/7.7.x/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java	2012-09-07 20:30:12 UTC (rev 4411)
+++ branches/7.7.x/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java	2012-09-07 23:06:52 UTC (rev 4412)
@@ -28,6 +28,7 @@
 import java.util.Properties;
 
 import org.jboss.deployers.spi.DeploymentException;
+import org.mockito.Mockito;
 import org.teiid.adminapi.AdminException;
 import org.teiid.adminapi.VDB;
 import org.teiid.adminapi.impl.ModelMetaData;
@@ -65,6 +66,7 @@
 import org.teiid.query.optimizer.capabilities.SourceCapabilities;
 import org.teiid.query.tempdata.GlobalTableStore;
 import org.teiid.query.tempdata.GlobalTableStoreImpl;
+import org.teiid.security.SecurityHelper;
 import org.teiid.services.BufferServiceImpl;
 import org.teiid.services.SessionServiceImpl;
 import org.teiid.transport.ClientServiceRegistry;
@@ -167,6 +169,7 @@
         		return true; //pretend to be replicated for matview tests
         	}
         });
+        this.setSecurityHelper(Mockito.mock(SecurityHelper.class));
         this.dqp.start(config);
         this.sessionService.setDqp(this.dqp);
         



More information about the teiid-commits mailing list