blob: 32545518e49885a78b34f91931947a24c3976680 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.directory.fortress.core.impl;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.directory.fortress.core.AdminMgr;
import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.ReviewMgr;
import org.apache.directory.fortress.core.ReviewMgrFactory;
import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
import org.apache.directory.fortress.core.model.PermissionAttribute;
import org.apache.directory.fortress.core.model.PermissionAttributeSet;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.RoleConstraint;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
import org.apache.directory.fortress.core.util.LogUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* ReviewMgrImpl Tester.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version 1.0
*/
public class ReviewMgrImplTest extends TestCase
{
private static final String CLS_NM = ReviewMgrImplTest.class.getName();
private static final Logger LOG = LoggerFactory.getLogger( CLS_NM );
private static Session adminSess = null;
public ReviewMgrImplTest( String name )
{
super( name );
}
public static Test suite()
{
TestSuite suite = new TestSuite();
/*
suite.addTest( new ReviewMgrImplTest( "testReadPermissionOp" ) );
suite.addTest( new ReviewMgrImplTest( "testFindPermissionOps" ) );
suite.addTest( new ReviewMgrImplTest( "testReadPermissionObj" ) );
suite.addTest( new ReviewMgrImplTest( "testFindPermissionObjs" ) );
suite.addTest( new ReviewMgrImplTest( "testReadRole" ) );
suite.addTest( new ReviewMgrImplTest( "testFindRoles" ) );
suite.addTest( new ReviewMgrImplTest( "testReadUser" ) );
suite.addTest( new ReviewMgrImplTest( "testFindUsers" ) );
suite.addTest( new ReviewMgrImplTest( "testAssignedRoles" ) );
suite.addTest( new ReviewMgrImplTest( "testAuthorizedUsers" ) );
suite.addTest( new ReviewMgrImplTest( "testAuthorizedRoles" ) );
suite.addTest( new ReviewMgrImplTest( "testRolePermissions" ) );
suite.addTest( new ReviewMgrImplTest( "testUserPermissions" ) );
suite.addTest( new ReviewMgrImplTest( "testPermissionRoles" ) );
suite.addTest( new ReviewMgrImplTest( "testAuthorizedPermissionRoles" ) );
suite.addTest( new ReviewMgrImplTest( "testPermissionUsers" ) );
suite.addTest( new ReviewMgrImplTest( "testAuthorizedPermissionUsers" ) );
suite.addTest( new ReviewMgrImplTest( "testFindSsdSets" ) );
suite.addTest( new ReviewMgrImplTest( "testFindDsdSets" ) );
*/
//suite.addTest( new ReviewMgrImplTest( "testReadUserRoleConstraint" ) );
//suite.addTest( new ReviewMgrImplTest( "testFindRoleConstraints" ) );
suite.addTest( new ReviewMgrImplTest( "testAssignedUserRoleConstraints" ) );
return suite;
}
public void setUp() throws Exception
{
super.setUp();
}
public void tearDown() throws Exception
{
super.tearDown();
}
public static Test suitex()
{
return new TestSuite( ReviewMgrImplTest.class );
}
public void testReadPermissionOp()
{
// public Permission readPermission(Permission permOp)
readPermissionOps( "RD-PRM-OPS TOB1 OPS_TOP1_UPD", PermTestData.OBJS_TOB1, PermTestData.OPS_TOP1_UPD );
readPermissionOps( "RD-PRM-OPS TOB1 TOP2", PermTestData.OBJS_TOB2, PermTestData.OPS_TOP2 );
readPermissionOps( "RD-PRM-OPS TOB1 TOP3", PermTestData.OBJS_TOB3, PermTestData.OPS_TOP3 );
}
/**
* @param msg
* @param pObjArray
* @param pOpArray
*/
public static void readPermissionOps( String msg, String[][] pObjArray, String[][] pOpArray )
{
Permission pOp = new Permission();
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] objs : pObjArray )
{
for ( String[] ops : pOpArray )
{
pOp = new Permission();
pOp.setObjName( PermTestData.getName( objs ) );
pOp.setOpName( PermTestData.getName( ops ) );
pOp.setObjId( PermTestData.getObjId( ops ) );
Permission entity = reviewMgr.readPermission( pOp );
assertNotNull( entity );
PermTestData.assertEquals( PermTestData.getName( objs ), entity, ops );
LOG.debug( "readPermissionOps object name [" + pOp.getObjName() + "] operation name ["
+ pOp.getOpName() + "] objectId [" + pOp.getObjId() + "] successful" );
}
}
}
catch ( SecurityException ex )
{
LOG.error( "readPermissionOps object name [" + pOp.getObjName() + "] operation name ["
+ pOp.getOpName() + "] objectId [" + pOp.getObjId() + "] caught SecurityException rc="
+ ex.getErrorId() + ", msg=" + ex.getMessage() + ex );
fail( ex.getMessage() );
}
}
public void testReadPermissionAttributeSets()
{
readPermissionAttributeSet( "RD-PA-SET TPASET1", PermTestData.TPA_SET_1_NAME, PermTestData.loadPermissionAttributes(PermTestData.PA_TPSASET1) );
Set<PermissionAttribute> paSetTwoPas = PermTestData.loadPermissionAttributes(PermTestData.PA_TPSASET2);
paSetTwoPas.addAll(PermTestData.loadPermissionAttributes(PermTestData.PA_TPSASET2_ADDITIONAL));
readPermissionAttributeSet( "RD-PA-SET TPASET2", PermTestData.TPA_SET_2_NAME, paSetTwoPas);
}
public static void readPermissionAttributeSet( String msg, String name, Set<PermissionAttribute> permAttributes )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
PermissionAttributeSet entity = reviewMgr.readPermAttributeSet(new PermissionAttributeSet(name));
assertNotNull(entity);
assertEquals(name, entity.getName());
assertEquals(PermTestData.TPA_SET_TYPE, entity.getType());
for(PermissionAttribute pa : permAttributes){
assertTrue(entity.getAttributes().contains(pa));
}
LOG.debug( "readPermissionAttributeSet name [" + name + "] successful" );
}
catch ( SecurityException ex )
{
LOG.error( "readPermissionAttributeSet name [" + name + "] caught SecurityException rc="
+ ex.getErrorId() + ", msg=" + ex.getMessage() + ex );
fail( ex.getMessage() );
}
}
public void testReadPASetFromPermission()
{
readPASetFromPermission( "RD-PASET-FROM-POP TOB_1 TOP_1", PermTestData.TPA_SET_1_NAME, "TOB1_1", PermTestData.OPS_TOP1[0] );
}
public static void readPASetFromPermission( String msg, String paSetName, String obj, String[] op )
{
LogUtil.logIt(msg);
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
Permission pop = PermTestData.getOp( obj, op );
Permission entity = reviewMgr.readPermission(pop);
assertTrue(paSetName, entity.getPaSets().contains(paSetName));
LOG.debug( "readPASetFromPermission name [" + paSetName + "] successful" );
}
catch ( SecurityException ex )
{
LOG.error( "readPASetFromPermission name [" + paSetName
+ "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testFindPermissionOps()
{
// public List<Permission> findPermissions(Permission permOp)
searchPermissionOps( "FND-PRM-OPS TOB1 OPS_TOP1_UPD",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OPS_TOP1_UPD[0] ) ), PermTestData.OBJS_TOB1,
PermTestData.OPS_TOP1_UPD );
searchPermissionOps( "FND-PRM-OPS TOB2 TOP2",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OPS_TOP2[0] ) ), PermTestData.OBJS_TOB2,
PermTestData.OPS_TOP2 );
searchPermissionOps( "FND-PRM-OPS TOB3 TOP3",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OPS_TOP3[0] ) ), PermTestData.OBJS_TOB3,
PermTestData.OPS_TOP3 );
}
/**
* @param msg
* @param srchValue
* @param pObjArray
*/
public static void searchPermissionOps( String msg, String srchValue, String[][] pObjArray, String[][] pOpArray )
{
LogUtil.logIt( msg );
Permission pOp;
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] obj : pObjArray )
{
for ( String[] op : pOpArray )
{
pOp = new Permission();
pOp.setObjName( PermTestData.getName( obj ) );
pOp.setOpName( srchValue );
List<Permission> ops = reviewMgr.findPermissions( pOp );
assertNotNull( ops );
assertTrue( CLS_NM + "searchPermissionOps srchValue [" + srchValue + "] list size check",
pOpArray.length == ops.size() );
int indx = ops.indexOf( new Permission( PermTestData.getName( obj ), PermTestData.getName( op ), PermTestData.getObjId( op ) ) );
if ( indx != -1 )
{
Permission entity = ops.get( indx );
assertNotNull( entity );
PermTestData.assertEquals( PermTestData.getName( obj ), entity, op );
LOG.debug( "searchPermissionOps objName [" + entity.getObjName()
+ "] operation name [" + entity.getOpName() + "] successful" );
}
else
{
msg = "searchPermissionOps srchValue [" + srchValue + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"searchPermissionOps srchValue [" + srchValue + "] caught SecurityException rc="
+ ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testReadPermissionObj()
{
// public Permission readPermission(Permission permOp)
readPermissionObjs( "RD-PRM-OBJS TOB1", PermTestData.OBJS_TOB1 );
readPermissionObjs( "RD-PRM-OBJS TOB2", PermTestData.OBJS_TOB2 );
readPermissionObjs( "RD-PRM-OBJS TOB3", PermTestData.OBJS_TOB3 );
readPermissionObjs( "RD-PRM-OBJS TOB4_UPD", PermTestData.OBJS_TOB4_UPD );
}
/**
* @param msg
* @param pArray
*/
public static void readPermissionObjs( String msg, String[][] pArray )
{
PermObj pObj = new PermObj();
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] objs : pArray )
{
pObj = new PermObj();
pObj.setObjName( PermTestData.getName( objs ) );
PermObj entity = reviewMgr.readPermObj( pObj );
assertNotNull( entity );
PermTestData.assertEquals( entity, objs );
LOG.debug( "readPermissionObjs object name [" + pObj.getObjName() + "] successful" );
}
}
catch ( SecurityException ex )
{
LOG.error( "readPermissionOps object name [" + pObj.getObjName()
+ "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage() + ex );
fail( ex.getMessage() );
}
}
public void testFindPermissionObjs()
{
// public List<Permission> findPermissions(Permission permOp)
searchPermissionObjs( "FND-PRM-OBJS TOB1",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OBJS_TOB1[0] ) ), PermTestData.OBJS_TOB1 );
searchPermissionObjs( "FND-PRM-OBJS TOB2",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OBJS_TOB2[0] ) ), PermTestData.OBJS_TOB2 );
searchPermissionObjs( "FND-PRM-OBJS TOB3",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OBJS_TOB3[0] ) ), PermTestData.OBJS_TOB3 );
searchPermissionObjs( "FND-PRM-OBJS TOB4_UPD",
TestUtils.getSrchValue( PermTestData.getName( PermTestData.OBJS_TOB4_UPD[0] ) ), PermTestData.OBJS_TOB4_UPD );
}
/**
* @param msg
* @param srchValue
* @param pArray
*/
public static void searchPermissionObjs( String msg, String srchValue, String[][] pArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<PermObj> objs = reviewMgr.findPermObjs( new PermObj( srchValue ) );
assertNotNull( objs );
assertTrue( CLS_NM + "searchPermissionObjs srchValue [" + srchValue + "] list size check",
pArray.length == objs.size() );
for ( String[] obj : pArray )
{
int indx = objs.indexOf( new PermObj( PermTestData.getName( obj ) ) );
if ( indx != -1 )
{
PermObj entity = objs.get( indx );
assertNotNull( entity );
PermTestData.assertEquals( entity, obj );
LOG.debug( "searchPermissionObjs [" + entity.getObjName() + "] successful" );
}
else
{
msg = "searchPermissionObjs srchValue [" + srchValue + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"searchPermissionObjs srchValue [" + srchValue + "] caught SecurityException rc="
+ ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testReadRole()
{
// public Role readRole(Role role)
readRoles( "RD-RLS TR1", RoleTestData.ROLES_TR1 );
readRoles( "RD-RLS TR2", RoleTestData.ROLES_TR2 );
readRoles( "RD-RLS TR3", RoleTestData.ROLES_TR3 );
readRoles( "RD-RLS TR4_UPD", RoleTestData.ROLES_TR4_UPD );
}
/**
* Determine if old fortress regression test cases are loaded in this directory and must be torn down.
*
* @param msg
* @param rArray
*/
public static boolean teardownRequired( String msg, String[][] rArray )
{
// default return is 'true':
boolean tearDown = true;
String methodName = ".teardownRequired";
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] rle : rArray )
{
Role entity = reviewMgr.readRole( new Role( RoleTestData.getName( rle ) ) );
RoleTestData.assertEquals( entity, rle );
}
// if we get to here it means that old test data must be removed from directory.
}
catch ( SecurityException ex )
{
// This is the expected when teardown is not required:
if ( ex.getErrorId() == GlobalErrIds.ROLE_NOT_FOUND )
{
// did not find old test data no need to teardown
tearDown = false;
}
else
{
// Something unexpected occurred here, Report as warning to the logger:
String warning = methodName + " caught SecurityException=" + ex.getMessage();
LOG.warn( warning );
// TODO: Determine if it would be better to throw a SecurityException here.
}
}
LOG.info( methodName + ":" + tearDown );
return tearDown;
}
/**
*
* @param msg
* @param rArray
*/
public static void readRoles( String msg, String[][] rArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] rle : rArray )
{
Role entity = reviewMgr.readRole( new Role( RoleTestData.getName( rle ) ) );
RoleTestData.assertEquals( entity, rle );
LOG.debug( "readRoles [" + entity.getName() + "] successful" );
}
}
catch ( SecurityException ex )
{
LOG.error( "readRoles caught SecurityException=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
/**
* RMT06
*
* @throws org.apache.directory.fortress.core.SecurityException
*/
public void testFindRoles()
{
// public List<Role> findRoles(String searchVal)
searchRoles( "SRCH-RLS TR1", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR1[0] ) ),
RoleTestData.ROLES_TR1 );
searchRoles( "SRCH-RLS TR2", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR2[0] ) ),
RoleTestData.ROLES_TR2 );
searchRoles( "SRCH-RLS TR3", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR3[0] ) ),
RoleTestData.ROLES_TR3 );
searchRoles( "SRCH-RLS TR4_UPD", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR4[0] ) ),
RoleTestData.ROLES_TR4_UPD );
}
/**
*
* @param msg
* @param srchValue
* @param rArray
*/
public static void searchRoles( String msg, String srchValue, String[][] rArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<Role> roles = reviewMgr.findRoles( srchValue );
assertNotNull( roles );
assertTrue( CLS_NM + "searchRoles list size check", rArray.length == roles.size() );
for ( String[] rle : rArray )
{
int indx = roles.indexOf( new Role( RoleTestData.getName( rle ) ) );
if ( indx != -1 )
{
Role entity = roles.get( indx );
assertNotNull( entity );
RoleTestData.assertEquals( entity, rle );
LOG.debug( "searchRoles [" + entity.getName() + "] successful" );
}
else
{
msg = "searchRoles srchValue [" + srchValue + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"searchRoles srchValue [" + srchValue + "] caught SecurityException rc=" + ex.getErrorId()
+ ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testReadUser()
{
// public User readUser(User user)
readUsers( "READ-USRS TU1_UPD", UserTestData.USERS_TU1_UPD );
readUsers( "READ-USRS TU3", UserTestData.USERS_TU3 );
readUsers( "READ-USRS TU4", UserTestData.USERS_TU4 );
readUsers( "READ-USRS TU5", UserTestData.USERS_TU5 );
readUsers( "READ-USRS TU8", UserTestData.USERS_TU8_SSD );
readUsers( "READ-USRS TU9", UserTestData.USERS_TU9_SSD_HIER );
readUsers( "READ-USRS TU10", UserTestData.USERS_TU10_SSD_HIER );
readUsers( "READ-USRS TU11", UserTestData.USERS_TU11_SSD_HIER );
readUsers( "READ-USRS TU12", UserTestData.USERS_TU12_DSD );
readUsers( "READ-USRS TU13", UserTestData.USERS_TU13_DSD_HIER );
readUsers( "READ-USRS TU14", UserTestData.USERS_TU14_DSD_HIER );
readUsers( "READ-USRS TU15", UserTestData.USERS_TU15_DSD_HIER );
}
/**
*
* @param msg
* @param uArray
*/
public static void readUsers( String msg, String[][] uArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] usr : uArray )
{
User entity = reviewMgr.readUser( new User( UserTestData.getUserId( usr ) ) );
assertNotNull( entity );
UserTestData.assertEquals( entity, usr );
LOG.debug( "readUsers userId [" + entity.getUserId() + "] successful" );
}
}
catch ( SecurityException ex )
{
LOG.error(
"readUsers caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testFindUsers()
{
// public List<User> findUsers(User user)
searchUsers( "SRCH-USRS TU1_UPD",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU1[0] ) ), UserTestData.USERS_TU1_UPD );
searchUsers( "SRCH-USRS TU3", TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU3[0] ) ),
UserTestData.USERS_TU3 );
searchUsers( "SRCH-USRS TU4", TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU4[0] ) ),
UserTestData.USERS_TU4 );
searchUsers( "SRCH-USRS TU5", TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU5[0] ) ),
UserTestData.USERS_TU5 );
searchUsers( "SRCH-USRS TU8",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU8_SSD[0] ) ),
UserTestData.USERS_TU8_SSD );
searchUsers( "SRCH-USRS TU9",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU9_SSD_HIER[0] ) ),
UserTestData.USERS_TU9_SSD_HIER );
searchUsers( "SRCH-USRS TU10",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU10_SSD_HIER[0] ) ),
UserTestData.USERS_TU10_SSD_HIER );
searchUsers( "SRCH-USRS TU11",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU11_SSD_HIER[0] ) ),
UserTestData.USERS_TU11_SSD_HIER );
searchUsers( "SRCH-USRS TU12",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU12_DSD[0] ) ),
UserTestData.USERS_TU12_DSD );
searchUsers( "SRCH-USRS TU13",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU13_DSD_HIER[0] ) ),
UserTestData.USERS_TU13_DSD_HIER );
searchUsers( "SRCH-USRS TU14",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU14_DSD_HIER[0] ) ),
UserTestData.USERS_TU14_DSD_HIER );
searchUsers( "SRCH-USRS TU15",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU15_DSD_HIER[0] ) ),
UserTestData.USERS_TU15_DSD_HIER );
}
/**
*
* @param msg
* @param srchValue
* @param uArray
*/
public static void searchUsers( String msg, String srchValue, String[][] uArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<User> users = reviewMgr.findUsers( new User( srchValue ) );
assertNotNull( users );
assertTrue( "searchUsers list size check", uArray.length == users.size() );
for ( String[] usr : uArray )
{
int indx = users.indexOf( new User( UserTestData.getUserId( usr ) ) );
if ( indx != -1 )
{
User entity = users.get( indx );
assertNotNull( entity );
UserTestData.assertEquals( entity, usr );
LOG.debug( "searchUsers userId [" + entity.getUserId() + "] successful" );
}
else
{
msg = "searchUsers srchValue [" + srchValue + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"searchUsers srchValue [" + srchValue + "] caught SecurityException rc=" + ex.getErrorId()
+ ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testAssignedRoles()
{
// public List<UserRole> assignedRoles(User userId)
assignedRoles( "ASGN-RLS TU1_UPD TR1", UserTestData.USERS_TU1_UPD, RoleTestData.ROLES_TR1 );
//assignedRoles("ASGN-RLS TU3 TR2", UserTestData.USERS_TU3, RoleTestData.ROLES_TR2);
assignedRoles( "ASGN-RLS TU4 TR2", UserTestData.USERS_TU4, RoleTestData.ROLES_TR2 );
assignedRoles( "ASGN-RLS TU3 TR3", UserTestData.USERS_TU3, RoleTestData.ROLES_TR3 );
}
/**
* @param msg
* @param uArray
* @param rArray
*/
public static void assignedRoles( String msg, String[][] uArray, String[][] rArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] usr : uArray )
{
User user = reviewMgr.readUser( new User( UserTestData.getUserId( usr ) ) );
assertNotNull( user );
List<UserRole> uRoles = reviewMgr.assignedRoles( user );
assertTrue( CLS_NM + "assignedRoles list size check", rArray.length == uRoles.size() );
for ( String[] url : rArray )
{
int indx = uRoles.indexOf( RoleTestData.getUserRole( UserTestData.getUserId( usr ), url ) );
if ( indx != -1 )
{
UserRole uRole = uRoles.get( indx );
assertNotNull( uRole );
RoleTestData.assertEquals( UserTestData.getUserId( usr ), uRole, url );
LOG.debug( "assignedRoles userId [" + uRole.getUserId() + "] role ["
+ uRole.getName() + "] successful" );
}
else
{
msg = "assignedRoles userId [" + user.getUserId() + "] role ["
+ RoleTestData.getName( url ) + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"assignedRoles caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
/**
*
*/
public void testAuthorizedRoles()
{
// public Set<String> authorizedRoles(User user)
authorizedRoles( "AUTHZ-RLS TU18 TR6 DESC", UserTestData.USERS_TU18U_TR6_DESC );
authorizedRoles( "AUTHZ-RLS TU19 TR7 ASC", UserTestData.USERS_TU19U_TR7_ASC );
}
/**
*
* @param msg
* @param uArray
*/
public static void authorizedRoles( String msg, String[][] uArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] usr : uArray )
{
User user = reviewMgr.readUser( new User( UserTestData.getUserId( usr ) ) );
assertNotNull( user );
// Get the authorized roles for this user:
Collection<String> authZRoles = UserTestData.getAuthorizedRoles( usr );
// If there are any assigned roles, add them to list of authorized.
Set<String> asgnRoles = UserTestData.getAssignedRoles( usr );
assertNotNull( asgnRoles );
assertTrue( asgnRoles.size() > 0 );
for ( String asgnRole : asgnRoles )
{
authZRoles.add( asgnRole );
}
// Retrieve actual roles authorized to User according to LDAP:
Set<String> actualRoles = reviewMgr.authorizedRoles( user );
assertNotNull( actualRoles );
assertTrue( actualRoles.size() > 0 );
// The two list sizes better match or fail the test case.
assertTrue( CLS_NM + "authorizedRoles list size test case", authZRoles.size() == actualRoles.size() );
// For each authorized role found in User test data, check to see if it was found in LDAP for User. If not fail the test case.
for ( String roleName : authZRoles )
{
assertTrue( CLS_NM + ".authorizedRoles userId [" + user.getUserId() + "] role [" + roleName
+ "] not found", actualRoles.contains( roleName ) );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"assignedRoles caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
public void testAuthorizedUsers()
{
// public List<User> authorizedUsers(Role role)
authorizedUsers( "ATHZ-USRS TR1 TU1_UPD", RoleTestData.ROLES_TR1, UserTestData.USERS_TU1_UPD );
authorizedUsers( "ATHZ-USRS TR2 TU4", RoleTestData.ROLES_TR2, UserTestData.USERS_TU4 );
authorizedUsers( "ATHZ-USRS TR3 TU3", RoleTestData.ROLES_TR3, UserTestData.USERS_TU3 );
}
/**
* @param msg
* @param rArray
* @param uArray
*/
public static void authorizedUsers( String msg, String[][] rArray, String[][] uArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] rle : rArray )
{
List<User> users = reviewMgr.authorizedUsers( new Role( RoleTestData.getName( rle ) ) );
assertNotNull( users );
//LOG.debug("authorizedUsers list source size=" + uArray.length + " ldap size=" + users.size());
assertTrue( CLS_NM + "authorizedUsers list size check", uArray.length == users.size() );
for ( String[] usr : uArray )
{
int indx = users.indexOf( UserTestData.getUser( usr ) );
if ( indx != -1 )
{
User user = users.get( indx );
assertNotNull( user );
UserTestData.assertEquals( user, usr );
LOG.debug( "authorizedUsers role name [" + RoleTestData.getName( rle ) + "] userId ["
+ user.getUserId() + "] successful" );
}
else
{
msg = "authorizedUsers role [" + RoleTestData.getName( rle ) + "] user ["
+ UserTestData.getUserId( usr ) + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"authorizedUsers caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
public void testAuthorizedUsersHier()
{
// public List<User> authorizedUsers(Role role)
authorizedUsersHier( "ATHZ-USRS-HIER TR6 TU18", RoleTestData.TR6_AUTHORIZED_USERS );
authorizedUsersHier( "ATHZ-USRS-HIER TR7 TU19", RoleTestData.TR7_AUTHORIZED_USERS );
}
/**
*
* @param msg
* @param roleMap
*/
public static void authorizedUsersHier( String msg, Map roleMap )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
// create iterator based on rolemap:
// iterate over every role entry found in map:
for ( Object o : roleMap.entrySet() )
{
Map.Entry pairs = ( Map.Entry ) o;
String roleName = ( String ) pairs.getKey();
String szValidUsers = ( String ) pairs.getValue();
Set<String> userSet = TestUtils.getSets( szValidUsers );
assertNotNull( userSet );
assertTrue( userSet.size() > 0 );
List<User> actualUsers = reviewMgr.authorizedUsers( new Role( roleName ) );
assertNotNull( actualUsers );
assertTrue( actualUsers.size() > 0 );
// Ensure the two list sizes match or fail the test case.
assertTrue( CLS_NM + "authorizedUsersHier failed list size test case",
userSet.size() == actualUsers.size() );
// for each valid user expected, ensure it actually pulled from API:
for ( String userId : userSet )
{
User validUser = new User( userId );
assertTrue( CLS_NM + ".authorizedUsersHier failed authorizedUsers test, role [" + roleName
+ "] does not have user [" + validUser.getUserId() + "] as authorized",
actualUsers.contains( validUser ) );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"authorizedUsersHier caught SecurityException rc=" + ex.getErrorId() + ", msg="
+ ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testRolePermissions()
{
// public List<Permission> rolePermissions(Role role)
rolePermissions( "ATHRZ-RLE-PRMS TR1 TOB1 TOP1_UPD", RoleTestData.ROLES_TR1, PermTestData.OBJS_TOB1,
PermTestData.OPS_TOP1_UPD );
}
/**
* @param msg
* @param rArray
* @param pObjArray
* @param pOpArray
*/
public static void rolePermissions( String msg, String[][] rArray, String[][] pObjArray, String[][] pOpArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] rle : rArray )
{
Role role = RoleTestData.getRole( rle );
List<Permission> perms = reviewMgr.rolePermissions( role );
assertNotNull( perms );
assertTrue( CLS_NM + "rolePermissions list size check",
pOpArray.length * pObjArray.length == perms.size() );
for ( String[] obj : pObjArray )
{
for ( String[] op : pOpArray )
{
int indx = perms.indexOf( new Permission( PermTestData.getName( obj ), PermTestData.getName( op ), PermTestData.getObjId( op ) ) );
if ( indx != -1 )
{
Permission pOp = perms.get( indx );
assertNotNull( pOp );
PermTestData.assertEquals( PermTestData.getName( obj ), pOp, op );
LOG.debug( "rolePermissions role name [" + role.getName() + "] perm objName ["
+ PermTestData.getName( obj ) + "] operationName [" + PermTestData.getName( op )
+ "] successful" );
}
else
{
msg = "rolePermissions role name [" + role.getName() + "] perm objName ["
+ PermTestData.getName( obj ) + "] operationName [" + PermTestData.getName( op )
+ "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"rolePermissions caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
public void testPermissionRoles()
{
// public List<Role> permissionRoles(Permission perm)
permissionRoles( "PRM-RLS TOB1 TOP1 TR1", PermTestData.OBJS_TOB1, PermTestData.OPS_TOP1, RoleTestData.ROLES_TR1 );
}
/**
* @param msg
* @param pObjArray
* @param pOpArray
* @param rArray
*/
public static void permissionRoles( String msg, String[][] pObjArray, String[][] pOpArray, String[][] rArray )
{
LogUtil.logIt( msg );
Permission pOp;
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] obj : pObjArray )
{
for ( String[] op : pOpArray )
{
pOp = new Permission();
pOp.setObjName( PermTestData.getName( obj ) );
pOp.setOpName( PermTestData.getName( op ) );
pOp.setObjId( PermTestData.getObjId( op ) );
List<String> roles = reviewMgr.permissionRoles( pOp );
assertNotNull( roles );
assertTrue( CLS_NM + "permissionRoles permission object [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId() + "]",
rArray.length == roles.size() );
for ( String[] rle : rArray )
{
int indx = roles.indexOf( RoleTestData.getName( rle ) );
if ( indx != -1 )
{
String roleNm = roles.get( indx );
assertEquals( CLS_NM + ".permissionRoles failed compare role name",
RoleTestData.getName( rle ), roleNm );
LOG.debug( ".permissionRoles permission objName [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId()
+ "] roleNm [" + roleNm + "] successful" );
}
else
{
msg = "permissionRoles permission objName [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId()
+ "] role [" + RoleTestData.getName( rle ) + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"permissionRoles caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
/**
*
*/
public void testAuthorizedPermissionRoles()
{
// public Set<String> authorizedPermissionRoles(Permission perm)
authorizedPermissionRoles( "AUTHZ PRM-RLES TOB6 TOP5 TR5B", PermTestData.OBJS_TOB6, PermTestData.OPS_TOP5,
RoleTestData.ROLES_TR5B );
}
/**
*
* @param msg
* @param pObjArray
* @param pOpArray
* @param rArray
*/
public static void authorizedPermissionRoles( String msg, String[][] pObjArray, String[][] pOpArray,
String[][] rArray )
{
LogUtil.logIt( msg );
Permission pOp;
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] obj : pObjArray )
{
int i = 0;
for ( String[] op : pOpArray )
{
pOp = new Permission();
pOp.setObjName( PermTestData.getName( obj ) );
pOp.setOpName( PermTestData.getName( op ) );
pOp.setObjId( PermTestData.getObjId( op ) );
Set<String> roles = reviewMgr.authorizedPermissionRoles( pOp );
assertNotNull( roles );
int expectedAuthZedRoles = i + 1;
assertTrue( CLS_NM + "authorizedPermissionRoles permission object [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId() + "]",
expectedAuthZedRoles == roles.size() );
int j = 1;
for ( String[] rle : rArray )
{
String roleName = RoleTestData.getName( rle );
if ( j++ <= expectedAuthZedRoles )
{
assertTrue(
CLS_NM + "authorizedPermissionRoles roleName [" + roleName
+ "] should be authorized for operationName [" + pOp.getOpName() + "] objectId ["
+ pOp.getObjId() + "]", roles.contains( roleName ) );
}
else
{
assertTrue( CLS_NM + "authorizedPermissionRoles roleName [" + roleName
+ "] should not be authorized for operationName [" + pOp.getOpName() + "] objectId ["
+ pOp.getObjId() + "]", !roles.contains( roleName ) );
}
}
i++;
}
}
}
catch ( SecurityException ex )
{
LOG.error( "authorizedPermissionRoles caught SecurityException rc=" + ex.getErrorId() + ", msg="
+ ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testPermissionUsers()
{
// public List<User> permissionUsers(Permission perm)
permissionUsers( "PRM-USRS TOB1 TOP1 TU1_UPD", PermTestData.OBJS_TOB1, PermTestData.OPS_TOP1,
UserTestData.USERS_TU1_UPD );
}
/**
* @param msg
* @param pObjArray
* @param pOpArray
* @param uArray
*/
public static void permissionUsers( String msg, String[][] pObjArray, String[][] pOpArray, String[][] uArray )
{
LogUtil.logIt( msg );
Permission pOp;
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] obj : pObjArray )
{
for ( String[] op : pOpArray )
{
pOp = new Permission();
pOp.setObjName( PermTestData.getName( obj ) );
pOp.setOpName( PermTestData.getName( op ) );
pOp.setObjId( PermTestData.getObjId( op ) );
List<String> users = reviewMgr.permissionUsers( pOp );
assertNotNull( users );
assertTrue( CLS_NM + "permissionUsers permission object [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId() + "]",
uArray.length == users.size() );
for ( String[] usr : uArray )
{
int indx = users.indexOf( RoleTestData.getName( usr ) );
if ( indx != -1 )
{
String userId = users.get( indx );
assertEquals( CLS_NM + ".permissionUsers failed compare userId",
UserTestData.getUserId( usr ), userId );
LOG.debug( "permissionUsers permission objName [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId()
+ "] userId [" + userId + "] successful" );
}
else
{
msg = "permissionUsers permission objName [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId()
+ "] userId [" + UserTestData.getUserId( usr ) + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"permissionUsers caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
/**
*
*/
public void testAuthorizedPermissionUsers()
{
// public Set<String> authorizedPermissionUsers(Permission perm)
authorizedPermissionUsers( "AUTHZ PRM-USRS TOB6 TOP5 TU20", PermTestData.OBJS_TOB6, PermTestData.OPS_TOP5,
UserTestData.USERS_TU20U_TR5B );
}
/**
*
* @param msg
* @param pObjArray
* @param pOpArray
* @param uArray
*/
public static void authorizedPermissionUsers( String msg, String[][] pObjArray, String[][] pOpArray,
String[][] uArray )
{
LogUtil.logIt( msg );
Permission pOp;
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] obj : pObjArray )
{
int i = 0;
for ( String[] op : pOpArray )
{
pOp = new Permission();
pOp.setObjName( PermTestData.getName( obj ) );
pOp.setOpName( PermTestData.getName( op ) );
pOp.setObjId( PermTestData.getObjId( op ) );
Set<String> users = reviewMgr.authorizedPermissionUsers( pOp );
assertNotNull( users );
int expectedAuthZedUsers = i + 1;
assertTrue( CLS_NM + "authorizedPermissionUsers permission object [" + pOp.getObjName()
+ "] operationName [" + pOp.getOpName() + "] objectId [" + pOp.getObjId() + "]",
expectedAuthZedUsers == users.size() );
int j = 1;
for ( String[] usr : uArray )
{
String userId = UserTestData.getUserId( usr );
if ( j++ <= expectedAuthZedUsers )
{
assertTrue(
CLS_NM + "authorizedPermissionUsers userId [" + userId
+ "] should be authorized for operationName [" + pOp.getOpName() + "] objectId ["
+ pOp.getObjId() + "]", users.contains( userId ) );
}
else
{
assertTrue( CLS_NM + "authorizedPermissionUsers userId [" + userId
+ "] should not be authorized for operationName [" + pOp.getOpName() + "] objectId ["
+ pOp.getObjId() + "]", !users.contains( userId ) );
}
}
i++;
}
}
}
catch ( SecurityException ex )
{
LOG.error( "authorizedPermissionUsers caught SecurityException rc=" + ex.getErrorId() + ", msg="
+ ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testUserPermissions()
{
// public List <Permission> userPermissions(User user)
userPermissions( "USR-PRMS TU1_UPD TOB1 TOP1_UPD", UserTestData.USERS_TU1_UPD, PermTestData.OBJS_TOB1,
PermTestData.OPS_TOP1_UPD );
userPermissions( "USR-PRMS TU3 TOB3 TOP3", UserTestData.USERS_TU3, PermTestData.OBJS_TOB3,
PermTestData.OPS_TOP3 );
userPermissions( "USR-PRMS TU4 TOB2 TOP2", UserTestData.USERS_TU4, PermTestData.OBJS_TOB2,
PermTestData.OPS_TOP2 );
}
/**
* @param msg
* @param uArray
* @param pObjArray
* @param pOpArray
*/
public static void userPermissions( String msg, String[][] uArray, String[][] pObjArray, String[][] pOpArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] usr : uArray )
{
User user = UserTestData.getUser( usr );
List<Permission> perms = reviewMgr.userPermissions( user );
assertNotNull( perms );
assertTrue( CLS_NM + "userPermissions list size check",
pOpArray.length * pObjArray.length == perms.size() );
for ( String[] obj : pObjArray )
{
for ( String[] op : pOpArray )
{
int indx = perms.indexOf( new Permission( PermTestData.getName( obj ), PermTestData.getName(
op ), PermTestData.getObjId( op ) ) );
if ( indx != -1 )
{
Permission pOp = perms.get( indx );
assertNotNull( pOp );
PermTestData.assertEquals( PermTestData.getName( obj ), pOp, op );
LOG.debug( "userPermissions userId [" + user.getUserId() + "] perm objName ["
+ PermTestData.getName( obj ) + "] operationName [" + PermTestData.getName( op )
+ "] successful" );
}
else
{
msg = "userPermissions userId [" + user.getUserId() + "] perm objName ["
+ PermTestData.getName( obj ) + "] operationName [" + PermTestData.getName( op )
+ "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"userPermissions caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
public void testFindRoleNms()
{
// public List<String> findRoles(String searchVal, int limit)
searchRolesNms( "SRCH-RLNMS TR1", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR1[0] ) ),
RoleTestData.ROLES_TR1 );
searchRolesNms( "SRCH-RLNMS TR2", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR2[0] ) ),
RoleTestData.ROLES_TR2 );
searchRolesNms( "SRCH-RLNMS TR3", TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR3[0] ) ),
RoleTestData.ROLES_TR3 );
searchRolesNms( "SRCH-RLNMS TR4_UPD",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.ROLES_TR4[0] ) ), RoleTestData.ROLES_TR4_UPD );
}
/**
*
* @param msg
* @param srchValue
* @param rArray
*/
public static void searchRolesNms( String msg, String srchValue, String[][] rArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<String> roles = reviewMgr.findRoles( srchValue, rArray.length );
assertNotNull( roles );
assertTrue( CLS_NM + "searchRolesNms list size check", rArray.length == roles.size() );
for ( String[] rle : rArray )
{
int indx = roles.indexOf( RoleTestData.getName( rle ) );
if ( indx != -1 )
{
String roleNm = roles.get( indx );
assertNotNull( roleNm );
assertEquals( CLS_NM + ".searchRolesNms failed compare role name", RoleTestData.getName( rle ),
roleNm );
}
else
{
msg = "searchRolesNms srchValue [" + srchValue + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"searchRolesNms srchValue [" + srchValue + "] caught SecurityException rc=" + ex.getErrorId()
+ ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testFindUserIds()
{
// public List<String> findUsers(User user, int limit)
searchUserIds( "SRCH-USRIDS TU1_UPD",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU1[0] ) ), UserTestData.USERS_TU1_UPD );
searchUserIds( "SRCH-USRIDS TU3",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU3[0] ) ), UserTestData.USERS_TU3 );
searchUserIds( "SRCH-USRIDS TU4",
TestUtils.getSrchValue( UserTestData.getUserId( UserTestData.USERS_TU4[0] ) ), UserTestData.USERS_TU4 );
}
/**
*
* @param msg
* @param srchValue
* @param uArray
*/
public static void searchUserIds( String msg, String srchValue, String[][] uArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<String> users = reviewMgr.findUsers( new User( srchValue ), uArray.length );
assertNotNull( users );
assertTrue( CLS_NM + "searchUserIds list size check", uArray.length == users.size() );
for ( String[] usr : uArray )
{
int indx = users.indexOf( UserTestData.getUserId( usr ) );
if ( indx != -1 )
{
String userId = users.get( indx );
assertNotNull( userId );
assertEquals( CLS_NM + ".searchUserIds failed compare user userId", UserTestData.getUserId( usr )
.toUpperCase(), userId.toUpperCase() );
}
else
{
msg = "searchUserIds srchValue [" + srchValue + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"searchUserIds srchValue [" + srchValue + "] caught SecurityException rc=" + ex.getErrorId()
+ ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testAuthorizedUserIds()
{
// public List<String> authorizedUsers(Role role, int limit)
assignedUserIds( "ATHZ-USRS TR1 TU1_UPD", RoleTestData.ROLES_TR1, UserTestData.USERS_TU1_UPD );
assignedUserIds( "ATHZ-USRS TR2 TU4", RoleTestData.ROLES_TR2, UserTestData.USERS_TU4 );
assignedUserIds( "ATHZ-USRS TR3 TU3", RoleTestData.ROLES_TR3, UserTestData.USERS_TU3 );
}
/**
* @param msg
* @param rArray
* @param uArray
*/
public static void assignedUserIds( String msg, String[][] rArray, String[][] uArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] rle : rArray )
{
List<String> users = reviewMgr.assignedUsers( new Role( RoleTestData.getName( rle ) ), uArray.length );
assertNotNull( users );
assertTrue( CLS_NM + ".assignedUserIds list size check", uArray.length == users.size() );
for ( String[] usr : uArray )
{
users.indexOf( UserTestData.getUserId( usr ) );
// todo - figure out how to compare userid dns with userids:
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"assignedUserIds caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
public void testAssignedRoleNms()
{
// public List<String> assignedRoles(String userId)
assignedRoleNms( "ASGN-RLS TU1_UPD TR1", UserTestData.USERS_TU1_UPD, RoleTestData.ROLES_TR1 );
//assignedRoles("ASGN-RLS TU3 TR2", UserTestData.USERS_TU3, RoleTestData.ROLES_TR2);
assignedRoleNms( "ASGN-RLS TU4 TR2", UserTestData.USERS_TU4, RoleTestData.ROLES_TR2 );
assignedRoleNms( "ASGN-RLS TU3 TR3", UserTestData.USERS_TU3, RoleTestData.ROLES_TR3 );
}
/**
* @param msg
* @param uArray
* @param rArray
*/
public static void assignedRoleNms( String msg, String[][] uArray, String[][] rArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
for ( String[] usr : uArray )
{
List<String> uRoles = reviewMgr.assignedRoles( UserTestData.getUserId( usr ) );
assertNotNull( uRoles );
assertTrue( CLS_NM + "assignedRoleNms list size check", rArray.length == uRoles.size() );
for ( String[] url : rArray )
{
int indx = uRoles.indexOf( RoleTestData.getName( url ) );
if ( indx != -1 )
{
String uRole = uRoles.get( indx );
assertNotNull( uRole );
assertEquals( CLS_NM + ".assignedRoleNms failed compare role name",
RoleTestData.getName( url ), uRole );
}
else
{
msg = "assignedRoleNms userId [" + UserTestData.getUserId( usr ) + "] role ["
+ RoleTestData.getName( url ) + "] failed list search";
LogUtil.logIt( msg );
fail( msg );
}
}
}
}
catch ( SecurityException ex )
{
LOG.error(
"assignedRoleNms caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(),
ex );
fail( ex.getMessage() );
}
}
public void testFindSsdSets()
{
searchSsdSets(
"SRCH-SSD T1",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.SSD_T1[0] ),
RoleTestData.getName( RoleTestData.SSD_T1[0] ).length() - 1 ), RoleTestData.SSD_T1 );
searchSsdSets(
"SRCH-SSD T4",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.SSD_T4[0] ),
RoleTestData.getName( RoleTestData.SSD_T4[0] ).length() - 1 ), RoleTestData.SSD_T4 );
searchSsdSets(
"SRCH-SSD T5",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.SSD_T5[0] ),
RoleTestData.getName( RoleTestData.SSD_T5[0] ).length() - 1 ), RoleTestData.SSD_T5 );
searchSsdSets(
"SRCH-SSD T6",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.SSD_T6[0] ),
RoleTestData.getName( RoleTestData.SSD_T6[0] ).length() - 1 ), RoleTestData.SSD_T6 );
}
/**
*
* @param msg
* @param srchValue
* @param sArray
*/
public static void searchSsdSets( String msg, String srchValue, String[][] sArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
SDSet sdSet = new SDSet();
sdSet.setName( srchValue );
List<SDSet> sdSetList = reviewMgr.ssdSets( sdSet );
assertNotNull( sdSetList );
}
catch ( SecurityException ex )
{
LOG.error(
"searchRoles searchSsdSets [" + srchValue + "] caught SecurityException rc="
+ ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testFindDsdSets()
{
searchDsdSets(
"SRCH-DSD T1",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.DSD_T1[0] ),
RoleTestData.getName( RoleTestData.DSD_T1[0] ).length() - 1 ), RoleTestData.DSD_T1 );
searchDsdSets(
"SRCH-DSD T4",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.DSD_T4[0] ),
RoleTestData.getName( RoleTestData.DSD_T4[0] ).length() - 1 ), RoleTestData.DSD_T4 );
searchDsdSets(
"SRCH-DSD T5",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.DSD_T5[0] ),
RoleTestData.getName( RoleTestData.DSD_T5[0] ).length() - 1 ), RoleTestData.DSD_T5 );
searchDsdSets(
"SRCH-DSD T6",
TestUtils.getSrchValue( RoleTestData.getName( RoleTestData.DSD_T6[0] ),
RoleTestData.getName( RoleTestData.DSD_T6[0] ).length() - 1 ), RoleTestData.DSD_T6 );
}
/**
*
* @param msg
* @param srchValue
* @param sArray
*/
public static void searchDsdSets( String msg, String srchValue, String[][] sArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
SDSet sdSet = new SDSet();
sdSet.setName( srchValue );
List<SDSet> sdSetList = reviewMgr.ssdSets( sdSet );
assertNotNull( sdSetList );
}
catch ( SecurityException ex )
{
LOG.error(
"searchRoles searchDsdSets [" + srchValue + "] caught SecurityException rc="
+ ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testReadUserRoleConstraint()
{
readUserRoleConstraint( "RD-URC TU1 TR1", UserTestData.USERS_TU1[0], RoleTestData.ROLES_TR1[1], URATestData
.getRC( URATestData.URC_T1 ) );
}
public static void readUserRoleConstraint( String msg, String[] usr, String[] rle, RoleConstraint rc )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
User user = UserTestData.getUser( usr );
Role role = RoleTestData.getRole( rle );
List<UserRole> urs = reviewMgr.assignedRoles(user);
boolean uraFound = false;
boolean urcFound = false;
for(UserRole ur : urs){
if(ur.getName().equals(role.getName())){
uraFound = true;
List<RoleConstraint> rcs = ur.getRoleConstraints();
for(RoleConstraint r : rcs){
if(r.getKey().equals(rc.getKey())){
urcFound = true;
assertEquals(rc.getType(), r.getType());
assertEquals(rc.getValue(), r.getValue());
assertNotNull( r.getId() );
}
}
}
}
if(!uraFound){
fail("User Role Assignment Not Found");
}
if(!urcFound){
fail("User Role Constraint Not Found");
}
LOG.debug( "readUserRoleConstraint value [" + rc.getValue() + "] successful" );
}
catch ( SecurityException ex )
{
LOG.error( "readUserRoleConstraint value [" + rc.getValue()
+ "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testAssignedUserRoleConstraints()
{
assignUserRoleConstraints( "ASSGN-USER-ROLE-CONSTRAINTS TR18 ABAC", RoleTestData.ROLE_CONSTRAINTS_TR18_ABAC );
assignUserRoleConstraintsKey( "ASSGN-USER-ROLE-CONSTRAINTS WKEY TR18 ABAC", RoleTestData.ROLE_CONSTRAINTS_TR18_ABAC );
}
private void assignUserRoleConstraints( String msg, String[][] urArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = ReviewMgrImplTest.getManagedReviewMgr();
for ( String[] urConstraint : urArray )
{
UserRole uRole = RoleTestData.getUserRoleConstraintAbac( urConstraint );
RoleConstraint constraint = uRole.getConstraints().get( 0 );
List<User> users = reviewMgr.assignedUsers( new Role( uRole.getName() ), constraint );
assertTrue( users.size() > 0 );
}
}
catch ( SecurityException ex )
{
LOG.error(
"assignUserRoleConstraints caught SecurityException rc=" + ex.getErrorId() + ", msg="
+ ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
private void assignUserRoleConstraintsKey( String msg, String[][] urArray )
{
LogUtil.logIt( msg );
try
{
ReviewMgr reviewMgr = ReviewMgrImplTest.getManagedReviewMgr();
for ( String[] urConstraint : urArray )
{
UserRole uRole = RoleTestData.getUserRoleConstraintAbac( urConstraint );
RoleConstraint constraint = uRole.getConstraints().get( 0 );
List<UserRole> uRoles = reviewMgr.assignedUsers( new Role( uRole.getName() ), RoleConstraint.RCType.USER, constraint.getKey());
assertTrue( "curly, moe, larry", uRoles.size() == 3 );
}
}
catch ( SecurityException ex )
{
LOG.error(
"assignUserRoleConstraintsKey caught SecurityException rc=" + ex.getErrorId() + ", msg="
+ ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testFindRoleConstraints()
{
findRoleConstraints( "SRCH-RCS TU1 TR1", UserTestData.USERS_TU1[0][0], PermTestData.getOp("TOB1_1", PermTestData.OPS_TOP1_UPD[0]), URATestData.getRC(URATestData.URC_T1).getType() );
findUserRoleWithConstraints( "SRCH-RCS TR1", RoleTestData.ROLES_TR1[1][0], URATestData.getRC( URATestData.URC_T1 ).getType(), URATestData.getRC( URATestData.URC_T1 ).getKey() );
findUserRoleWithConstraints( "SRCH-RCS TR18 ABAC", RoleTestData.ROLES_ABAC_WASHERS[0][0], RoleConstraint.RCType.USER, RoleTestData.ROLE_CONSTRAINTS_TR18_ABAC[0][2] );
findUserRoleWithConstraints( "SRCH-RCS TR18 ABAC", RoleTestData.ROLES_ABAC_TELLERS[0][0], RoleConstraint.RCType.USER, RoleTestData.ROLE_CONSTRAINTS_TR18_ABAC[0][2] );
}
public static void findUserRoleWithConstraints( String msg, String role, RoleConstraint.RCType rcType, String keyName )
{
LogUtil.logIt(msg);
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<UserRole> urs = reviewMgr.assignedUsers( new Role(role), rcType, keyName);
assertNotNull( "findUserRoleWithConstraints no results", urs );
assertTrue(urs.size() > 0);
assertTrue(urs.get(0).getRoleConstraints().size() > 0);
LOG.debug( "findUserRoleWithConstraints paSetName [" + keyName + "] successful" );
}
catch ( SecurityException ex )
{
LOG.error( "findUserRoleWithConstraints paSetName [" + keyName
+ "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public static void findRoleConstraints( String msg, String usr, Permission permission, RoleConstraint.RCType rcType )
{
LogUtil.logIt(msg);
try
{
ReviewMgr reviewMgr = getManagedReviewMgr();
List<RoleConstraint> rcs = reviewMgr.findRoleConstraints(new User(usr), permission, rcType);
assertTrue("no constraints found for user:" + usr, rcs.size() > 0);
assertTrue("invalid constraint type", rcs.get(0).getType().equals( rcType ) );
LOG.debug( "findRoleConstraints permission [" + permission.getObjName() + "." + permission.getOpName() + "] successful" );
}
catch ( SecurityException ex )
{
LOG.error( "findRoleConstraints permission [" + permission.getObjName() + "." + permission.getOpName()
+ "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
public void testDeassignRoleWithRoleConstraint() throws SecurityException{
AdminMgr adminMgr = AdminMgrImplTest.getManagedAdminMgr();
adminMgr.deassignUser( new UserRole( UserTestData.USERS_TU1[0][0], RoleTestData.ROLES_TR1[1][0] ) );
ReviewMgr reviewMgr = getManagedReviewMgr();
reviewMgr.assignedRoles( new User( UserTestData.USERS_TU1[0][0] ) );
adminMgr.assignUser( new UserRole( UserTestData.USERS_TU1[0][0], RoleTestData.ROLES_TR1[1][0] ) );
}
/**
*
* @return
* @throws org.apache.directory.fortress.core.SecurityException
*/
public static ReviewMgr getManagedReviewMgr() throws SecurityException
{
if ( FortressJUnitTest.isAdminEnabled() && adminSess == null )
{
adminSess = DelegatedMgrImplTest.createAdminSession();
}
return ReviewMgrFactory.createInstance( TestUtils.getContext(), adminSess );
}
}