[teiid-commits] teiid SVN: r3459 - in trunk/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
Fri Sep 9 07:24:59 EDT 2011
Author: shawkins
Date: 2011-09-09 07:24:58 -0400 (Fri, 09 Sep 2011)
New Revision: 3459
Modified:
trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
Log:
adding a unit test for hasrole
Modified: trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java 2011-09-09 02:28:24 UTC (rev 3458)
+++ trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java 2011-09-09 11:24:58 UTC (rev 3459)
@@ -31,7 +31,7 @@
public class SecuritySystemFunctions {
- public static boolean hasRole(CommandContext context, Object roleName) throws FunctionExecutionException {
+ public static boolean hasRole(CommandContext context, String roleName) throws FunctionExecutionException {
SecurityFunctionEvaluator eval = context.getSecurityFunctionEvaluator();
if (eval == null) {
@@ -39,13 +39,13 @@
}
try {
- return eval.hasRole(SecurityFunctionEvaluator.DATA_ROLE, (String)roleName);
+ return eval.hasRole(SecurityFunctionEvaluator.DATA_ROLE, roleName);
} catch (TeiidComponentException err) {
throw new FunctionExecutionException(err, err.getMessage());
}
}
- public static boolean hasRole(CommandContext context, Object roleType, Object roleName) throws FunctionExecutionException {
+ public static boolean hasRole(CommandContext context, String roleType, String roleName) throws FunctionExecutionException {
SecurityFunctionEvaluator eval = context.getSecurityFunctionEvaluator();
@@ -54,7 +54,7 @@
}
try {
- return eval.hasRole((String)roleType, (String)roleName);
+ return eval.hasRole(roleType, roleName);
} catch (TeiidComponentException err) {
throw new FunctionExecutionException(err, err.getMessage());
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-09-09 02:28:24 UTC (rev 3458)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-09-09 11:24:58 UTC (rev 3459)
@@ -25,6 +25,7 @@
import static org.junit.Assert.*;
import java.sql.ResultSet;
+import java.util.HashMap;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
@@ -35,6 +36,8 @@
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
+import org.teiid.adminapi.DataPolicy;
+import org.teiid.adminapi.impl.DataPolicyMetadata;
import org.teiid.api.exception.query.QueryResolverException;
import org.teiid.cache.CacheConfiguration;
import org.teiid.cache.DefaultCacheFactory;
@@ -104,6 +107,9 @@
DQPWorkContext context = RealMetadataFactory.buildWorkContext(RealMetadataFactory.createTransformationMetadata(RealMetadataFactory.exampleBQTCached().getMetadataStore(), "bqt"));
context.getVDB().getModel("BQT3").setVisible(false); //$NON-NLS-1$
context.getVDB().getModel("VQT").setVisible(false); //$NON-NLS-1$
+ HashMap<String, DataPolicy> policies = new HashMap<String, DataPolicy>();
+ policies.put("foo", new DataPolicyMetadata());
+ context.setPolicies(policies);
ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
context.getVDB().addAttchment(ConnectorManagerRepository.class, repo);
@@ -124,6 +130,9 @@
config.setMaxActivePlans(1);
config.setUserRequestSourceConcurrency(2);
config.setResultsetCacheConfig(new CacheConfiguration());
+ DefaultAuthorizationValidator daa = new DefaultAuthorizationValidator();
+ daa.setPolicyDecider(new DataRolePolicyDecider());
+ config.setAuthorizationValidator(daa);
core.start(config);
core.getPrepPlanCache().setModTime(1);
core.getRsCache().setModTime(1);
@@ -151,6 +160,20 @@
@Test public void testRequest1() throws Exception {
helpExecute("SELECT IntKey FROM BQT1.SmallA", "a"); //$NON-NLS-1$ //$NON-NLS-2$
}
+
+ @Test public void testHasRole() throws Exception {
+ String sql = "SELECT hasRole('foo')"; //$NON-NLS-1$
+ String userName = "logon"; //$NON-NLS-1$
+ ResultsMessage rm = helpExecute(sql, userName);
+ assertTrue((Boolean)rm.getResults()[0].get(0));
+ }
+
+ @Test public void testNotHasRole() throws Exception {
+ String sql = "SELECT hasRole('bar')"; //$NON-NLS-1$
+ String userName = "logon"; //$NON-NLS-1$
+ ResultsMessage rm = helpExecute(sql, userName);
+ assertFalse((Boolean)rm.getResults()[0].get(0));
+ }
@Test public void testUser1() throws Exception {
String sql = "SELECT IntKey FROM BQT1.SmallA WHERE user() = 'logon'"; //$NON-NLS-1$
More information about the teiid-commits
mailing list