[teiid-commits] teiid SVN: r2701 - in branches/7.1.x/engine/src: test/java/org/teiid/dqp/internal/process and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Wed Nov 3 11:52:59 EDT 2010
Author: shawkins
Date: 2010-11-03 11:52:58 -0400 (Wed, 03 Nov 2010)
New Revision: 2701
Modified:
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java
Log:
TEIID-1345: fix for needing a role to have any authenticated.
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java 2010-11-02 18:22:19 UTC (rev 2700)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java 2010-11-03 15:52:58 UTC (rev 2701)
@@ -29,7 +29,6 @@
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
@@ -199,9 +198,6 @@
if (this.policies == null) {
this.policies = new HashMap<String, DataPolicy>();
Set<String> userRoles = getUserRoles();
- if (userRoles.isEmpty()) {
- return this.policies;
- }
// get data roles from the VDB
for (DataPolicy policy : getVDB().getDataPolicies()) {
@@ -217,13 +213,7 @@
if (policy.isAnyAuthenticated()) {
return true;
}
- List<String> roles = policy.getMappedRoleNames();
- for (String role:roles) {
- if (userRoles.contains(role)) {
- return true;
- }
- }
- return false;
+ return !Collections.disjoint(policy.getMappedRoleNames(), userRoles);
}
private Set<String> getUserRoles() {
Modified: branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java 2010-11-02 18:22:19 UTC (rev 2700)
+++ branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java 2010-11-03 15:52:58 UTC (rev 2701)
@@ -26,7 +26,9 @@
import org.mockito.Mockito;
import org.teiid.adminapi.DataPolicy;
+import org.teiid.adminapi.impl.DataPolicyMetadata;
import org.teiid.adminapi.impl.SessionMetadata;
+import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.core.util.UnitTestUtil;
import junit.framework.TestCase;
@@ -67,12 +69,27 @@
public void testClearPolicies() {
DQPWorkContext message = new DQPWorkContext();
message.setSession(Mockito.mock(SessionMetadata.class));
+ Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData());
Map<String, DataPolicy> map = message.getAllowedDataPolicies();
map.put("role", Mockito.mock(DataPolicy.class)); //$NON-NLS-1$
assertFalse(map.isEmpty());
message.setSession(Mockito.mock(SessionMetadata.class));
+ Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData());
map = message.getAllowedDataPolicies();
assertTrue(map.isEmpty());
}
+
+ public void testAnyAuthenticated() {
+ DQPWorkContext message = new DQPWorkContext();
+ message.setSession(Mockito.mock(SessionMetadata.class));
+ VDBMetaData vdb = new VDBMetaData();
+ DataPolicyMetadata dpm = new DataPolicyMetadata();
+ dpm.setAnyAuthenticated(true);
+ vdb.addDataPolicy(dpm);
+ Mockito.stub(message.getSession().getVdb()).toReturn(vdb);
+
+ Map<String, DataPolicy> map = message.getAllowedDataPolicies();
+ assertEquals(1, map.size());
+ }
}
More information about the teiid-commits
mailing list