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);
Show replies by date