blob: 63be5c97970f455285be25323647bc41d1313adb [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.ant;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import java.util.StringTokenizer;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.directory.fortress.core.AdminMgr;
import org.apache.directory.fortress.core.AdminMgrFactory;
import org.apache.directory.fortress.core.CfgException;
import org.apache.directory.fortress.core.ConfigMgr;
import org.apache.directory.fortress.core.ConfigMgrFactory;
import org.apache.directory.fortress.core.DelAdminMgr;
import org.apache.directory.fortress.core.DelAdminMgrFactory;
import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.GlobalIds;
import org.apache.directory.fortress.core.GroupMgr;
import org.apache.directory.fortress.core.GroupMgrFactory;
import org.apache.directory.fortress.core.PwPolicyMgr;
import org.apache.directory.fortress.core.PwPolicyMgrFactory;
import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.impl.OrganizationalUnitP;
import org.apache.directory.fortress.core.impl.SuffixP;
import org.apache.directory.fortress.core.model.*;
import org.apache.directory.fortress.core.util.PropUtil;
import org.apache.directory.fortress.core.util.ClassUtil;
import org.apache.directory.fortress.core.util.Config;
import org.apache.directory.fortress.core.util.Testable;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.input.InputHandler;
import org.apache.tools.ant.input.InputRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* This class implements Apache Ant custom task and is used to drive the Fortress Administrative APIs using XML files.
* The methods in this class are not intended to be callable by outside programs. The following APIs are supported:
* <ol>
* <li>{@link org.apache.directory.fortress.core.AdminMgr}</li>
* <li>{@link org.apache.directory.fortress.core.DelAdminMgr}</li>
* <li>{@link org.apache.directory.fortress.core.PwPolicyMgr}</li>
* <li>{@link ConfigMgr}</li>
* </ol>
* <p>
* using the custom Ant task that is implemented in this class. The format of the XML is flat and consists of entity
* names along with their attributes.
* <h3>
* This class will process xml formatted requests with the following tags:
* </h3>
* <pre>
* {@code
* <target name="all">
* <FortressAdmin>
* <adduser> ...</adduser>
* <deluser> ...</deluser>
* <adduserrole> ...</adduserrole>
* <deluserrole> ...</deluserrole>
* <addrole> ...</addrole>*
* <delrole> ...</delrole>
* <addroleinheritance>...</addroleinheritance>
* <delroleinheritance>...</delroleinheritance>
* <addsdset>STATIC or DYNAMIC</addsdset>
* <delsdset>STATIC or DYNAMIC</delsdset>
* <delpwpolicy> ...</delpwpolicy>
* <addpwpolicy> ...</addpwpolicy>
* <addpermobj> RBAC or ARBAC permission objects</addpermobj>
* <delpermobj> RBAC or ARBAC permission objects</delpermobj>
* <addpermop> RBAC or ARBAC permission operations</addpermop>
* <delpermop> RBAC or ARBAC permission operations</delpermop>
* <addpermgrant> RBAC or ARBAC permission grants </addpermgrant>
* <delpermgrant> RBAC or ARBAC permission revokes </delpermgrant>
* <addorgunit> User OUs or Perm OUs </addorgunit>
* <delorgunit> User OUs or Perm OUs </delorgunit>
* <adduserorgunitinheritance> ...</adduserorgunitinheritance>
* <deluserorgunitinheritance> ...</deluserorgunitinheritance>
* <addpermorgunitinheritance> ...</addpermorgunitinheritance>
* <delpermorgunitinheritance> ...</delpermorgunitinheritance>
* <adduser> ... </adduser>
* <deluser> ...</deluser>
* <addadminrole> ... </addadminrole>
* <deladminrole> ... </deladminrole>
* <addadminroleinheritance>...</addadminroleinheritance>
* <deladminroleinheritance>...</deladminroleinheritance>
* <adduseradminrole> ... </adduseradminrole>
* <deluseradminrole> ... </deluseradminrole>
* </FortressAdmin>
* </target>
* }
* </pre>
* <h3>Order of Precedence</h3>
* The order of operations in the XML does not effect the order or precedence which has been "hard-wired" by the
* processing order within this class.
* <ol>
* <li>
* Delete User Role Assignments {@link org.apache.directory.fortress.core.AdminMgr#deassignUser(
* org.apache.directory.fortress.core.model.UserRole)}
* </li>
* <li>Delete User AdminRole Assignments {@link DelAdminMgr#deassignUser(UserAdminRole)}</li>
* <li>
* Revoke Permission Assignments Delete{@link AdminMgr#revokePermission(
* org.apache.directory.fortress.core.model.Permission,
* org.apache.directory.fortress.core.model.Role)}
* </li>
* <li>
* Delete Users {@link org.apache.directory.fortress.core.AdminMgr#disableUser(
* org.apache.directory.fortress.core.model.User)}
* </li>
* <li>
* Delete Password Policies {@link org.apache.directory.fortress.core.PwPolicyMgr#delete(
* org.apache.directory.fortress.core.model.PwPolicy)}
* </li>
* <li>
* Delete Permission Operations {@link org.apache.directory.fortress.core.AdminMgr#deletePermission(
* org.apache.directory.fortress.core.model.Permission)}
* </li>
* <li>
* Delete Permission Objects {@link org.apache.directory.fortress.core.AdminMgr#deletePermObj(
* org.apache.directory.fortress.core.model.PermObj)}
* </li>
* <li>
* Delete SSD and DSD Sets {@link org.apache.directory.fortress.core.AdminMgr#deleteDsdSet(
* org.apache.directory.fortress.core.model.SDSet)} and
* {@link org.apache.directory.fortress.core.AdminMgr#deleteSsdSet(org.apache.directory.fortress.core.model.SDSet)}
* </li>
* <li>
* Delete RBAC Roles Inheritances {@link org.apache.directory.fortress.core.AdminMgr#deleteInheritance(
* org.apache.directory.fortress.core.model.Role, org.apache.directory.fortress.core.model.Role)}
* </li>
* <li>
* Delete RBAC Roles {@link org.apache.directory.fortress.core.AdminMgr#deleteRole(
* org.apache.directory.fortress.core.model.Role)}
* </li>
* <li>
* Delete ARBAC Role Inheritances {@link DelAdminMgr#deleteInheritance(
* org.apache.directory.fortress.core.model.AdminRole,org.apache.directory.fortress.core.model.AdminRole)}
* </li>
* <li>
* Delete ARBAC Roles {@link org.apache.directory.fortress.core.DelAdminMgr#deleteRole(
* org.apache.directory.fortress.core.model.AdminRole)}
* </li>
* <li>
* Delete User and Perm OU Inheritances {@link DelAdminMgr#deleteInheritance(
* org.apache.directory.fortress.core.model.OrgUnit, org.apache.directory.fortress.core.model.OrgUnit)} USER and PERM
* </li>
* <li>
* Delete User and Perm OUs {@link org.apache.directory.fortress.core.DelAdminMgr#delete(
* org.apache.directory.fortress.core.model.OrgUnit)} USER and PERM
* </li>
* <li>
* Delete Configuration Entries {@link org.apache.directory.fortress.core.ConfigMgr#delete(String, java.util.Properties)}
* </li>
* <li>Delete Containers {@link OrganizationalUnitP#delete(OrganizationalUnit)}</li>
* <li>
* Delete Suffix {@link org.apache.directory.fortress.core.impl.SuffixP#delete(
* org.apache.directory.fortress.core.model.Suffix)}}
* </li>
* <li>Add Suffix {@link SuffixP#add(Suffix)}}</li>
* <li>Add Containers {@link OrganizationalUnitP#add(OrganizationalUnit)}</li>
* <li>Add Configuration Parameters {@link ConfigMgr#add(Configuration)}</li>
* <li>
* Add User and Perm OUs {@link org.apache.directory.fortress.core.DelAdminMgr#add(
* org.apache.directory.fortress.core.model.OrgUnit)} USER and PERM
* </li>
* <li>
* Add User and Perm OU Inheritances {@link DelAdminMgr#addInheritance(org.apache.directory.fortress.core.model.OrgUnit,
* org.apache.directory.fortress.core.model.OrgUnit)} USER and PERM
* </li>
* <li>
* Add ARBAC Roles {@link org.apache.directory.fortress.core.DelAdminMgr#addRole(
* org.apache.directory.fortress.core.model.AdminRole)}
* </li>
* <li>
* Add ARBAC Role Inheritances {@link org.apache.directory.fortress.core.DelAdminMgr#addInheritance(
* org.apache.directory.fortress.core.model.AdminRole, org.apache.directory.fortress.core.model.AdminRole)}
* </li>
* <li>
* Add RBAC Roles {@link org.apache.directory.fortress.core.AdminMgr#addRole(
* org.apache.directory.fortress.core.model.Role)}
* </li>
* <li>
* Add RBAC Role Inheritances {@link org.apache.directory.fortress.core.AdminMgr#addInheritance(
* org.apache.directory.fortress.core.model.Role, org.apache.directory.fortress.core.model.Role)}
* </li>
* <li>
* Add DSD and SSD Sets {@link org.apache.directory.fortress.core.AdminMgr#createDsdSet(
* org.apache.directory.fortress.core.model.SDSet)} and
* {@link org.apache.directory.fortress.core.AdminMgr#createSsdSet(org.apache.directory.fortress.core.model.SDSet)}
* </li>
* <li>
* Add Permission Objects {@link org.apache.directory.fortress.core.AdminMgr#addPermObj(
* org.apache.directory.fortress.core.model.PermObj)}
* </li>
* <li>
* Add Permission Operations {@link org.apache.directory.fortress.core.AdminMgr#addPermission(
* org.apache.directory.fortress.core.model.Permission)}
* </li>
* <li>
* Add Password Policies {@link org.apache.directory.fortress.core.PwPolicyMgr#add(
* org.apache.directory.fortress.core.model.PwPolicy)}
* </li>
* <li>
* Add Users {@link org.apache.directory.fortress.core.AdminMgr#addUser(org.apache.directory.fortress.core.model.User)}
* </li>
* <li>
* Grant RBAC Permissions {@link org.apache.directory.fortress.core.AdminMgr#grantPermission(
* org.apache.directory.fortress.core.model.Permission, org.apache.directory.fortress.core.model.Role)}
* </li>
* <li>
* Assign ARBAC Roles {@link org.apache.directory.fortress.core.DelAdminMgr#assignUser(
* org.apache.directory.fortress.core.model.UserAdminRole)}
* </li>
* <li>
* Assign RBAC Roles {@link org.apache.directory.fortress.core.AdminMgr#assignUser(
* org.apache.directory.fortress.core.model.UserRole)}
* </li>
* </ol>
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class FortressAntTask extends Task implements InputHandler
{
public static final boolean DEBUG = ( ( System.getProperty( "debug.admin" ) != null ) && ( System.getProperty(
"debug.admin" ).equalsIgnoreCase( "true" ) ) );
private static final String SEMICOLON = ";";
private final List<Addconfig> addconfig = new ArrayList<>();
private final List<Updconfig> updconfig = new ArrayList<>();
private final List<Delconfig> delconfig = new ArrayList<>();
private final List<Adduser> addusers = new ArrayList<>();
private final List<Deluser> delusers = new ArrayList<>();
private final List<Adduserrole> adduserroles = new ArrayList<>();
private final List<Deluserrole> deluserroles = new ArrayList<>();
private final List<Addrole> addroles = new ArrayList<>();
private final List<Delrole> delroles = new ArrayList<>();
private final List<Addsdset> addsdsets = new ArrayList<>();
private final List<Addroleinheritance> addroleinheritances = new ArrayList<>();
private final List<Delroleinheritance> delroleinheritances = new ArrayList<>();
private final List<Delsdset> delsdsets = new ArrayList<>();
private final List<AddpermOp> addpermOps = new ArrayList<>();
private final List<DelpermOp> delpermOps = new ArrayList<>();
private final List<AddpermObj> addpermObjs = new ArrayList<>();
private final List<DelpermObj> delpermObjs = new ArrayList<>();
private final List<AddpermGrant> addpermGrants = new ArrayList<>();
private final List<DelpermGrant> delpermGrants = new ArrayList<>();
private final List<Addpwpolicy> addpolicies = new ArrayList<>();
private final List<Delpwpolicy> delpolicies = new ArrayList<>();
private final List<Addcontainer> addcontainers = new ArrayList<>();
private final List<Delcontainer> delcontainers = new ArrayList<>();
private final List<Addsuffix> addsuffixes = new ArrayList<>();
private final List<Delsuffix> delsuffixes = new ArrayList<>();
private final List<Addorgunit> addorgunits = new ArrayList<>();
private final List<Delorgunit> delorgunits = new ArrayList<>();
private final List<Adduserorgunitinheritance> adduserorgunitinheritances = new ArrayList<>();
private final List<Deluserorgunitinheritance> deluserorgunitinheritances = new ArrayList<>();
private final List<Addpermorgunitinheritance> addpermorgunitinheritances = new ArrayList<>();
private final List<Delpermorgunitinheritance> delpermorgunitinheritances = new ArrayList<>();
private final List<Addadminrole> addadminroles = new ArrayList<>();
private final List<Deladminrole> deladminroles = new ArrayList<>();
private final List<Adduseradminrole> adduseradminroles = new ArrayList<>();
private final List<Addadminroleinheritance> addadminroleinheritances = new ArrayList<>();
private final List<Deladminroleinheritance> deladminroleinheritances = new ArrayList<>();
private final List<Deluseradminrole> deluseradminroles = new ArrayList<>();
private final List<Addcontext> addcontexts = new ArrayList<>();
private final List<Addgroup> addgroups = new ArrayList<>();
private final List<Delgroup> delgroups = new ArrayList<>();
private final List<Addgroupmember> addgroupmembers = new ArrayList<>();
private final List<Delgroupmember> delgroupmembers = new ArrayList<>();
private final List<Addgroupproperty> addgroupproperties = new ArrayList<>();
private final List<Delgroupproperty> delgroupproperties = new ArrayList<>();
private final List<Addroleconstraint> addroleconstraints = new ArrayList<>();
private final List<Delroleconstraint> delroleconstraints = new ArrayList<>();
private ConfigMgr cfgMgr = null;
private AdminMgr adminMgr = null;
private DelAdminMgr dAdminMgr = null;
private PwPolicyMgr policyMgr = null;
private GroupMgr groupMgr = null;
private static final String CLS_NM = FortressAntTask.class.getName();
protected static final Logger LOG = LoggerFactory.getLogger( CLS_NM );
private Context context;
// This system property can be used to set the default tenant id:
private static final String TENANT = System.getProperty( "tenant" );
private String tenant;
public String getTenant()
{
return tenant;
}
/**
* Load the entity with data.
*
* @param addcontext contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddcontext( Addcontext addcontext )
{
this.addcontexts.add( addcontext );
}
/**
* This method is used as an alternative way to set tenant id. By setting this element in xml file:
* <addcontext>
* <context name="${tenant}"/>
</addcontext>
*
*
* @param context contains the tenant info.
*/
public void setContext( Context context )
{
System.out.println( CLS_NM + ".setContext name: " + context.getName() );
this.context = context;
try
{
adminMgr = AdminMgrFactory.createInstance( context.getName() );
dAdminMgr = DelAdminMgrFactory.createInstance( context.getName() );
policyMgr = PwPolicyMgrFactory.createInstance( context.getName() );
groupMgr = GroupMgrFactory.createInstance( context.getName() );
}
catch ( SecurityException se )
{
LOG.warn( " FortressAntTask setContext caught SecurityException={}", se );
}
}
/**
* Default constructor initializes he Manager APIs.
*/
public FortressAntTask()
{
try
{
// This value is set by system property "tenant":
if( StringUtils.isEmpty( TENANT ) || TENANT.equals( "${tenant}" ) )
{
// Use the default context:
this.tenant = GlobalIds.HOME;
}
else
{
this.tenant = TENANT;
LOG.info( "FortressAntTask constructor using tenant={}", tenant );
}
cfgMgr = ConfigMgrFactory.createInstance();
adminMgr = AdminMgrFactory.createInstance( this.tenant );
dAdminMgr = DelAdminMgrFactory.createInstance( this.tenant );
policyMgr = PwPolicyMgrFactory.createInstance( this.tenant );
groupMgr = GroupMgrFactory.createInstance( this.tenant );
}
catch ( SecurityException se )
{
LOG.warn( " FortressAntTask constructor tenant={}, caught SecurityException={}", this.tenant, se );
}
}
/**
* Used by Apache Ant to load data from xml into entities.
*
* @param request The input request
*/
public void handleInput( InputRequest request )
{
LOG.info( "handleInput request={}", request );
}
/**
* Load the entity with data.
*
* @param addcfg contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddconfig( Addconfig addcfg )
{
this.addconfig.add( addcfg );
}
/**
* Load the entity with data.
*
* @param updcfg contains the ant initialized data entities to be handed off for further processing.
*/
public void addUpdconfig( Updconfig updcfg )
{
this.updconfig.add( updcfg );
}
/**
* Load the entity with data.
*
* @param delcfg contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelconfig( Delconfig delcfg )
{
this.delconfig.add( delcfg );
}
/**
* Load the entity with data.
*
* @param adduser contains the ant initialized data entities to be handed off for further processing.
*/
public void addAdduser( Adduser adduser )
{
this.addusers.add( adduser );
}
/**
* Load the entity with data.
*
* @param deluser contains the ant initialized data entities to be handed off for further processing.
*/
public void addDeluser( Deluser deluser )
{
this.delusers.add( deluser );
}
/**
* Load the entity with data.
*
* @param adduserrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addAdduserrole( Adduserrole adduserrole )
{
this.adduserroles.add( adduserrole );
}
/**
* Load the entity with data.
*
* @param deluserrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addDeluserrole( Deluserrole deluserrole )
{
this.deluserroles.add( deluserrole );
}
/**
* Load the entity with data.
*
* @param addrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddrole( Addrole addrole )
{
this.addroles.add( addrole );
}
/**
* Load the entity with data.
*
* @param delrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelrole( Delrole delrole )
{
this.delroles.add( delrole );
}
/**
* Load the entity with data.
*
* @param addroleinheritance contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddroleinheritance( Addroleinheritance addroleinheritance )
{
this.addroleinheritances.add( addroleinheritance );
}
/**
* Load the entity with data.
*
* @param delroleinheritance contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelroleinheritance( Delroleinheritance delroleinheritance )
{
this.delroleinheritances.add( delroleinheritance );
}
/**
* Load the entity with data.
*
* @param addsd contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddsdset( Addsdset addsd )
{
this.addsdsets.add( addsd );
}
/**
* Load the entity with data.
*
* @param delsd contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelsdset( Delsdset delsd )
{
this.delsdsets.add( delsd );
}
/**
* Load the entity with data.
*
* @param addpermOp contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddpermOp( AddpermOp addpermOp )
{
this.addpermOps.add( addpermOp );
}
/**
* Load the entity with data.
*
* @param delpermOp contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelpermOp( DelpermOp delpermOp )
{
this.delpermOps.add( delpermOp );
}
/**
* Load the entity with data.
*
* @param addpermObj contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddpermObj( AddpermObj addpermObj )
{
this.addpermObjs.add( addpermObj );
}
/**
* Load the entity with data.
*
* @param delpermObj contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelpermObj( DelpermObj delpermObj )
{
this.delpermObjs.add( delpermObj );
}
/**
* Load the entity with data.
*
* @param addpermGrant contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddpermGrant( AddpermGrant addpermGrant )
{
this.addpermGrants.add( addpermGrant );
}
/**
* Load the entity with data.
*
* @param delpermGrant contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelpermGrant( DelpermGrant delpermGrant )
{
this.delpermGrants.add( delpermGrant );
}
/**
* Load the entity with data.
*
* @param addpwpolicy contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddpwpolicy( Addpwpolicy addpwpolicy )
{
this.addpolicies.add( addpwpolicy );
}
/**
* Load the entity with data.
*
* @param delpwpolicy contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelpwpolicy( Delpwpolicy delpwpolicy )
{
this.delpolicies.add( delpwpolicy );
}
/**
* Load the entity with data.
*
* @param addcontainer contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddcontainer( Addcontainer addcontainer )
{
this.addcontainers.add( addcontainer );
}
/**
* Load the entity with data.
*
* @param delcontainer contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelcontainer( Delcontainer delcontainer )
{
this.delcontainers.add( delcontainer );
}
/**
* Load the entity with data.
*
* @param addsuffix contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddsuffix( Addsuffix addsuffix )
{
this.addsuffixes.add( addsuffix );
}
/**
* Load the entity with data.
*
* @param delsuffix contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelsuffix( Delsuffix delsuffix )
{
this.delsuffixes.add( delsuffix );
}
/**
* Load the entity with data.
*
* @param addorgunit contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddorgunit( Addorgunit addorgunit )
{
this.addorgunits.add( addorgunit );
}
/**
* Load the entity with data.
*
* @param delorgunit contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelorgunit( Delorgunit delorgunit )
{
this.delorgunits.add( delorgunit );
}
/**
* Load the entity with data.
*
* @param addinheritance contains the ant initialized data entities to be handed off for further processing.
*/
public void addAdduserorgunitinheritance( Adduserorgunitinheritance addinheritance )
{
this.adduserorgunitinheritances.add( addinheritance );
}
/**
* Load the entity with data.
*
* @param delinheritance contains the ant initialized data entities to be handed off for further processing.
*/
public void addDeluserorgunitinheritance( Deluserorgunitinheritance delinheritance )
{
this.deluserorgunitinheritances.add( delinheritance );
}
/**
* Load the entity with data.
*
* @param addinheritance contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddpermorgunitinheritance( Addpermorgunitinheritance addinheritance )
{
this.addpermorgunitinheritances.add( addinheritance );
}
/**
* Load the entity with data.
*
* @param delinheritance contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelpermorgunitinheritance( Delpermorgunitinheritance delinheritance )
{
this.delpermorgunitinheritances.add( delinheritance );
}
/**
* Load the entity with data.
*
* @param addrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddadminrole( Addadminrole addrole )
{
this.addadminroles.add( addrole );
}
/**
* Load the entity with data.
*
* @param delrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addDeladminrole( Deladminrole delrole )
{
this.deladminroles.add( delrole );
}
/**
* Load the entity with data.
*
* @param addadminroleinheritance contains the ant initialized data entities to be handed off for further
* processing.
*/
public void addAddadminroleinheritance( Addadminroleinheritance addadminroleinheritance )
{
this.addadminroleinheritances.add( addadminroleinheritance );
}
/**
* Load the entity with data.
*
* @param deladminroleinheritance contains the ant initialized data entities to be handed off for further
* processing.
*/
public void addDeladminroleinheritance( Deladminroleinheritance deladminroleinheritance )
{
this.deladminroleinheritances.add( deladminroleinheritance );
}
/**
* Load the entity with data.
*
* @param adduserrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addAdduseradminrole( Adduseradminrole adduserrole )
{
this.adduseradminroles.add( adduserrole );
}
/**
* Load the entity with data.
*
* @param deluserrole contains the ant initialized data entities to be handed off for further processing.
*/
public void addDeluseradminrole( Deluseradminrole deluserrole )
{
this.deluseradminroles.add( deluserrole );
}
/**
* Load the entity with data.
*
* @param addgroup contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddgroup( Addgroup addgroup )
{
this.addgroups.add( addgroup );
}
/**
* Load the entity with data.
*
* @param delgroup contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelgroup( Delgroup delgroup )
{
this.delgroups.add( delgroup );
}
/**
* Load the entity with data.
*
* @param addgroupmember contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddgroupmember( Addgroupmember addgroupmember )
{
this.addgroupmembers.add( addgroupmember );
}
/**
* Load the entity with data.
*
* @param delgroupmember contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelgroupmember( Delgroupmember delgroupmember )
{
this.delgroupmembers.add( delgroupmember );
}
/**
* Load the entity with data.
*
* @param addgroupproperty contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddgroupproperty( Addgroupproperty addgroupproperty )
{
this.addgroupproperties.add( addgroupproperty );
}
/**
* Load the entity with data.
*
* @param delgroupproperty contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelgroupproperty( Delgroupproperty delgroupproperty )
{
this.delgroupproperties.add( delgroupproperty );
}
/**
* Load the entity with data.
*
* @param addroleconstraint contains the ant initialized data entities to be handed off for further processing.
*/
public void addAddroleconstraint( Addroleconstraint addroleconstraint )
{
this.addroleconstraints.add( addroleconstraint );
}
/**
* Load the entity with data.
*
* @param delroleconstraint contains the ant initialized data entities to be handed off for further processing.
*/
public void addDelroleconstraint( Delroleconstraint delroleconstraint )
{
this.delroleconstraints.add( delroleconstraint );
}
/**
* @param list
* @return boolean
*/
private boolean isListNotNull( List<?> list )
{
return ( ( list != null ) && ( list.size() > 0 ) );
}
/**
* @throws BuildException An error occurred while building
*/
public void execute() throws BuildException
{
LOG.info( "FORTRESS ANT TASK NAME : {}", getTaskName() );
if ( isListNotNull( addcontexts ) )
{
setContext( addcontexts.get( 0 ).getContexts().get( 0 ) );
}
delRoleConstraints();
delUserRoles();
delUserAdminRoles();
deletePermGrants();
deleteGroupProperties();
deleteGroupMembers();
deleteGroups();
deleteUsers();
deletePolicies();
deletePermOps();
deletePermObjs();
deleteSdsets();
deleteRoleInheritances();
deleteRoles();
deleteAdminRoleInheritances();
deleteAdminRoles();
deleteUserOrgunitInheritances();
deletePermOrgunitInheritances();
delOrgunits();
deleteConfig();
deleteContainers();
deleteSuffixes();
addSuffixes();
addContainers();
addConfig();
updConfig();
addOrgunits();
addUserOrgunitInheritances();
addPermOrgunitInheritances();
addAdminRoles();
addAdminRoleInheritances();
addRoles();
addRoleInheritances();
addSdsets();
addPermObjs();
addPermOps();
addPolicies();
addUsers();
addGroups();
addGroupMembers();
addGroupProperties();
addPermGrants();
addUserAdminRoles();
addUserRoles();
addRoleConstraints();
testResults();
System.exit( 0 );
}
/**
* @throws BuildException An error occurred while building
*/
private void testResults() throws BuildException
{
// Test the results?
if ( DEBUG )
{
// Verify the input XML file against what made it into the target LDAP directory:
LOG.info( "DEBUG MODE" );
try
{
String testClassName = Config.getInstance().getProperty( getTaskName() );
if ( StringUtils.isEmpty( testClassName ) )
{
testClassName = "org.apache.directory.fortress.core.impl.FortressAntLoadTest";
}
// Use reflexion to avoid core dependency on test classes located under FORTRESS_HOME/src/main/test
Testable tester = ( Testable ) ClassUtil.createInstance( testClassName );
tester.execute( this );
}
catch ( CfgException ce )
{
String error = "Error executing tests, errCode=" + ce.getErrorId() + " msg=" + ce;
LOG.warn( error );
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addUsers() throws BuildException
{
if( addusers == null )
{
return;
}
// Loop through the entityclass elements
for ( Adduser adduser : addusers )
{
List<UserAnt> users = adduser.getUsers();
for ( UserAnt user : users )
{
LOG.info( "addUsers tenant={} userid={} description={} orgUnit={}",
getTenant(), user.getUserId(), user.getDescription(), user.getOu() );
try
{
addUser( user );
}
catch ( SecurityException se )
{
LOG.warn( "addUsers userId [{}] caught SecurityException={}", user.getUserId(), se );
}
}
}
}
/**
* Utility method called by addUsers()
*
* @param user
* @throws SecurityException
*/
private void addUser(User user) throws SecurityException
{
try
{
adminMgr.addUser( user );
assignUser( user );
}
catch ( SecurityException se )
{
// If User entity already there then call the udpate method.
if ( se.getErrorId() == GlobalErrIds.USER_ID_DUPLICATE )
{
adminMgr.updateUser( user );
assignUser( user );
LOG.info( "addUsers tenant={} Update entity - userId={}", getTenant(), user.getUserId() );
}
else
{
throw se;
}
}
}
/**
* Utility method to assign roles to user.
*
* @param user
* @throws SecurityException
*/
private void assignUser( User user ) throws SecurityException
{
if ( CollectionUtils.isNotEmpty( user.getRoles() ) )
{
for ( UserRole uRole : user.getRoles() )
{
adminMgr.assignUser( uRole );
}
}
if ( CollectionUtils.isNotEmpty( user.getAdminRoles() ) )
{
for ( UserAdminRole uAdminRoleRole : user.getAdminRoles() )
{
dAdminMgr.assignUser( uAdminRoleRole );
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteUsers() throws BuildException
{
if( delusers == null )
{
return;
}
// Loop through the entityclass elements
for ( Deluser deluser : delusers )
{
List<UserAnt> users = deluser.getUsers();
for ( UserAnt user : users )
{
LOG.info( "deleteUsers tenant={} userid={}", getTenant(), user.getUserId() );
try
{
adminMgr.deleteUser( user );
}
catch ( SecurityException se )
{
LOG.warn( "deleteUsers userId [{}] caught SecurityException={}", user.getUserId(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addGroups() throws BuildException
{
if( addgroups == null )
{
return;
}
// Loop through the entityclass elements
for ( Addgroup addgroup : addgroups )
{
List<Group> groups = addgroup.getGroups();
for ( Group group : groups )
{
LOG.info( "addGroups tenant={} name={} description={}", getTenant(), group.getName(), group.getDescription() );
try
{
groupMgr.add( group );
}
catch ( SecurityException se )
{
LOG.warn( "addGroups name [{}] caught SecurityException={}", group.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteGroups() throws BuildException
{
if( delgroups == null )
{
return;
}
// Loop through the entityclass elements
for ( Delgroup delgroup : delgroups )
{
List<Group> groups = delgroup.getGroups();
for ( Group group : groups )
{
LOG.info( "deleteGroups tenant={} name={}", getTenant(), group.getName() );
try
{
groupMgr.delete( group );
}
catch ( SecurityException se )
{
LOG.warn( "deleteGroups name [{}] caught SecurityException={}", group.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addGroupMembers() throws BuildException
{
if( addgroupmembers == null )
{
return;
}
// Loop through the entityclass elements
for ( Addgroupmember addgroupmember : addgroupmembers )
{
List<Group> groups = addgroupmember.getGroups();
for ( Group group : groups )
{
List<String> members = group.getMembers();
if ( CollectionUtils.isNotEmpty( members ) )
{
for ( String member : members )
{
LOG.info( "addGroupMembers tenant={} name={}, member={}", getTenant(), group.getName(), member );
try
{
groupMgr.assign( group, member );
}
catch ( SecurityException se )
{
LOG.warn( "addGroupMembers tenant={} name [{}], member [{}] caught SecurityException={}",
getTenant(), group.getName(), member, se );
}
}
}
else
{
LOG.info( "addGroupMembers name={}, no member found", group.getName() );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteGroupMembers() throws BuildException
{
if( delgroupmembers == null )
{
return;
}
// Loop through the entityclass elements
for ( Delgroupmember delgroupmember : delgroupmembers )
{
List<Group> groups = delgroupmember.getGroups();
for ( Group group : groups )
{
if ( CollectionUtils.isNotEmpty( group.getMembers() ) )
{
for ( String member : group.getMembers() )
{
LOG.info( "deleteGroupMembers tenant={} name={}, member={}", getTenant(), group.getName(), member );
try
{
groupMgr.deassign( group, member );
}
catch ( SecurityException se )
{
LOG.warn( "deleteGroupMembers tenant={} name [{}], member [{}] caught SecurityException={}",
getTenant(), group.getName(), member, se );
}
}
}
else
{
LOG.info( "deleteGroupMembers tenant={} name={}, no member found", getTenant(), group.getName() );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addGroupProperties()
{
if( addgroupproperties == null )
{
return;
}
// Loop through the entityclass elements
for ( Addgroupproperty addgroupproperty : addgroupproperties )
{
List<Group> groups = addgroupproperty.getGroups();
for ( Group group : groups )
{
if ( PropUtil.isNotEmpty( group.getProperties() ) )
{
for ( Enumeration<?> e = group.getProperties().propertyNames(); e.hasMoreElements(); )
{
// This LDAP attr is stored as a name-value pair separated by a ':'.
String key = ( String ) e.nextElement();
String val = group.getProperties().getProperty( key );
try
{
groupMgr.add( group, key, val );
}
catch ( SecurityException se )
{
LOG.warn( "addGroupProperties tenant={} name [{}], key [{}], value [{}] caught SecurityException={}",
getTenant(), group.getName(), key, val, se );
}
}
}
else
{
LOG.info( "addGroupProperties tenant={} name={}, no properties found", getTenant(), group.getName() );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteGroupProperties() throws BuildException
{
if( delgroupproperties == null )
{
return;
}
// Loop through the entityclass elements
for ( Delgroupproperty delgroupproperty : delgroupproperties )
{
List<Group> groups = delgroupproperty.getGroups();
for ( Group group : groups )
{
if ( PropUtil.isNotEmpty( group.getProperties() ) )
{
for ( Enumeration<?> e = group.getProperties().propertyNames(); e.hasMoreElements(); )
{
// This LDAP attr is stored as a name-value pair separated by a ':'.
String key = ( String ) e.nextElement();
String val = group.getProperties().getProperty( key );
try
{
groupMgr.delete( group, key, val );
}
catch ( SecurityException se )
{
LOG.warn(
"deleteGroupProperties tenant={} name [{}], key [{}], value [{}] caught SecurityException={}",
getTenant(), group.getName(), key, val, se );
}
}
}
else
{
LOG.info( "deleteGroupProperties tenant={} name={}, no properties found", getTenant(), group.getName() );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addUserRoles() throws BuildException
{
if( adduserroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Adduserrole adduserrole : adduserroles )
{
List<UserRole> userroles = adduserrole.getUserRoles();
for ( UserRole userRole : userroles )
{
LOG.info( "addUserRoles tenant={} userid={} role name={}", getTenant(), userRole.getUserId(), userRole.getName() );
try
{
//Role role = new Role(userRole);
adminMgr.assignUser( userRole );
}
catch ( SecurityException se )
{
LOG.warn( "addUserRoles tenant={} userId={} roleName={} caught SecurityException={}", getTenant(), userRole.getUserId(), userRole.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void delUserRoles() throws BuildException
{
if( deluserroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Deluserrole deluserrole : deluserroles )
{
List<UserRole> userroles = deluserrole.getUserRoles();
for ( UserRole userRole : userroles )
{
LOG.info( "delUserRoles tenant={} userid={} role name={}", getTenant(), userRole.getUserId(), userRole.getName() );
try
{
adminMgr.deassignUser( userRole );
}
catch ( SecurityException se )
{
LOG.warn( "delUserRoles tenant={} userId={} roleName={} caught SecurityException={}", getTenant(), userRole.getUserId(), userRole.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addRoleConstraints() throws BuildException
{
if( addroleconstraints == null )
{
return;
}
// Loop through the entityclass elements
for ( Addroleconstraint addroleconstraint : addroleconstraints )
{
List<RoleConstraintAnt> roleconstraints = addroleconstraint.getRoleConstraints();
for ( RoleConstraintAnt roleConstraint : roleconstraints )
{
try
{
// If userid null, enable constraint on role:
if( StringUtils.isEmpty( roleConstraint.getUserId() ) && roleConstraint.getType() == org.apache.directory.fortress.core.model.RoleConstraint.RCType.USER )
{
adminMgr.enableRoleConstraint( new Role( roleConstraint.getRole() ), roleConstraint );
LOG.info( "enableRoleConstraint successfully enabled: tenant={} type={} role={} key={}", getTenant(), roleConstraint.getType(), roleConstraint.getRole(), roleConstraint.getKey() );
}
else
{
adminMgr.addRoleConstraint( new UserRole( roleConstraint.getUserId(), roleConstraint.getRole() ), roleConstraint );
LOG.info( "addRoleConstraint successfully added: tenant={} type={} userid={} role={} key={} value={}", getTenant(), roleConstraint.getType(), roleConstraint.getUserId(), roleConstraint.getRole(), roleConstraint.getKey(), roleConstraint.getValue() );
}
}
catch ( SecurityException se )
{
LOG.warn( "addRoleConstraints tenant={} userId={} roleName={} caught SecurityException={}", getTenant(), roleConstraint.getUserId(), roleConstraint.getRole(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void delRoleConstraints() throws BuildException
{
if( addroleconstraints == null )
{
return;
}
// Loop through the entityclass elements
for ( Delroleconstraint delroleconstraint : delroleconstraints )
{
List<RoleConstraintAnt> roleconstraints = delroleconstraint.getRoleConstraints();
for ( RoleConstraintAnt roleConstraint : roleconstraints )
{
try
{
// If userid null, disable constraint on role:
if( StringUtils.isEmpty( roleConstraint.getUserId() ) && roleConstraint.getType() == org.apache.directory.fortress.core.model.RoleConstraint.RCType.USER )
{
adminMgr.disableRoleConstraint( new Role( roleConstraint.getRole() ), roleConstraint );
LOG.info( "disableRoleConstraint successfully disabled: tenant={} type={} role={} key={}", getTenant(), roleConstraint.getType(), roleConstraint.getRole(), roleConstraint.getKey() );
}
else
{
adminMgr.removeRoleConstraint( new UserRole( roleConstraint.getUserId(), roleConstraint.getRole()
), roleConstraint );
LOG.info( "removeRoleConstraint success: tenant={} type={} userid={} role={} key={} value={}",
getTenant(), roleConstraint.getType(), roleConstraint.getUserId(), roleConstraint.getRole(),
roleConstraint.getKey(), roleConstraint.getValue() );
}
}
catch ( SecurityException se )
{
LOG.warn( "delRoleConstraints tenant={} userId={} roleName={} caught SecurityException={}", getTenant(), roleConstraint.getUserId(), roleConstraint.getRole(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addRoles() throws BuildException
{
if( addroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Addrole addrole : addroles )
{
List<Role> roles = addrole.getRoles();
for ( Role role : roles )
{
LOG.info( "addRoles tenant={} name={} description={}", getTenant(), role.getName(), role.getDescription() );
try
{
adminMgr.addRole( role );
}
catch ( SecurityException se )
{
LOG.warn( "addRoles tenant={} name [{}] caught SecurityException={}", getTenant(), role.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteRoles() throws BuildException
{
if( delroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Delrole delrole : delroles )
{
List<Role> roles = delrole.getRoles();
for ( Role role : roles )
{
LOG.info( "deleteRoles tenant={} name={}", getTenant(), role.getName() );
try
{
adminMgr.deleteRole( role );
}
catch ( SecurityException se )
{
LOG.warn( "deleteRoles tenant={} name [{}] caught SecurityException={}", getTenant(), role.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addRoleInheritances() throws BuildException
{
if( addroleinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Addroleinheritance addroleinheritance : addroleinheritances )
{
List<Relationship> roles = addroleinheritance.getRelationships();
for ( Relationship relationship : roles )
{
LOG.info( "addRoleInheritances tenant={} parent={} child={}", getTenant(), relationship.getParent(), relationship.getChild() );
try
{
adminMgr.addInheritance( new Role( relationship.getParent() ), new Role( relationship.getChild()
) );
}
catch ( SecurityException se )
{
LOG.warn( "addRoleInheritances tenant={} parent [{}] child [{}] caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteRoleInheritances() throws BuildException
{
if( delroleinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Delroleinheritance delroleinheritance : delroleinheritances )
{
List<Relationship> roles = delroleinheritance.getRelationships();
for ( Relationship relationship : roles )
{
LOG.info( "deleteRoleInheritances tenant={} parent={} child={}", getTenant(), relationship.getParent(),
relationship.getChild() );
try
{
adminMgr.deleteInheritance( new Role( relationship.getParent() ),
new Role( relationship.getChild() ) );
}
catch ( SecurityException se )
{
LOG.warn( "deleteRoleInheritances tenant={} parent [{}] child [{}] caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addSdsets() throws BuildException
{
if( addsdsets == null )
{
return;
}
// Loop through the entityclass elements
for ( Addsdset addsdset : addsdsets )
{
List<SDSetAnt> sds = addsdset.getSdset();
for ( SDSetAnt sd : sds )
{
LOG.info( "addSdsets tenant={} name={} description={}", getTenant(), sd.getName(), sd.getDescription() );
try
{
if ( sd.getType() == SDSet.SDType.STATIC )
{
adminMgr.createSsdSet( sd );
}
else
{
adminMgr.createDsdSet( sd );
}
}
catch ( SecurityException se )
{
LOG.warn( "addSdsets tenant={} name [{}] caught SecurityException={}", getTenant(), sd.getName() + se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteSdsets() throws BuildException
{
if( delsdsets == null )
{
return;
}
// Loop through the entityclass elements
for ( Delsdset delsdset : delsdsets )
{
List<SDSetAnt> sds = delsdset.getSdset();
for ( SDSetAnt sd : sds )
{
LOG.info( "deleteSdsets tenant={} name={}", getTenant(), sd.getName() );
try
{
if ( sd.getSetType().equals( "STATIC" ) )
{
sd.setType( SDSet.SDType.STATIC );
}
else
{
sd.setType( SDSet.SDType.DYNAMIC );
}
adminMgr.deleteSsdSet( sd );
}
catch ( SecurityException se )
{
LOG.warn( "deleteSdsets tenant={} name [{}] caught SecurityException={}", getTenant(), sd.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addPermObjs() throws BuildException
{
if( addpermObjs == null )
{
return;
}
// Loop through the entityclass elements
for ( AddpermObj addpermObj : addpermObjs )
{
List<PermObj> permObjs = addpermObj.getPermObjs();
for ( PermObj permObj : permObjs )
{
LOG.info( "addPermObjs tenant={} objName={} description={} orgUnit={} type={}",
getTenant(), permObj.getObjName(), permObj.getDescription(), permObj.getOu(), permObj.getType() );
try
{
try
{
adminMgr.addPermObj( permObj );
}
catch ( SecurityException se )
{
// If Perm Object entity already there then call the udpate method.
if ( se.getErrorId() == GlobalErrIds.PERM_DUPLICATE )
{
adminMgr.updatePermObj( permObj );
LOG.info( "addPermObjs tenant={} update entity objName={} description={} orgUnit={} type={}", getTenant(), permObj.getObjName(), permObj
.getDescription(), permObj.getOu(), permObj.getType() );
}
else
{
throw se;
}
}
}
catch ( SecurityException se )
{
LOG.warn( "addPermObjs tenant={} objName [{}] caught SecurityException={}",
getTenant(), permObj.getObjName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deletePermObjs() throws BuildException
{
if( delpermObjs == null )
{
return;
}
// Loop through the entityclass elements
for ( DelpermObj delpermObj : delpermObjs )
{
List<PermObj> permObjs = delpermObj.getObjs();
for ( PermObj permObj : permObjs )
{
LOG.info( "deletePermObjs tenant={} objName={} description={}",
getTenant(), permObj.getObjName(), permObj.getDescription() );
try
{
adminMgr.deletePermObj( permObj );
}
catch ( SecurityException se )
{
LOG.warn( "deletePermObjs tenant={} name [{}] caught SecurityException={}", getTenant(), permObj.getObjName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addPermOps() throws BuildException
{
if( addpermOps == null )
{
return;
}
// Loop through the entityclass elements
for ( AddpermOp addpermOp : addpermOps )
{
List<PermAnt> permissions = addpermOp.getPermOps();
for ( PermAnt permission : permissions )
{
LOG.info( "addPermOps tenant={} name={} objName={}", getTenant(), permission.getOpName(), permission.getObjName() );
try
{
try
{
adminMgr.addPermission( permission );
}
catch ( SecurityException se )
{
// If Perm Object entity already there then call the udpate method.
if ( se.getErrorId() == GlobalErrIds.PERM_DUPLICATE )
{
adminMgr.updatePermission( permission );
LOG.info( "addPermOps tenant={} - update entity - name={} objName={}",
getTenant(), permission.getOpName(), permission.getObjName() );
}
else
{
throw se;
}
}
}
catch ( SecurityException se )
{
LOG.warn( "addPermOps tenant={} name [{}] objName [{}] caught SecurityException={}",
getTenant(), permission.getOpName(), permission.getObjName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deletePermOps() throws BuildException
{
if( delpermOps == null )
{
return;
}
// Loop through the entityclass elements
for ( DelpermOp delpermOp : delpermOps )
{
List<PermAnt> permissions = delpermOp.getPermOps();
for ( Permission permission : permissions )
{
LOG.info( "deletePermOps tenant={} name={} objName={}", getTenant(), permission.getOpName(), permission.getObjName() );
try
{
adminMgr.deletePermission( permission );
}
catch ( SecurityException se )
{
LOG.warn( "deletePermOps tenant={} name [{}] objName[{}] caught SecurityException={}",
getTenant(), permission.getOpName(), permission.getObjName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addPermGrants() throws BuildException
{
if( addpermGrants == null )
{
return;
}
// Loop through the entityclass elements
for ( AddpermGrant addpermGrant : addpermGrants )
{
List<PermGrant> permGrants = addpermGrant.getPermGrants();
for ( PermGrant permGrant : permGrants )
{
try
{
Permission perm = new Permission( permGrant.getObjName(), permGrant.getOpName(),
permGrant.isAdmin() );
perm.setOpName( permGrant.getOpName() );
perm.setObjId( permGrant.getObjId() );
if ( permGrant.getRoleNm() != null && permGrant.getRoleNm().length() > 0 )
{
LOG.info( "addPermGrants tenant={} roleName={} objName={} opName={} objId={}", getTenant(), permGrant.getRoleNm(), permGrant.getObjName(), permGrant.getOpName(), permGrant.getObjId() );
adminMgr.grantPermission( perm, new Role( permGrant.getRoleNm() ) );
}
else if ( permGrant.getUserId() != null && permGrant.getUserId().length() > 0 )
{
LOG.info( "addPermGrants tenant={} userId={} objName={} opName={} objId={}", getTenant(), permGrant.getUserId(), permGrant.getObjName(), permGrant.getOpName(), permGrant.getObjId() );
adminMgr.grantPermission( perm, new User( permGrant.getUserId() ) );
}
else
{
String warning = "addPermGrants called without user or role set in xml";
LOG.warn( warning );
}
}
catch ( SecurityException se )
{
LOG.warn( "addPermGrants tenant={} roleName={} objName={} opName={} objId={} caught SecurityException={}" , getTenant(), permGrant.getRoleNm(), permGrant.getObjName(), permGrant.getOpName(), permGrant.getObjId(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deletePermGrants() throws BuildException
{
if( delpermGrants == null )
{
return;
}
// Loop through the entityclass elements
for ( DelpermGrant delpermGrant : delpermGrants )
{
List<PermGrant> permGrants = delpermGrant.getPermGrants();
for ( PermGrant permGrant : permGrants )
{
try
{
Permission perm = new Permission( permGrant.getObjName(), permGrant.getOpName(),
permGrant.isAdmin() );
perm.setOpName( permGrant.getOpName() );
perm.setObjId( permGrant.getObjId() );
if ( permGrant.getRoleNm() != null && permGrant.getRoleNm().length() > 0 )
{
LOG.info( "deletePermGrants tenant={} roleName={} objName={} opName={} objId={}", getTenant(), permGrant.getRoleNm(), permGrant.getObjName(), permGrant.getOpName(), permGrant.getObjId() );
adminMgr.revokePermission( perm, new Role( permGrant.getRoleNm() ) );
}
else if ( permGrant.getUserId() != null && permGrant.getUserId().length() > 0 )
{
LOG.info( "deletePermGrants tenant={} userId={} objName={} opName={} objId={}", getTenant(), permGrant.getUserId(), permGrant.getObjName(), permGrant.getOpName(), permGrant.getObjId() );
adminMgr.revokePermission( perm, new User( permGrant.getUserId() ) );
}
else
{
String warning = "deletePermGrants called without user or role set in xml";
LOG.warn( warning );
}
}
catch ( SecurityException se )
{
LOG.warn( "deletePermGrants tenant={} roleName={} objName={} opName={} objId={} caught SecurityException={}" , getTenant(), permGrant.getRoleNm(), permGrant.getObjName(), permGrant.getOpName(), permGrant.getObjId(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addPolicies() throws BuildException
{
if( addpolicies == null )
{
return;
}
// Loop through the entityclass elements
for ( Addpwpolicy addpwpolicy : addpolicies )
{
List<PwPolicy> policies = addpwpolicy.getPolicies();
for ( PwPolicy policy : policies )
{
LOG.info( "addPolicies tenant={} name={}", getTenant(), policy.getName() );
try
{
policyMgr.add( policy );
}
catch ( SecurityException se )
{
LOG.warn( "addPolicies tenant={} name [{}] caught SecurityException={}", getTenant(), policy.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deletePolicies() throws BuildException
{
if( delpolicies == null )
{
return;
}
// Loop through the entityclass elements
for ( Delpwpolicy delpwpolicy : delpolicies )
{
List<PwPolicy> policies = delpwpolicy.getPolicies();
for ( PwPolicy policy : policies )
{
LOG.info( "deletePolicies tenant={} name={}", getTenant(), policy.getName() );
try
{
policyMgr.delete( policy );
}
catch ( SecurityException se )
{
LOG.warn( "deletePolicies tenant={} name [{}] caught SecurityException={}", getTenant(), policy.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addContainers() throws BuildException
{
if( addcontainers == null )
{
return;
}
// Loop through the entityclass elements
for ( Addcontainer addcontainer : addcontainers )
{
List<OrganizationalUnit> containers = addcontainer.getContainers();
for ( OrganizationalUnit ou : containers )
{
LOG.info( "addContainers tenant={} name={} description={}", getTenant(), ou.getName(), ou.getDescription() );
try
{
OrganizationalUnitP op = new OrganizationalUnitP();
// Set the tenant id onto the entity.
// Normally this info would be passed in via a manager constructor. Since these methods aren't implemented by a manager, we must do this here:
if( ! StringUtils.isEmpty( TENANT ) && ! TENANT.equals( "${tenant}" ) )
{
ou.setContextId( TENANT );
}
op.add( ou );
}
catch ( SecurityException se )
{
LOG.warn( "addContainers tenant={} name [{}] caught SecurityException={}", getTenant(), ou.getName(), se.getMessage() );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteContainers() throws BuildException
{
if( delcontainers == null )
{
return;
}
// Loop through the entityclass elements
for ( Delcontainer delcontainer : delcontainers )
{
List<OrganizationalUnit> containers = delcontainer.getContainers();
for ( OrganizationalUnit ou : containers )
{
LOG.info( "deleteContainers tenant={} name={}", getTenant(), ou.getName() );
try
{
OrganizationalUnitP op = new OrganizationalUnitP();
// Set the tenant id onto the entity.
// Normally this info would be passed in via a manager constructor. Since these methods aren't implemented by a manager, we must do this here:
if( ! StringUtils.isEmpty( TENANT ) && ! TENANT.equals( "${tenant}" ) )
{
ou.setContextId( TENANT );
}
op.delete( ou );
}
catch ( SecurityException se )
{
LOG.warn( "deleteContainers tenant={} name [{}] caught SecurityException={}", getTenant(), ou.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addSuffixes() throws BuildException
{
if( addsuffixes == null )
{
return;
}
// Loop through the entityclass elements
for ( Addsuffix addsuffix : addsuffixes )
{
List<Suffix> suffixes = addsuffix.getSuffixes();
for ( Suffix suffix : suffixes )
{
LOG.info( "addSuffixes tenant={} name={} description={}", getTenant(), suffix.getName(), suffix.getDescription() );
try
{
SuffixP sp = new SuffixP();
sp.add( suffix );
}
catch ( SecurityException se )
{
LOG.warn( "addSuffixes tenant={} name [{}] caught SecurityException={}", getTenant(), suffix.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteSuffixes() throws BuildException
{
if( delsuffixes == null )
{
return;
}
// Loop through the entityclass elements
for ( Delsuffix delsuffix : delsuffixes )
{
List<Suffix> suffixes = delsuffix.getSuffixes();
for ( Suffix suffix : suffixes )
{
LOG.info( "deleteSuffixes tenant={} name={}", getTenant(), suffix.getName() );
try
{
SuffixP sp = new SuffixP();
sp.delete( suffix );
}
catch ( SecurityException se )
{
LOG.warn( "deleteSuffixes tenant={} name={} caught SecurityException={}", getTenant(), suffix.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addOrgunits() throws BuildException
{
if( addorgunits == null )
{
return;
}
// Loop through the entityclass elements
for ( Addorgunit addorgunit : addorgunits )
{
List<OrgUnitAnt> ous = addorgunit.getOrgUnits();
for ( OrgUnitAnt ou : ous )
{
LOG.info( "addOrgunits tenant={} name={} typeName={} description={}",
getTenant(), ou.getName(), ou.getTypeName(), ou.getDescription() );
try
{
dAdminMgr.add( ou );
}
catch ( SecurityException se )
{
LOG.warn( "addOrgunits tenant={} name={} caught SecurityException={}", getTenant(), ou.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void delOrgunits() throws BuildException
{
if( delorgunits == null )
{
return;
}
// Loop through the entityclass elements
for ( Delorgunit delorgunit : delorgunits )
{
List<OrgUnitAnt> ous = delorgunit.getOrgUnits();
for ( OrgUnitAnt ou : ous )
{
LOG.info( "deleteOrgunits tenant={} name={} typeName={}", getTenant(), ou.getName(), ou.getTypeName() );
try
{
dAdminMgr.delete( ou );
}
catch ( SecurityException se )
{
LOG.warn( "deleteOrgunits tenant={} name={} caught SecurityException={}", getTenant(), ou.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addUserOrgunitInheritances() throws BuildException
{
if( adduserorgunitinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Adduserorgunitinheritance adduserorgunitinheritance : adduserorgunitinheritances )
{
List<Relationship> orgs = adduserorgunitinheritance.getRelationships();
for ( Relationship relationship : orgs )
{
LOG.info( "addUserOrgunitInheritances tenant={} parent={} child={}",
getTenant(), relationship.getParent(), relationship.getChild() );
try
{
dAdminMgr.addInheritance( new OrgUnit( relationship.getParent(), OrgUnit.Type.USER ),
new OrgUnit( relationship.getChild(), OrgUnit.Type.USER ) );
}
catch ( SecurityException se )
{
LOG.warn( "addUserOrgunitInheritances tenant={} parent={} child={} caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteUserOrgunitInheritances() throws BuildException
{
if( deluserorgunitinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Deluserorgunitinheritance deluserorgunitinheritance : deluserorgunitinheritances )
{
List<Relationship> orgs = deluserorgunitinheritance.getRelationships();
for ( Relationship relationship : orgs )
{
LOG.info( "deleteUserOrgunitInheritances tenant={} parent={} child={}" +
getTenant(), relationship.getParent(), relationship.getChild() );
try
{
dAdminMgr.deleteInheritance( new OrgUnit( relationship.getParent(), OrgUnit.Type.USER ),
new OrgUnit( relationship.getChild(), OrgUnit.Type.USER ) );
}
catch ( SecurityException se )
{
LOG.warn( "deleteUserOrgunitInheritances tenant={} parent={} child={} caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addPermOrgunitInheritances() throws BuildException
{
if( addpermorgunitinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Addpermorgunitinheritance addpermorgunitinheritance : addpermorgunitinheritances )
{
List<Relationship> orgs = addpermorgunitinheritance.getRelationships();
for ( Relationship relationship : orgs )
{
LOG.info( "addPermOrgunitInheritances tenant={} parent={} child={}",
getTenant(), relationship.getParent(), relationship.getChild() );
try
{
dAdminMgr.addInheritance( new OrgUnit( relationship.getParent(), OrgUnit.Type.PERM ),
new OrgUnit( relationship.getChild(), OrgUnit.Type.PERM ) );
}
catch ( SecurityException se )
{
LOG.warn( "addPermOrgunitInheritances tenant={} parent={} child={} caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deletePermOrgunitInheritances() throws BuildException
{
if( delpermorgunitinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Delpermorgunitinheritance delpermorgunitinheritance : delpermorgunitinheritances )
{
List<Relationship> orgs = delpermorgunitinheritance.getRelationships();
for ( Relationship relationship : orgs )
{
LOG.info( "deletePermOrgunitInheritances tenant={} parent={} child={}",
getTenant(), relationship.getParent(), relationship.getChild() );
try
{
dAdminMgr.deleteInheritance( new OrgUnit( relationship.getParent(), OrgUnit.Type.PERM ),
new OrgUnit( relationship.getChild(), OrgUnit.Type.PERM ) );
}
catch ( SecurityException se )
{
LOG.warn( "deletePermOrgunitInheritances tenant={} parent={} child={} caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addAdminRoles() throws BuildException
{
if( addadminroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Addadminrole addrole : addadminroles )
{
List<AdminRoleAnt> roles = addrole.getRoles();
for ( AdminRoleAnt role : roles )
{
LOG.info( "addAdminRoles tenant={} name={} description={}", getTenant(), role.getName(), role.getDescription() );
try
{
dAdminMgr.addRole( role );
}
catch ( SecurityException se )
{
LOG.warn( "addAdminRoles tenant={} name={} caught SecurityException={}", getTenant(), role.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteAdminRoles() throws BuildException
{
if( deladminroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Deladminrole delrole : deladminroles )
{
List<AdminRoleAnt> roles = delrole.getRoles();
for ( AdminRoleAnt role : roles )
{
LOG.info( "deleteAdminRoles tenant={} name={}", getTenant(), role.getName() );
try
{
dAdminMgr.deleteRole( role );
}
catch ( SecurityException se )
{
LOG.warn( "deleteAdminRoles tenant={} name={} caught SecurityException={}", getTenant(), role.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addAdminRoleInheritances() throws BuildException
{
if( addadminroleinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Addadminroleinheritance addadminroleinheritance : addadminroleinheritances )
{
List<Relationship> roles = addadminroleinheritance.getRelationships();
for ( Relationship relationship : roles )
{
LOG.info( "addAdminRoleInheritances tenant={} parent={} child={}",
getTenant(), relationship.getParent(), relationship.getChild() );
try
{
dAdminMgr.addInheritance( new AdminRole( relationship.getParent() ),
new AdminRole( relationship.getChild() ) );
}
catch ( SecurityException se )
{
LOG.warn( "addAdminRoleInheritances tenant={} parent={} child={} caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteAdminRoleInheritances() throws BuildException
{
if( deladminroleinheritances == null )
{
return;
}
// Loop through the entityclass elements
for ( Deladminroleinheritance deladminroleinheritance : deladminroleinheritances )
{
List<Relationship> roles = deladminroleinheritance.getRelationships();
for ( Relationship relationship : roles )
{
LOG.info( "deleteAdminRoleInheritances tenant={} parent={} child={}",
getTenant(), relationship.getParent(), relationship.getChild() );
try
{
dAdminMgr.deleteInheritance( new AdminRole( relationship.getParent() ),
new AdminRole( relationship.getChild() ) );
}
catch ( SecurityException se )
{
LOG.warn( "deleteAdminRoleInheritances tenant={} parent={} child={} caught SecurityException={}",
getTenant(), relationship.getParent(), relationship.getChild(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void addUserAdminRoles() throws BuildException
{
if( adduseradminroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Adduseradminrole adduserrole : adduseradminroles )
{
List<UserAdminRole> userroles = adduserrole.getUserRoles();
for ( UserAdminRole userRole : userroles )
{
LOG.info( "addUserAdminRoles tenant={} userid={} role name={}", getTenant(), userRole.getUserId(), userRole.getName() );
try
{
//AdminRole role = new AdminRole(userRole);
dAdminMgr.assignUser( userRole );
}
catch ( SecurityException se )
{
LOG.warn( "addUserAdminRoles tenant={} userId={} role name={} caught SecurityException={}",
getTenant(), userRole.getUserId(), userRole.getName(), se );
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void delUserAdminRoles() throws BuildException
{
if( deluseradminroles == null )
{
return;
}
// Loop through the entityclass elements
for ( Deluseradminrole deluserrole : deluseradminroles )
{
List<UserAdminRole> userroles = deluserrole.getUserRoles();
for ( UserAdminRole userRole : userroles )
{
LOG.info( "delUserAdminRoles tenant={} userid={} role name={}", getTenant(), userRole.getUserId(), userRole.getName() );
try
{
dAdminMgr.deassignUser( userRole );
}
catch ( SecurityException se )
{
LOG.warn( "delUserAdminRoles tenant={} userId={} role name={} caught SecurityException={}",
getTenant(), userRole.getUserId(), userRole.getName(), se );
}
}
}
}
/**
* Add a new configuration node and its associated property values into the directory.
*/
private void addConfig() throws BuildException
{
LOG.info( "addConfig" );
if( addconfig == null )
{
return;
}
// Loop through the entityclass elements
for ( Addconfig addcfg : addconfig )
{
Properties props = new Properties();
Configuration configuration = new Configuration();
try
{
List<ConfigAnt> cfgs = addcfg.getConfig();
for ( ConfigAnt cfg : cfgs )
{
String val = cfg.getProps();
int indx = val.indexOf( GlobalIds.PROP_SEP );
if ( indx >= 1 )
{
String name = val.substring( 0, indx );
String value = val.substring( indx + 1 );
// The config realm property is required on updconfig op and points to the existing node in ldap to update with these new props.
if( name.equalsIgnoreCase( GlobalIds.CONFIG_REALM ))
{
configuration.setName( value );
}
else if( name.equalsIgnoreCase( GlobalIds.CONFIG_UID_NUMBER ))
{
configuration.setUidNumber( value );
}
else if( name.equalsIgnoreCase( GlobalIds.CONFIG_GID_NUMBER ))
{
configuration.setGidNumber( value );
}
else
{
props.setProperty( name, value );
LOG.info( "addConfig name [{}] value [{}]", name, value );
}
}
}
configuration.addProperties( props );
LOG.info( "addConfig realm name [{}]", configuration.getName() );
LOG.info( "addConfig gid.number [{}]", configuration.getGidNumber() );
LOG.info( "addConfig uid.number [{}]", configuration.getUidNumber() );
cfgMgr.add( configuration );
}
catch ( SecurityException se )
{
if ( se.getErrorId() == GlobalErrIds.FT_CONFIG_ALREADY_EXISTS )
{
try
{
LOG.info( "addConfig realm name={} entry already exists, attempt to update", configuration.getName() );
cfgMgr.update( configuration );
LOG.info( "addConfig realm name={} update [{}] successful", configuration.getName(), configuration.getName() );
}
catch ( SecurityException se2 )
{
LOG.warn( "addConfig realm name={] update failed SecurityException={}", configuration.getName(), se2 );
}
}
else
{
LOG.warn( "addConfig realm name={} failed SecurityException={}", configuration.getName(), se );
}
}
}
}
/**
* Update existing configuration node with new values.
*/
private void updConfig() throws BuildException
{
LOG.info( "updateConfig" );
if( updconfig == null )
{
return;
}
// Loop through the entityclass elements
for ( Updconfig updcfg : updconfig )
{
Properties props = new Properties();
Configuration configuration = new Configuration();
String configNodeName = "";
List<ConfigAnt> cfgs = updcfg.getConfig();
for ( ConfigAnt cfg : cfgs )
{
LOG.info( "updateConfig" );
String val = cfg.getProps();
int indx = val.indexOf( GlobalIds.PROP_SEP );
if ( indx >= 1 )
{
String name = val.substring( 0, indx );
String value = val.substring( indx + 1 );
// The config realm property is required on updconfig op and points to the existing node in ldap to update with these new props.
if( name.equalsIgnoreCase( GlobalIds.CONFIG_REALM ))
{
configuration.setName( value );
}
else if( name.equalsIgnoreCase( GlobalIds.CONFIG_UID_NUMBER ))
{
configuration.setUidNumber( value );
}
else if( name.equalsIgnoreCase( GlobalIds.CONFIG_GID_NUMBER ))
{
configuration.setGidNumber( value );
}
else
{
props.setProperty( name, value );
LOG.info( "updateConfig name [{}] value [{}]", name, value );
}
}
}
// Can't go on w/out a name for the config node to update.
if ( StringUtils.isEmpty( configuration.getName() ))
{
LOG.warn( "updConfig realm name not specified, operation aborted." );
LOG.warn( "Add entry like this to input xml: <config props=\"config.realm:DEFAULT\"/>" );
}
else
{
configuration.addProperties( props );
LOG.info( "updConfig realm name [{}]", configuration.getName() );
LOG.info( "updConfig gid.number [{}]", configuration.getGidNumber() );
LOG.info( "updConfig uid.number [{}]", configuration.getUidNumber() );
try
{
cfgMgr.update( configuration );
}
catch ( SecurityException se )
{
LOG.warn( "updConfig realm name={} failed SecurityException={}", configNodeName, se );
LOG.warn( "Verify that config realm name={} exists", configNodeName);
}
}
}
}
/**
* @throws BuildException An error occurred while building
*/
private void deleteConfig() throws BuildException
{
if( delconfig == null )
{
return;
}
Properties props = new Properties();
String configNodeName = "";
// Loop through the entityclass elements
for ( Delconfig delcfg : delconfig )
{
try
{
List<ConfigAnt> cfgs = delcfg.getConfig();
for ( ConfigAnt cfg : cfgs )
{
String val = cfg.getProps();
int indx = val.indexOf( GlobalIds.PROP_SEP );
if ( indx >= 1 )
{
String name = val.substring( 0, indx );
String value = val.substring( indx + 1 );
props.setProperty( name, value );
}
}
configNodeName = props.getProperty( GlobalIds.CONFIG_REALM );
LOG.info( "delConfig realm name [{}]", configNodeName );
props.remove( GlobalIds.CONFIG_REALM );
cfgMgr.delete( configNodeName, props );
}
catch ( SecurityException se )
{
String warning = "deleteConfig [" + configNodeName + "] caught SecurityException=" + se;
LOG.warn( warning );
}
}
}
public static Properties getProperties( String inputString )
{
Properties props = new Properties();
if ( inputString != null && inputString.length() > 0 )
{
StringTokenizer maxTkn = new StringTokenizer( inputString, SEMICOLON );
if ( maxTkn.countTokens() > 0 )
{
while ( maxTkn.hasMoreTokens() )
{
String val = maxTkn.nextToken();
int indx = val.indexOf( GlobalIds.PROP_SEP );
if ( indx >= 1 )
{
String name = val.substring( 0, indx );
String value = val.substring( indx + 1 );
props.setProperty( name, value );
}
}
}
}
return props;
}
public List<AddpermOp> getAddpermOps()
{
return addpermOps;
}
public List<AddpermObj> getAddpermObjs()
{
return addpermObjs;
}
public List<Adduser> getAddusers()
{
return addusers;
}
public List<Adduserrole> getAdduserroles()
{
return adduserroles;
}
public List<Addrole> getAddroles()
{
return addroles;
}
public List<Addsdset> getAddsdsets()
{
return addsdsets;
}
public List<Addroleinheritance> getAddroleinheritances()
{
return addroleinheritances;
}
public List<AddpermGrant> getAddpermGrants()
{
return addpermGrants;
}
public List<Addgroup> getAddgroups()
{
return addgroups;
}
}