You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by cp...@apache.org on 2016/10/06 17:49:18 UTC
[01/43] directory-fortress-core git commit: changed constaints on
userrole to list
Repository: directory-fortress-core
Updated Branches:
refs/heads/master cb34ef224 -> 33b49fe5f
changed constaints on userrole to list
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/e3a74de4
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/e3a74de4
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/e3a74de4
Branch: refs/heads/master
Commit: e3a74de4a025b010b35723da7a7f8fbdaffbfa5e
Parents: b5886da
Author: clp207 <cl...@psu.edu>
Authored: Mon Feb 1 16:56:24 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/model/RoleConstraint.java | 3 +--
.../apache/directory/fortress/core/model/UserRole.java | 11 ++++++-----
.../directory/fortress/core/impl/ReviewMgrImplTest.java | 2 +-
3 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e3a74de4/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
index 5b76178..b893e4a 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -38,8 +38,7 @@ public class RoleConstraint {
public void setPaSetName(String paSetName) {
this.paSetName = paSetName;
- }
-
+ }
//BANK_USER$seq$0type$filter$ecomm.merchant.id$AccountId=12345&WithdrawLimit=500
public String getRawData(UserRole uRole){
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e3a74de4/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
index 11e4404..52d639d 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
@@ -21,7 +21,8 @@ package org.apache.directory.fortress.core.model;
import java.io.Serializable;
-import java.util.HashSet;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
import javax.xml.bind.annotation.XmlAccessType;
@@ -93,7 +94,7 @@ public class UserRole extends FortEntity implements Serializable, Constraint
@XmlElement( nillable = true )
private Set<String> parents;
@XmlElement( nillable = true )
- private Set<RoleConstraint> roleConstraints;
+ private List<RoleConstraint> roleConstraints;
/**
* Default constructor is used by internal Fortress classes.
@@ -644,15 +645,15 @@ public class UserRole extends FortEntity implements Serializable, Constraint
}
- public Set<RoleConstraint> getRoleConstraints() {
+ public List<RoleConstraint> getRoleConstraints() {
if(roleConstraints == null){
- roleConstraints = new HashSet<RoleConstraint>();
+ roleConstraints = new ArrayList<RoleConstraint>();
}
return roleConstraints;
}
- public void setRoleConstraints(Set<RoleConstraint> roleConstraints) {
+ public void setRoleConstraints(List<RoleConstraint> roleConstraints) {
this.roleConstraints = roleConstraints;
}
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e3a74de4/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
index b6371e5..d9a9c4d 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
@@ -1628,7 +1628,7 @@ public class ReviewMgrImplTest extends TestCase
if(ur.getName().equals(role.getName())){
uraFound = true;
- Set<RoleConstraint> rcs = ur.getRoleConstraints();
+ List<RoleConstraint> rcs = ur.getRoleConstraints();
for(RoleConstraint r : rcs){
if(r.getPaSetName().equals(rc.getPaSetName())){
urcFound = true;
[38/43] directory-fortress-core git commit: Merge branch 'master'
into feature/addPermAttrAndUserRoleConstraints
Posted by cp...@apache.org.
Merge branch 'master' into feature/addPermAttrAndUserRoleConstraints
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/e1d934e3
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/e1d934e3
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/e1d934e3
Branch: refs/heads/master
Commit: e1d934e3e01adc04ec30947fa4a3b685f30b5c1a
Parents: 4561ac4 1a7d04d
Author: clp207 <cl...@psu.edu>
Authored: Thu Sep 15 08:15:44 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu Sep 15 08:15:44 2016 -0400
----------------------------------------------------------------------
README-CONFIG.md | 5 +-
README-QUICKSTART-APACHEDS.md | 32 +--
README-QUICKSTART-SLAPD.md | 32 +--
README-TEN-MINUTE-GUIDE.md | 2 +-
README.md | 2 +-
config/fortress.properties.src | 2 +-
docker/run-tests.sh | 9 +
ldap/schema/fortress.schema | 5 +-
pom.xml | 25 +--
.../directory/fortress/core/GlobalIds.java | 5 +
.../directory/fortress/core/RestException.java | 2 +-
.../fortress/core/SecurityException.java | 5 +-
.../fortress/core/doc-files/apache-tomcat.html | 18 +-
.../fortress/core/impl/AdminMgrImpl.java | 2 -
.../directory/fortress/core/impl/GroupDAO.java | 4 +
.../fortress/core/impl/GroupMgrImpl.java | 61 +++++-
.../directory/fortress/core/impl/HierUtil.java | 86 --------
.../fortress/core/impl/OrgUnitDAO.java | 18 ++
.../directory/fortress/core/impl/PermDAO.java | 17 +-
.../fortress/core/impl/ReviewMgrImpl.java | 9 +-
.../directory/fortress/core/impl/RoleDAO.java | 2 +-
.../core/ldap/LdapConnectionProvider.java | 196 ++++++++++++-------
.../directory/fortress/core/ldap/LdapUtil.java | 175 ++++++++++++-----
.../fortress/core/model/AdminRole.java | 2 +-
.../core/model/AdminRoleRelationship.java | 2 +-
.../fortress/core/model/FortRequest.java | 2 +-
.../fortress/core/model/FortResponse.java | 2 +-
.../directory/fortress/core/model/Group.java | 81 +++++++-
.../directory/fortress/core/model/Hier.java | 2 +-
.../directory/fortress/core/model/OrgUnit.java | 2 +-
.../core/model/OrgUnitRelationship.java | 2 +-
.../fortress/core/model/PermGrant.java | 2 +-
.../directory/fortress/core/model/PermObj.java | 6 +-
.../fortress/core/model/Permission.java | 4 +-
.../directory/fortress/core/model/Props.java | 2 +-
.../directory/fortress/core/model/Role.java | 33 +++-
.../directory/fortress/core/model/RolePerm.java | 2 +-
.../fortress/core/model/RoleRelationship.java | 2 +-
.../directory/fortress/core/model/User.java | 6 +-
.../fortress/core/rest/AccessMgrRestImpl.java | 2 +-
.../fortress/core/rest/AdminMgrRestImpl.java | 2 +-
.../fortress/core/rest/AuditMgrRestImpl.java | 2 +-
.../fortress/core/rest/ConfigMgrRestImpl.java | 2 +-
.../core/rest/DelAccessMgrRestImpl.java | 2 +-
.../fortress/core/rest/DelAdminMgrRestImpl.java | 2 +-
.../core/rest/DelReviewMgrRestImpl.java | 2 +-
.../directory/fortress/core/rest/HttpIds.java | 2 +-
.../fortress/core/rest/PwPolicyMgrRestImpl.java | 2 +-
.../directory/fortress/core/rest/RestUtils.java | 11 +-
.../fortress/core/rest/ReviewMgrRestImpl.java | 2 +-
.../directory/fortress/core/rest/package.html | 2 +-
.../fortress/core/GroupMgrConsole.java | 25 ++-
52 files changed, 580 insertions(+), 344 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/ldap/schema/fortress.schema
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 623dbec,f2a7eeb..5788c61
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@@ -161,12 -158,9 +161,11 @@@ final class PermDAO extends LdapDataPro
* ** OpenAccessMgr PERMISSION STATICS
* ************************************************************************
*/
- private static final String TYPE = "ftType";
private static final String PERM_OBJ_OBJECT_CLASS_NAME = "ftObject";
private static final String PERM_OP_OBJECT_CLASS_NAME = "ftOperation";
-
+ private static final String PERMISSION_ATTRIBUTE_SET_OBJECT_CLASS_NAME = "ftAttributeSet";
+ private static final String PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME = "ftAttribute";
+
private static final String PERM_OBJ_OBJ_CLASS[] =
{
SchemaConstants.TOP_OC,
@@@ -198,37 -191,17 +197,37 @@@
SchemaConstants.DESCRIPTION_AT,
SchemaConstants.OU_AT,
GlobalIds.POBJ_ID,
- TYPE,
+ GlobalIds.TYPE,
ROLES,
USERS,
- GlobalIds.PROPS
+ GlobalIds.PROPS,
+ PERMISSION_ATTRIBUTE_SET
};
private static final String[] PERMISION_OBJ_ATRS =
{
- GlobalIds.FT_IID, GlobalIds.POBJ_NAME, SchemaConstants.DESCRIPTION_AT, SchemaConstants.OU_AT, TYPE,
+ GlobalIds.FT_IID, GlobalIds.POBJ_NAME, SchemaConstants.DESCRIPTION_AT, SchemaConstants.OU_AT, GlobalIds.TYPE,
GlobalIds.PROPS
};
+
+ private static final String[] PERMISION_ATTRIBUTE_SET_ATRS =
+ {
+ GlobalIds.FT_IID, SchemaConstants.DESCRIPTION_AT, SchemaConstants.CN_AT, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET_TYPE
+ };
+
+ private static final String[] PERMISION_ATTRIBUTE_ATRS =
+ {
+ GlobalIds.FT_IID,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE,
+ SchemaConstants.DESCRIPTION_AT,
+ SchemaConstants.CN_AT,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_SET,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES
+ };
public PermDAO(){
super();
@@@ -441,9 -414,9 +440,9 @@@
// type is optional:
if ( StringUtils.isNotEmpty( entity.getType() ) )
{
- entry.add( TYPE, entity.getType() );
+ entry.add( GlobalIds.TYPE, entity.getType() );
}
-
+
// These are multi-valued attributes, use the util function to load:
// These items are optional as well. The utility function will return quietly if no items are loaded into collection:
loadAttrs( entity.getRoles(), entry, ROLES );
@@@ -724,16 -482,8 +723,16 @@@
{
mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE, TYPE, entity.getType() ) );
+ ModificationOperation.REPLACE_ATTRIBUTE, GlobalIds.TYPE, entity.getType() ) );
}
+
+ if ( CollectionUtils.isNotEmpty( entity.getPaSets() ) )
+ {
+ for(String paSetName : entity.getPaSets() ){
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, PERMISSION_ATTRIBUTE_SET, paSetName ) );
+ }
+ }
// These are multi-valued attributes, use the util function to load:
loadAttrs( entity.getRoles(), mods, ROLES );
@@@ -1415,11 -1025,10 +1414,11 @@@
entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
entity.setRoles( getAttributeSet( le, ROLES ) );
entity.setUsers( getAttributeSet( le, USERS ) );
- entity.setType( getAttribute( le, TYPE ) );
+ entity.setType( getAttribute( le, GlobalIds.TYPE ) );
entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
- entity.addProperties( PropUtil.getProperties( getAttributes( le, GlobalIds.PROPS ) ) );
+ entity.addProperties( PropUtil.getProperties( getAttributes( le, GlobalIds.PROPS ) ) );
entity.setAdmin( isAdmin );
+ entity.setPaSets( getAttributeSet(le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET ) );
if ( le != null )
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/model/Permission.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e1d934e3/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
----------------------------------------------------------------------
[28/43] directory-fortress-core git commit: updated to allow many pa
sets on a permission
Posted by cp...@apache.org.
updated to allow many pa sets on a permission
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/d263fe1f
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/d263fe1f
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/d263fe1f
Branch: refs/heads/master
Commit: d263fe1fe2e0d84471ca9ec479dede1fc737c2ba
Parents: b79194a
Author: clp207 <cl...@psu.edu>
Authored: Sun Apr 3 09:22:27 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Sun Apr 3 09:22:27 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/impl/PermDAO.java | 19 ++++++-------
.../directory/fortress/core/impl/PermP.java | 6 +++--
.../fortress/core/impl/ReviewMgrImpl.java | 18 +++++++------
.../fortress/core/model/Permission.java | 28 +++++++++++++-------
4 files changed, 40 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d263fe1f/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index fdce53f..aef239d 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -423,16 +423,12 @@ final class PermDAO extends ApacheDsDataProvider
entry.add( TYPE, entity.getType() );
}
- if ( StringUtils.isNotEmpty( entity.getPaSetName() ) )
- {
- entry.add( PERMISSION_ATTRIBUTE_SET, entity.getPaSetName() );
- }
-
// These are multi-valued attributes, use the util function to load:
// These items are optional as well. The utility function will return quietly if no items are loaded into collection:
loadAttrs( entity.getRoles(), entry, ROLES );
loadAttrs( entity.getUsers(), entry, USERS );
-
+ loadAttrs( entity.getPaSets(), entry, PERMISSION_ATTRIBUTE_SET );
+
// props are optional as well:
//if the props is null don't try to load these attributes
if ( PropUtil.isNotEmpty( entity.getProperties() ) )
@@ -583,11 +579,12 @@ final class PermDAO extends ApacheDsDataProvider
ModificationOperation.REPLACE_ATTRIBUTE, TYPE, entity.getType() ) );
}
- if ( StringUtils.isNotEmpty( entity.getPaSetName() ) )
+ if ( CollectionUtils.isNotEmpty( entity.getPaSets() ) )
{
-
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE, PERMISSION_ATTRIBUTE_SET, entity.getPaSetName() ) );
+ for(String paSetName : entity.getPaSets() ){
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, PERMISSION_ATTRIBUTE_SET, paSetName ) );
+ }
}
// These are multi-valued attributes, use the util function to load:
@@ -1230,7 +1227,7 @@ final class PermDAO extends ApacheDsDataProvider
entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
entity.addProperties( PropUtil.getProperties( getAttributes( le, GlobalIds.PROPS ) ) );
entity.setAdmin( isAdmin );
- entity.setPaSetName( getAttribute(le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET ) );
+ entity.setPaSets( getAttributeSet(le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET ) );
if ( le != null )
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d263fe1f/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index c72c38b..ec36174 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -707,9 +707,11 @@ final class PermP
}
}
// Validate Perm Attr Set Name
- if( StringUtils.isNotEmpty( pOp.getPaSetName() ))
+ if( CollectionUtils.isNotEmpty( pOp.getPaSets() ))
{
- VUtil.permAttrSetName(pOp.getPaSetName());
+ for(String paSetName : pOp.getPaSets()){
+ VUtil.permAttrSetName( paSetName );
+ }
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d263fe1f/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index 58dc46c..7497576 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -435,15 +435,17 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
//look through all permissions in the role
List<Permission> permissions = this.rolePermissions(role, noInhertiance);
for(Permission perm : permissions){
- if(perm.getPaSetName() != null && !perm.getPaSetName().isEmpty()){
- if(!permAttributeSets.containsKey(perm.getPaSetName())){
- PermissionAttributeSet permAttributeSet = permP.read(new PermissionAttributeSet(perm.getPaSetName()));
- permAttributeSets.put(perm.getPaSetName(), permAttributeSet);
- }
- }
- }
+ if( CollectionUtils.isNotEmpty(perm.getPaSets() )){
+ for(String paSetName : perm.getPaSets()){
+ if(!permAttributeSets.containsKey(paSetName)){
+ PermissionAttributeSet permAttributeSet = permP.read(new PermissionAttributeSet(paSetName));
+ permAttributeSets.put(paSetName, permAttributeSet);
+ }
+ }
+ }
+ }
- return new ArrayList<PermissionAttributeSet>(permAttributeSets.values());
+ return new ArrayList<PermissionAttributeSet>(permAttributeSets.values());
}
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d263fe1f/src/main/java/org/apache/directory/fortress/core/model/Permission.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/Permission.java b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
index e96ba0d..803e113 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/Permission.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
@@ -22,6 +22,7 @@ package org.apache.directory.fortress.core.model;
import java.io.Serializable;
import java.util.Enumeration;
+import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -258,7 +259,7 @@ import org.apache.commons.lang.StringUtils;
"props",
"dn",
"admin",
- "paSetName"
+ "paSets"
})
public class Permission extends FortEntity implements Serializable
{
@@ -280,8 +281,8 @@ public class Permission extends FortEntity implements Serializable
@XmlElement(nillable = true)
private Set<String> roles;
@XmlElement(nillable = true)
- private Set<String> users;
- private String paSetName;
+ private Set<String> users;
+ private Set<String> paSets;
/**
* This constructor is commonly used to create Permission that is a target for authorization API.
@@ -830,13 +831,20 @@ public class Permission extends FortEntity implements Serializable
'}';
}
+ public Set<String> getPaSets() {
+ return paSets;
+ }
- public String getPaSetName() {
- return paSetName;
- }
-
+ public void setPaSets( Set<String> paSets ){
+ this.paSets = paSets;
+ }
+
+ public void setPaSetName(String paSet) {
+ if ( paSets == null )
+ {
+ paSets = new HashSet<String>();
+ }
- public void setPaSetName(String paSetName) {
- this.paSetName = paSetName;
- }
+ this.paSets.add( paSet );
+ }
}
[23/43] directory-fortress-core git commit: changed version
Posted by cp...@apache.org.
changed version
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/042b61d5
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/042b61d5
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/042b61d5
Branch: refs/heads/master
Commit: 042b61d57696ef3038ac7b57ad95f41e18355fbf
Parents: 4db8902
Author: clp207 <cl...@psu.edu>
Authored: Fri Mar 18 11:47:57 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:23 2016 -0400
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/042b61d5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d0ee04e..99d6524 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
<artifactId>fortress-core</artifactId>
<packaging>jar</packaging>
<name>Apache Fortress Core</name>
- <version>1.0-RC43-SNAPSHOT</version>
+ <version>1.0-RC42-SNAPSHOT</version>
<inceptionYear>2007</inceptionYear>
<description>
Apache Fortress is a standards-based Access Management SDK that implements ANSI RBAC INCITS 359.
[13/43] directory-fortress-core git commit: added basic permission
attribute creation and retrieval
Posted by cp...@apache.org.
added basic permission attribute creation and retrieval
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/51331f84
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/51331f84
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/51331f84
Branch: refs/heads/master
Commit: 51331f8440b19389d43d792f53f410c12f4ecd36
Parents: 2c69679
Author: clp207 <cl...@psu.edu>
Authored: Mon Jan 25 22:07:04 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 5 +
.../directory/fortress/core/GlobalErrIds.java | 5 +
.../directory/fortress/core/GlobalIds.java | 5 +
.../directory/fortress/core/ReviewMgr.java | 14 +-
.../fortress/core/impl/AdminMgrImpl.java | 12 ++
.../directory/fortress/core/impl/PermDAO.java | 81 +++++--
.../directory/fortress/core/impl/PermP.java | 8 +
.../fortress/core/impl/ReviewMgrImpl.java | 18 ++
.../fortress/core/model/ComparisonOperator.java | 48 +++++
.../fortress/core/model/ObjectFactory.java | 8 +
.../fortress/core/model/Permission.java | 34 ++-
.../core/model/PermissionAttribute.java | 210 +++++++++++++++++++
.../fortress/core/rest/AdminMgrRestImpl.java | 13 +-
.../fortress/core/rest/ReviewMgrRestImpl.java | 22 +-
14 files changed, 453 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index 2eb56c9..c81f1c6 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -22,6 +22,7 @@ package org.apache.directory.fortress.core;
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.Role;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
@@ -510,6 +511,10 @@ public interface AdminMgr extends Manageable
Permission addPermission( Permission perm )
throws SecurityException;
+
+ //TODO: fill the documentation in
+ PermissionAttribute addPermissionAttribute( PermissionAttribute permAttribute )
+ throws SecurityException;
/**
* This method will update permission operation pre-existing in target directory under
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index 363bb37..a0f6f7e 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -1655,4 +1655,9 @@ public final class GlobalErrIds
* The supplied group protocol name failed length check.
*/
public static final int GROUP_PROTOCOL_INVLD = 10313;
+
+ /**
+ * The supplied Permission Attribute could not be added to ldap server.
+ */
+ public static final int PERM_ATTR_ADD_FAILED = 10314;
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index 51bb710..4ca88fe 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@ -528,4 +528,9 @@ public final class GlobalIds
*/
public static final String ALL = "all";
public static final String NULL = "null";
+
+ /**
+ * The ftPA field contains attributes and associated metadata for permissions.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE = "ftPA";
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
index 0f73fc2..7205a86 100755
--- a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
@@ -20,17 +20,18 @@
package org.apache.directory.fortress.core;
+import java.util.List;
+import java.util.Set;
+
import org.apache.directory.fortress.core.model.OrgUnit;
-import org.apache.directory.fortress.core.model.Permission;
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.Role;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
-import java.util.List;
-import java.util.Set;
-
/**
* This interface prescribes the administrative review functions on already provisioned Fortress RBAC entities
@@ -439,7 +440,10 @@ public interface ReviewMgr extends Manageable
List<Permission> rolePermissions( Role role, boolean noInheritance )
throws SecurityException;
-
+ //TODO: add documentation
+ Set<PermissionAttribute> rolePermissionAttributes( Role role, boolean noInhertiance )
+ throws SecurityException;
+
/**
* This function returns the set of permissions a given user gets through his/her authorized
* roles. The function is valid if and only if the user is a member of the USERS data set.
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index 2326d2b..66ef1fa 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -34,6 +34,7 @@ import org.apache.directory.fortress.core.model.ConstraintUtil;
import org.apache.directory.fortress.core.model.Hier;
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.Relationship;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.SDSet;
@@ -365,6 +366,17 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
return permP.add( perm );
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PermissionAttribute addPermissionAttribute( PermissionAttribute permAttribute ) throws SecurityException
+ {
+ String methodName = "addPermissionAttribute";
+ assertContext( CLS_NM, methodName, permAttribute, GlobalErrIds.PERM_OPERATION_NULL );
+ setEntitySession( CLS_NM, methodName, permAttribute );
+ return permP.add( permAttribute );
+ }
/**
* {@inheritDoc}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 31b2f3a..67ed958 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -22,6 +22,7 @@ package org.apache.directory.fortress.core.impl;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -42,23 +43,24 @@ import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueEx
import org.apache.directory.api.ldap.model.exception.LdapNoSuchAttributeException;
import org.apache.directory.api.ldap.model.exception.LdapNoSuchObjectException;
import org.apache.directory.api.ldap.model.message.SearchScope;
+import org.apache.directory.fortress.core.CreateException;
+import org.apache.directory.fortress.core.FinderException;
+import org.apache.directory.fortress.core.GlobalErrIds;
+import org.apache.directory.fortress.core.GlobalIds;
+import org.apache.directory.fortress.core.RemoveException;
+import org.apache.directory.fortress.core.UpdateException;
+import org.apache.directory.fortress.core.ldap.ApacheDsDataProvider;
import org.apache.directory.fortress.core.model.AdminRole;
+import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.OrgUnit;
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.PropUtil;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
-import org.apache.directory.fortress.core.model.PropUtil;
import org.apache.directory.ldap.client.api.LdapConnection;
-import org.apache.directory.fortress.core.CreateException;
-import org.apache.directory.fortress.core.FinderException;
-import org.apache.directory.fortress.core.GlobalErrIds;
-import org.apache.directory.fortress.core.GlobalIds;
-import org.apache.directory.fortress.core.model.ObjectFactory;
-import org.apache.directory.fortress.core.RemoveException;
-import org.apache.directory.fortress.core.UpdateException;
-import org.apache.directory.fortress.core.ldap.ApacheDsDataProvider;
/**
@@ -182,6 +184,7 @@ final class PermDAO extends ApacheDsDataProvider
private static final String PERM_NAME = "ftPermName";
private static final String ROLES = "ftRoles";
private static final String USERS = "ftUsers";
+ private static final String PERMISSION_ATTRIBUTE = "ftPA";
private static final String[] PERMISSION_OP_ATRS =
{
GlobalIds.FT_IID,
@@ -194,7 +197,8 @@ final class PermDAO extends ApacheDsDataProvider
TYPE,
ROLES,
USERS,
- GlobalIds.PROPS
+ GlobalIds.PROPS,
+ PERMISSION_ATTRIBUTE
};
private static final String[] PERMISION_OBJ_ATRS =
@@ -202,8 +206,7 @@ final class PermDAO extends ApacheDsDataProvider
GlobalIds.FT_IID, GlobalIds.POBJ_NAME, SchemaConstants.DESCRIPTION_AT, SchemaConstants.OU_AT, TYPE,
GlobalIds.PROPS
};
-
-
+
/**
* @param entity
* @return
@@ -445,7 +448,39 @@ final class PermDAO extends ApacheDsDataProvider
return entity;
}
+
+ //TODO: add documentation
+ PermissionAttribute createPermissionAttribute( PermissionAttribute entity ) throws CreateException
+ {
+ LdapConnection ld = null;
+ String dn = getDn( new Permission(entity.getObjName(), entity.getOpName()) , entity.getContextId() );
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+ mods.add( new DefaultModification(
+ ModificationOperation.ADD_ATTRIBUTE, PERMISSION_ATTRIBUTE, entity.toFtPAString()) );
+ ld = getAdminConnection();
+ modify( ld, dn, mods, entity );
+
+ //TODO: make sure not adding same attribute twice...
+ }
+ catch ( LdapException e )
+ {
+ String error = "create perm attribute [" + entity.getObjName() + "] operation ["
+ + entity.getOpName() + "] name [" + entity.getAttributeName() + "] caught LdapException="
+ + e.getMessage();
+ throw new CreateException( GlobalErrIds.PERM_ATTR_ADD_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+
+ //TODO: need to do anything to returned entity?
+ return entity;
+ }
+
/**
* @param entity
* @return
@@ -1024,8 +1059,9 @@ final class PermDAO extends ApacheDsDataProvider
entity.setUsers( getAttributeSet( le, USERS ) );
entity.setType( getAttribute( le, TYPE ) );
entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
- entity.addProperties( PropUtil.getProperties( getAttributes( le, GlobalIds.PROPS ) ) );
+ entity.addProperties( PropUtil.getProperties( getAttributes( le, GlobalIds.PROPS ) ) );
entity.setAdmin( isAdmin );
+ entity.setAttributes( unloadPermissionAttributes(le) );
if ( le != null )
{
@@ -1058,7 +1094,26 @@ final class PermDAO extends ApacheDsDataProvider
return entity;
}
+ private Set<PermissionAttribute> unloadPermissionAttributes( Entry entry )
+ {
+ Set<PermissionAttribute> permAttributes = null;
+ List<String> ftPAs = getAttributes( entry, GlobalIds.FT_PERMISSION_ATTRIBUTE );
+
+ if ( ftPAs != null )
+ {
+ permAttributes = new HashSet<PermissionAttribute>();
+ for ( String raw : ftPAs )
+ {
+ PermissionAttribute permAttribute = new ObjectFactory().createPermissionAttribute();
+ permAttribute.load( raw );
+ permAttributes.add( permAttribute );
+ }
+ }
+
+ return permAttributes;
+ }
+
/**
* @param permission
* @return
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index d806b60..c1738c7 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -33,6 +33,7 @@ import org.apache.directory.fortress.core.model.AdminRole;
import org.apache.directory.fortress.core.model.OrgUnit;
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.Role;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
@@ -366,6 +367,13 @@ final class PermP
validate( entity, false );
return pDao.createOperation( entity );
}
+
+ //TODO: add documentation
+ PermissionAttribute add( PermissionAttribute entity ) throws SecurityException
+ {
+ //TODO: add validation
+ return pDao.createPermissionAttribute( entity );
+ }
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index 83dc671..12190c7 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -32,6 +32,7 @@ import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.model.OrgUnit;
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.Role;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
@@ -403,6 +404,23 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
checkAccess(CLS_NM, methodName);
return permP.search( role, noInheritance );
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Set<PermissionAttribute> rolePermissionAttributes( Role role, boolean noInhertiance )
+ throws SecurityException
+ {
+ Set<PermissionAttribute> permAttributes = new HashSet<PermissionAttribute>();
+
+ List<Permission> permissions = this.rolePermissions(role, noInhertiance);
+ for(Permission perm : permissions){
+ permAttributes.addAll(perm.getAttributes());
+ }
+
+ return permAttributes;
+ }
/**
* {@inheritDoc}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/model/ComparisonOperator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/ComparisonOperator.java b/src/main/java/org/apache/directory/fortress/core/model/ComparisonOperator.java
new file mode 100644
index 0000000..2cb88b4
--- /dev/null
+++ b/src/main/java/org/apache/directory/fortress/core/model/ComparisonOperator.java
@@ -0,0 +1,48 @@
+package org.apache.directory.fortress.core.model;
+
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+
+public enum ComparisonOperator {
+
+ EQUALS("eq"),
+ NOT_EQUALS("neq"),
+ GREATER_THAN("gt"),
+ GREATER_THAN_OR_EQUAL_TO("gte"),
+ LESS_THAN("lt"),
+ LESS_THAN_OR_EQUAL_TO("lte");
+
+ private final String name;
+ private static Map<String, ComparisonOperator> reverseLookup_ = new HashMap<String, ComparisonOperator>();
+
+ static
+ {
+ EnumSet<ComparisonOperator> es = EnumSet.allOf(ComparisonOperator.class);
+
+ for (ComparisonOperator co : es)
+ {
+ reverseLookup_.put(co.toString(), co);
+ }
+ }
+
+
+ private ComparisonOperator(String s) {
+ name = s;
+ }
+
+ public static ComparisonOperator fromName(String name)
+ {
+ if (name != null)
+ {
+ return reverseLookup_.get(name.trim());
+ }
+
+ return null;
+ }
+
+ public String toString() {
+ return this.name;
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java b/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
index 58294da..f98f9d6 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
@@ -586,4 +586,12 @@ public class ObjectFactory
{
return new Warning( id, msg, type, name );
}
+
+ /**
+ * Create an instance of {@link org.apache.directory.fortress.core.model.PermissionAttribute}
+ */
+ public PermissionAttribute createPermissionAttribute()
+ {
+ return new PermissionAttribute();
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/model/Permission.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/Permission.java b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
index 53e30da..4974627 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/Permission.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
@@ -20,10 +20,9 @@
package org.apache.directory.fortress.core.model;
-import org.apache.commons.lang.StringUtils;
-
import java.io.Serializable;
import java.util.Enumeration;
+import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -36,6 +35,8 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
+import org.apache.commons.lang.StringUtils;
+
/*
## OC2: Fortress Permission Structural Object Class
@@ -280,7 +281,8 @@ public class Permission extends FortEntity implements Serializable
private Set<String> roles;
@XmlElement(nillable = true)
private Set<String> users;
-
+ @XmlElement(nillable = true)
+ private Set<PermissionAttribute> attributes;
/**
* This constructor is commonly used to create Permission that is a target for authorization API.
@@ -674,6 +676,32 @@ public class Permission extends FortEntity implements Serializable
this.props = value;
}
+ /**
+ * Return the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
+ * attribute of ftPA entries on the 'ftOperation' object class.
+ *
+ * @return Set containing the roles which maps to 'ftRoles' attribute in 'ftOperation' object class.
+ */
+ public Set<PermissionAttribute> getAttributes()
+ {
+ if(this.attributes == null){
+ attributes = new HashSet<PermissionAttribute>();
+ }
+
+ return this.attributes;
+ }
+
+
+ /**
+ * Set the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
+ * attribute of ftPAs on the 'ftOperation' object class.
+ *
+ * @param attributes maps to 'ftPA' attribute in 'ftOperation' object class.
+ */
+ public void setAttributes( Set<PermissionAttribute> attributes )
+ {
+ this.attributes = attributes;
+ }
/**
* Add name/value pair to list of properties associated with Permission. These values are not constrained by Fortress.
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
new file mode 100644
index 0000000..a69d92f
--- /dev/null
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -0,0 +1,210 @@
+package org.apache.directory.fortress.core.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.commons.lang.StringUtils;
+
+//AccountId?dataType=int&required=true&validValues=SELF,ANY,int&comparator=equals&default=SELF
+
+@XmlRootElement(name = "ftPA")
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "permission", propOrder =
+ {
+ "opName",
+ "objName",
+ "required",
+ "operator",
+ "dataType",
+ "validValues",
+ "defaultValue"
+})
+public class PermissionAttribute extends FortEntity implements Serializable {
+
+ /** Default serialVersionUID */
+ private static final long serialVersionUID = 1L;
+
+ private static final String REQUIRED_PARAM_NAME = "required";
+ private static final String OPERATOR_PARAM_NAME = "operator";
+ private static final String DATA_TYPE_PARAM_NAME = "dataType";
+ private static final String VALID_VALUES_PARAM_NAME = "validValues";
+ private static final String DEFAULT_VALUE_PARAM_NAME = "defaultValue";
+
+ private String opName;
+ private String objName;
+ private String attributeName;
+ private Boolean required;
+ private ComparisonOperator operator;
+ //TODO: make this an enum?
+ private String dataType;
+ //TODO: should this be an enum?
+ private List<String> validValues;
+ private String defaultValue;
+
+ public PermissionAttribute(String objName, String opName )
+ {
+ this.objName = objName;
+ this.opName = opName;
+ }
+
+ public PermissionAttribute(){
+
+ }
+
+ public String toFtPAString(){
+ String ftPA = attributeName + "?";
+
+ List<String> qualifiers = new ArrayList<String>();
+
+ if(required != null){
+ qualifiers.add(REQUIRED_PARAM_NAME + "=" + String.valueOf(required));
+ }
+ if(operator != null){
+ qualifiers.add(OPERATOR_PARAM_NAME + "=" + operator);
+ }
+ if(dataType != null){
+ qualifiers.add(DATA_TYPE_PARAM_NAME + "=" + dataType);
+ }
+ if(validValues != null && validValues.size() > 0){
+ qualifiers.add(VALID_VALUES_PARAM_NAME + "=" + StringUtils.join(validValues, ","));
+ }
+ if(defaultValue != null){
+ qualifiers.add(DEFAULT_VALUE_PARAM_NAME + "=" + defaultValue);
+ }
+
+ ftPA += StringUtils.join(qualifiers, "&");
+
+ return ftPA;
+ }
+
+ public Boolean getRequired() {
+ return required;
+ }
+ public void setRequired(Boolean required) {
+ this.required = required;
+ }
+ public ComparisonOperator getOperator() {
+ return operator;
+ }
+ public void setOperator(ComparisonOperator operator) {
+ this.operator = operator;
+ }
+ public String getDataType() {
+ return dataType;
+ }
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
+ public List<String> getValidValues() {
+ return validValues;
+ }
+ public void setValidValues(List<String> validValues) {
+ this.validValues = validValues;
+ }
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+ public void setDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+ public String getOpName() {
+ return opName;
+ }
+ public void setOpName(String opName) {
+ this.opName = opName;
+ }
+ public String getObjName() {
+ return objName;
+ }
+ public void setObjName(String objName) {
+ this.objName = objName;
+ }
+ public String getAttributeName() {
+ return attributeName;
+ }
+ public void setAttributeName(String attributeName) {
+ this.attributeName = attributeName;
+ }
+
+ /**
+ * This method loads PermissionAttribute entity instance variables with data that was retrieved from the
+ * 'ftPA' attribute on the 'ftOperation' object class.
+ *
+ * @param szRawData contains a raw formatted String that maps to 'ftPA' attribute on 'ftOperation' object class
+ */
+ public void load( String szRawData )
+ {
+ if ( ( szRawData != null ) && ( szRawData.length() > 0 ) )
+ {
+ String[] data = StringUtils.split(szRawData, "?");
+ attributeName = data[0];
+
+ String[] parameters = data[1].split("&");
+ for (String param : parameters){
+ String[] paramSplit = param.split("=");
+ String name = paramSplit[0];
+ String val = paramSplit[1];
+
+ if(name.equals(REQUIRED_PARAM_NAME)){
+ required = Boolean.parseBoolean(val);
+ }
+ if(name.equals(OPERATOR_PARAM_NAME)){
+ operator = ComparisonOperator.fromName(val);
+ }
+ if(name.equals(DATA_TYPE_PARAM_NAME)){
+ dataType = val;
+ }
+ if(name.equals(VALID_VALUES_PARAM_NAME)){
+ validValues = Arrays.asList(val.split(","));
+ }
+ if(name.equals(DEFAULT_VALUE_PARAM_NAME)){
+ defaultValue = val;
+ }
+
+ }
+ }
+ }
+
+ /**
+ * Matches the objName, opName and attributeName from two Permission entities.
+ *
+ * @param o contains a PermissionAttribute entity.
+ * @return boolean indicating both PermissionAttributes contain matching objName, opName, and attributeName attributes.
+ */
+ @Override
+ public boolean equals(Object o)
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ PermissionAttribute that = ( PermissionAttribute ) o;
+
+ if ( objName != null ? !objName.equalsIgnoreCase( that.objName ) : that.objName != null )
+ {
+ return false;
+ }
+ if ( opName != null ? !opName.equalsIgnoreCase( that.opName ) : that.opName != null )
+ {
+ return false;
+ }
+ if ( attributeName != null ? !attributeName.equalsIgnoreCase( that.attributeName ) : that.attributeName != null )
+ {
+ return false;
+ }
+
+ return true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
index f22f6f5..94bb53e 100644
--- a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
@@ -21,19 +21,20 @@ package org.apache.directory.fortress.core.rest;
import org.apache.directory.fortress.core.AdminMgr;
-import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.GlobalErrIds;
+import org.apache.directory.fortress.core.SecurityException;
+import org.apache.directory.fortress.core.impl.Manageable;
import org.apache.directory.fortress.core.model.FortRequest;
import org.apache.directory.fortress.core.model.FortResponse;
import org.apache.directory.fortress.core.model.PermGrant;
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.Role;
import org.apache.directory.fortress.core.model.RoleRelationship;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
-import org.apache.directory.fortress.core.impl.Manageable;
import org.apache.directory.fortress.core.util.VUtil;
@@ -1239,4 +1240,12 @@ public final class AdminMgrRestImpl extends Manageable implements AdminMgr
}
return retSet;
}
+
+
+ @Override
+ public PermissionAttribute addPermissionAttribute(
+ PermissionAttribute permAttribute) throws SecurityException {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/51331f84/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
index 0e7bfd5..77d8c01 100755
--- a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
@@ -19,26 +19,27 @@
*/
package org.apache.directory.fortress.core.rest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.ReviewMgr;
import org.apache.directory.fortress.core.SecurityException;
+import org.apache.directory.fortress.core.impl.Manageable;
import org.apache.directory.fortress.core.model.FortRequest;
import org.apache.directory.fortress.core.model.FortResponse;
-import org.apache.directory.fortress.core.impl.Manageable;
import org.apache.directory.fortress.core.model.OrgUnit;
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.Role;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
import org.apache.directory.fortress.core.util.VUtil;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
/**
* This class performs administrative review functions on already provisioned Fortress RBAC entities using HTTP access to En Masse REST server.
* These APIs map directly to similar named APIs specified by ANSI and NIST RBAC models.
@@ -759,7 +760,13 @@ public class ReviewMgrRestImpl extends Manageable implements ReviewMgr
return retPerms;
}
-
+ @Override
+ public Set<PermissionAttribute> rolePermissionAttributes(Role role,
+ boolean noInhertiance) throws SecurityException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
/**
* {@inheritDoc}
*/
@@ -1245,4 +1252,5 @@ public class ReviewMgrRestImpl extends Manageable implements ReviewMgr
}
return retSet.getCardinality();
}
+
}
\ No newline at end of file
[29/43] directory-fortress-core git commit: Merge branch 'master'
into feature/addPermAttrAndUserRoleConstraints
Posted by cp...@apache.org.
Merge branch 'master' into feature/addPermAttrAndUserRoleConstraints
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/6e9a7ddb
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/6e9a7ddb
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/6e9a7ddb
Branch: refs/heads/master
Commit: 6e9a7ddb31ca596907a38e0f1af1b0092e5d695f
Parents: d263fe1 2431eb8
Author: clp207 <cl...@psu.edu>
Authored: Thu May 5 12:45:13 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu May 5 12:45:13 2016 -0400
----------------------------------------------------------------------
README-CONFIG.md | 4 +-
README-QUICKSTART-APACHEDS.md | 98 +-
README-QUICKSTART-SLAPD.md | 127 +-
README-TEN-MINUTE-GUIDE.md | 5 +-
README.md | 3 +-
build-config.xml | 777 +++++++++
build.properties.example | 4 +-
build.xml | 1467 ----------------
config/fortress.properties.src | 6 +-
getIvy.xml | 33 -
ivy.xml | 80 -
ldap/schema/fortress.schema | 95 +-
ldap/setup/DelegatedAdminManagerLoad.xml | 2 +
pom.xml | 247 +--
.../fortress/core/AccelMgrFactory.java | 12 +-
.../fortress/core/AccessMgrFactory.java | 16 +-
.../fortress/core/AdminMgrFactory.java | 17 +-
.../fortress/core/AuditMgrFactory.java | 19 +-
.../fortress/core/ConfigMgrFactory.java | 19 +-
.../fortress/core/DelAccessMgrFactory.java | 19 +-
.../fortress/core/DelAdminMgrFactory.java | 17 +-
.../fortress/core/DelReviewMgrFactory.java | 16 +-
.../directory/fortress/core/GlobalIds.java | 64 +-
.../fortress/core/GroupMgrFactory.java | 15 +-
.../fortress/core/PwPolicyMgrFactory.java | 19 +-
.../directory/fortress/core/ReviewMgr.java | 2 +-
.../fortress/core/ReviewMgrFactory.java | 17 +-
.../fortress/core/ant/FortressAntTask.java | 38 +-
.../core/cli/CommandLineInterpreter.java | 1 +
.../fortress/core/impl/AccelMgrImpl.java | 3 +-
.../fortress/core/impl/AcceleratorDAO.java | 19 +-
.../fortress/core/impl/AccessMgrImpl.java | 34 +-
.../fortress/core/impl/AdminMgrImpl.java | 30 +-
.../fortress/core/impl/AdminRoleDAO.java | 4 +-
.../fortress/core/impl/AdminRoleP.java | 21 +-
.../directory/fortress/core/impl/AuditDAO.java | 37 +-
.../directory/fortress/core/impl/AuditP.java | 3 +-
.../directory/fortress/core/impl/ConfigDAO.java | 23 +-
.../fortress/core/impl/ConfigMgrImpl.java | 6 +-
.../fortress/core/impl/DSDChecker.java | 16 +-
.../fortress/core/impl/DelAccessMgrImpl.java | 28 +-
.../fortress/core/impl/DelAdminMgrImpl.java | 61 +-
.../fortress/core/impl/DelReviewMgrImpl.java | 17 +-
.../directory/fortress/core/impl/GroupDAO.java | 60 +-
.../fortress/core/impl/GroupMgrImpl.java | 6 +-
.../directory/fortress/core/impl/GroupP.java | 19 +-
.../fortress/core/impl/OrgUnitDAO.java | 25 +-
.../directory/fortress/core/impl/OrgUnitP.java | 23 +-
.../core/impl/OrganizationalUnitDAO.java | 9 +-
.../directory/fortress/core/impl/PermDAO.java | 27 +-
.../directory/fortress/core/impl/PermP.java | 6 +-
.../directory/fortress/core/impl/PolicyDAO.java | 11 +-
.../directory/fortress/core/impl/PolicyP.java | 17 +-
.../directory/fortress/core/impl/PsoUtil.java | 47 +-
.../fortress/core/impl/PwPolicyMgrImpl.java | 15 +-
.../fortress/core/impl/ReviewMgrImpl.java | 25 +-
.../directory/fortress/core/impl/RoleDAO.java | 19 +-
.../directory/fortress/core/impl/RoleP.java | 3 +-
.../directory/fortress/core/impl/RoleUtil.java | 55 +-
.../directory/fortress/core/impl/SDUtil.java | 76 +-
.../directory/fortress/core/impl/SdDAO.java | 15 +-
.../directory/fortress/core/impl/SdP.java | 3 +-
.../directory/fortress/core/impl/SuffixDAO.java | 11 +-
.../directory/fortress/core/impl/UserDAO.java | 66 +-
.../directory/fortress/core/impl/UserP.java | 18 +-
.../directory/fortress/core/impl/UsoUtil.java | 45 +-
.../core/ldap/ApacheDsDataProvider.java | 1643 ------------------
.../core/ldap/LdapConnectionProvider.java | 363 ++++
.../fortress/core/ldap/LdapDataProvider.java | 1336 ++++++++++++++
.../directory/fortress/core/ldap/LdapUtil.java | 57 +
.../directory/fortress/core/model/AuthZ.java | 8 +-
.../directory/fortress/core/model/Bind.java | 8 +-
.../fortress/core/model/ConstraintUtil.java | 29 +-
.../directory/fortress/core/model/PropUtil.java | 7 +-
.../fortress/core/model/UserAdminRole.java | 26 +-
.../directory/fortress/core/model/UserRole.java | 21 +-
.../directory/fortress/core/overview.html | 2 +-
.../fortress/core/rest/AccessMgrRestImpl.java | 34 +-
.../fortress/core/rest/AdminMgrRestImpl.java | 78 +-
.../fortress/core/rest/AuditMgrRestImpl.java | 20 +-
.../fortress/core/rest/ConfigMgrRestImpl.java | 16 +-
.../core/rest/DelAccessMgrRestImpl.java | 38 +-
.../fortress/core/rest/DelAdminMgrRestImpl.java | 56 +-
.../core/rest/DelReviewMgrRestImpl.java | 12 +-
.../fortress/core/rest/PwPolicyMgrRestImpl.java | 20 +-
.../directory/fortress/core/rest/RestUtils.java | 92 +-
.../fortress/core/rest/ReviewMgrRestImpl.java | 76 +-
.../directory/fortress/core/util/Config.java | 445 +++--
.../directory/fortress/core/util/RegExUtil.java | 28 +-
.../directory/fortress/core/util/VUtil.java | 31 +-
.../fortress/core/util/cache/CacheMgr.java | 56 +-
.../fortress/core/util/crypto/EncryptUtil.java | 29 +-
src/test/build.xml | 5 +-
.../fortress/core/AdminMgrConsole.java | 28 +-
.../fortress/core/EncryptMgrConsole.java | 4 +-
.../fortress/core/FortressConsole.java | 1 +
.../core/example/ExampleAdminMgrFactory.java | 4 +-
.../fortress/core/example/ExampleDAO.java | 30 +-
.../fortress/core/impl/FortressJUnitTest.java | 20 +-
.../core/impl/apacheds/AdminManagerTest.java | 4 +-
100 files changed, 4341 insertions(+), 4428 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/ldap/schema/fortress.schema
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/ldap/setup/DelegatedAdminManagerLoad.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index f6655c7,fee3111..8994761
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@@ -530,22 -477,7 +477,27 @@@ public final class GlobalId
public static final String NULL = "null";
/**
+ * The ftPA field contains attributes and associated metadata for permissions.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE = "ftPA";
+
+ /**
+ * The ftPASet field contains the name of the ftPermissionAttributeSet for a permission
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_SET = "ftPASet";
+
+ /**
+ * Attribute name for storing Fortress permission attribute set object names.
+ */
+ public static final String PERMISSION_ATTRIBUTE_SET_NAME = "ftAttributeSet";
+
+ /**
+ * Attribute name for storing default operator of a PA set
+ */
+ public static final String FT_PA_SET_DEFAULT_OPERATOR = "ftPADefaultOperator";
++
++ /**
+ * When this property is set to true in fortress.properties, the userPassword field on newly created users will not be created.
+ */
+ public static final String USER_CREATION_PASSWORD_FIELD = "user.creation.field.password.disable";
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index aef239d,8b3e594..cb0c5cb
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@@ -48,18 -48,17 +48,29 @@@ import org.apache.directory.fortress.co
import org.apache.directory.fortress.core.GlobalIds;
import org.apache.directory.fortress.core.RemoveException;
import org.apache.directory.fortress.core.UpdateException;
++<<<<<<< HEAD
+import org.apache.directory.fortress.core.ldap.ApacheDsDataProvider;
++=======
+ import org.apache.directory.fortress.core.ldap.LdapDataProvider;
++>>>>>>> master
import org.apache.directory.fortress.core.model.AdminRole;
import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.OrgUnit;
import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
++<<<<<<< HEAD
+import org.apache.directory.fortress.core.model.PermissionAttribute;
+import org.apache.directory.fortress.core.model.PermissionAttributeSet;
++=======
++>>>>>>> master
import org.apache.directory.fortress.core.model.PropUtil;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
++<<<<<<< HEAD
++=======
+ import org.apache.directory.fortress.core.util.Config;
++>>>>>>> master
import org.apache.directory.ldap.client.api.LdapConnection;
@@@ -207,11 -203,10 +218,15 @@@ final class PermDAO extends LdapDataPro
GlobalIds.FT_IID, GlobalIds.POBJ_NAME, SchemaConstants.DESCRIPTION_AT, SchemaConstants.OU_AT, TYPE,
GlobalIds.PROPS
};
+
+ private static final String[] PERMISION_ATTRIBUTE_SET_ATRS =
+ {
+ GlobalIds.FT_IID, GlobalIds.FT_PERMISSION_ATTRIBUTE, SchemaConstants.DESCRIPTION_AT, SchemaConstants.CN_AT
+ };
+
+ public PermDAO(){
+ super();
+ }
/**
* @param entity
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/model/UserRole.java
index 52d639d,27c0d70..f1034d8
--- a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
@@@ -155,59 -152,51 +155,59 @@@ public class UserRole extends FortEntit
{
if ( ( szRawData != null ) && ( szRawData.length() > 0 ) )
{
- String[] tokens = StringUtils.splitPreserveAllTokens( szRawData, GlobalIds.DELIMITER );
+ String[] tokens = StringUtils.splitPreserveAllTokens( szRawData, Config.getInstance().getDelimiter() );
- for ( int i = 0; i < tokens.length; i++ )
- {
- if ( StringUtils.isNotEmpty( tokens[i] ) )
- {
- switch ( i )
- {
- case 0:
- name = tokens[i];
- parents = parentUtil.getParentsCB( name.toUpperCase(), contextId );
- break;
-
- case 1:
- timeout = Integer.parseInt( tokens[i] );
- break;
-
- case 2:
- beginTime = tokens[i];
- break;
-
- case 3:
- endTime = tokens[i];
- break;
-
- case 4:
- beginDate = tokens[i];
- break;
-
- case 5:
- endDate = tokens[i];
- break;
-
- case 6:
- beginLockDate = tokens[i];
- break;
-
- case 7:
- endLockDate = tokens[i];
- break;
-
- case 8:
- dayMask = tokens[i];
- break;
- }
- }
+
+ //newer style constaint type
+ if(tokens[1].equals(RoleConstraint.RC_TYPE_NAME)){
+ RoleConstraint rc = new RoleConstraint(tokens[4], RoleConstraintType.valueOf(tokens[2]), tokens[3]);
+ this.getRoleConstraints().add(rc);
+ }
+ else{
+ for ( int i = 0; i < tokens.length; i++ )
+ {
+ if ( StringUtils.isNotEmpty( tokens[i] ) )
+ {
+ switch ( i )
+ {
+ case 0:
+ name = tokens[i];
+ parents = parentUtil.getParentsCB( name.toUpperCase(), contextId );
+ break;
+
+ case 1:
+ timeout = Integer.parseInt( tokens[i] );
+ break;
+
+ case 2:
+ beginTime = tokens[i];
+ break;
+
+ case 3:
+ endTime = tokens[i];
+ break;
+
+ case 4:
+ beginDate = tokens[i];
+ break;
+
+ case 5:
+ endDate = tokens[i];
+ break;
+
+ case 6:
+ beginLockDate = tokens[i];
+ break;
+
+ case 7:
+ endLockDate = tokens[i];
+ break;
+
+ case 8:
+ dayMask = tokens[i];
+ break;
+ }
+ }
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6e9a7ddb/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
----------------------------------------------------------------------
diff --cc src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
index fd26012,c590b68..5b692ec
--- a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
@@@ -23,7 -23,7 +23,11 @@@ import junit.framework.Test
import junit.framework.TestCase;
import junit.framework.TestSuite;
++<<<<<<< HEAD
+import org.apache.directory.fortress.core.GlobalIds;
++=======
+ import org.apache.directory.fortress.core.util.Config;
++>>>>>>> master
/**
* This JUnit test class drives all of the Fortress Administration APIs contained within {@link AdminMgrImplTest},
[10/43] directory-fortress-core git commit: added validation checks
on pasetname and unit tests that test bad names being added to perm and
roleconstraints
Posted by cp...@apache.org.
added validation checks on pasetname and unit tests that test bad names being added to perm and roleconstraints
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/074fa2a5
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/074fa2a5
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/074fa2a5
Branch: refs/heads/master
Commit: 074fa2a559a255466a429260e3b385814abf0b76
Parents: 9364604
Author: clp207 <cl...@psu.edu>
Authored: Mon Feb 1 08:51:51 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/GlobalErrIds.java | 15 ++-
.../directory/fortress/core/impl/PermP.java | 5 +
.../directory/fortress/core/impl/UserP.java | 29 +++++-
.../directory/fortress/core/util/VUtil.java | 28 ++++-
.../fortress/core/impl/AdminMgrImplTest.java | 103 +++++++++++++------
.../fortress/core/impl/PermTestData.java | 1 +
.../fortress/core/impl/URATestData.java | 7 ++
7 files changed, 155 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index 93ecb29..cb56ac5 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -1056,7 +1056,20 @@ public final class GlobalErrIds
*/
public static final int DSD_VALIDATION_FAILED = 5097;
-
+ /**
+ * Role Constraint Errors
+ */
+
+ /**
+ * The validation for Role Constraint type failed.
+ */
+ public static final int ROLE_CONSTRAINT_TYPE_NULL = 5100;
+ /**
+ * The validation for Role Constraint value failed.
+ */
+ public static final int ROLE_CONSTRAINT_VALUE_NULL = 5101;
+
+
/**
* 6000's - LDAP Suffix and Container Entities
*/
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index 871ffbf..3e5a7c7 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -687,5 +687,10 @@ final class PermP
up.read( user, false );
}
}
+ // Validate Perm Attr Set Name
+ if( StringUtils.isNotEmpty( pOp.getPaSetName() ))
+ {
+ VUtil.permAttrSetName(pOp.getPaSetName());
+ }
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
index dfe7b3c..44ce0b4 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
@@ -638,8 +638,8 @@ final class UserP
//TODO: add documentation
void assign( UserRole uRole, RoleConstraint roleConstraint ) throws SecurityException
- {
- //TODO: validate role constraint points to actual ftAttributeSet?
+ {
+ validate( roleConstraint );
uDao.assign( uRole, roleConstraint );
}
@@ -744,6 +744,31 @@ final class UserP
throw new ValidationException( GlobalErrIds.ROLE_NM_NULL, CLS_NM + ".validate name is NULL" );
}
}
+
+ /**
+ * Ensure that the passed in role constraint is valid
+ *
+ * @param RoleConstaint
+ * @throws ValidationException
+ */
+ private void validate( RoleConstraint rc) throws ValidationException
+ {
+ if( StringUtils.isEmpty( rc.getPaSetName() ))
+ {
+ throw new ValidationException( GlobalErrIds.PERM_ATTRIBUTE_SET_NM_NULL, CLS_NM + ".validate pa set name is NULL" );
+ }
+
+ VUtil.permAttrSetName(rc.getPaSetName());
+
+ if ( rc.getConstraintType() == null )
+ {
+ throw new ValidationException( GlobalErrIds.ROLE_CONSTRAINT_TYPE_NULL, CLS_NM + ".validate type is NULL" );
+ }
+ if( StringUtils.isEmpty( rc.getValue() ))
+ {
+ throw new ValidationException( GlobalErrIds.ROLE_CONSTRAINT_VALUE_NULL, CLS_NM + ".validate value is NULL" );
+ }
+ }
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/util/VUtil.java b/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
index 6dbcd66..c995f80 100755
--- a/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
@@ -31,11 +31,17 @@ import java.util.Properties;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.directory.fortress.core.*;
+import org.apache.directory.fortress.core.CfgException;
+import org.apache.directory.fortress.core.GlobalErrIds;
+import org.apache.directory.fortress.core.GlobalIds;
+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.ValidationException;
import org.apache.directory.fortress.core.model.Constraint;
import org.apache.directory.fortress.core.model.ConstraintValidator;
import org.apache.directory.fortress.core.model.ObjectFactory;
+import org.apache.directory.fortress.core.model.PermissionAttributeSet;
import org.apache.directory.fortress.core.model.PropUtil;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.UserRole;
@@ -657,4 +663,24 @@ public final class VUtil implements ConstraintValidator
}
return validators;
}
+
+ /**
+ * Checks the Permission Attribute Set exists
+ *
+ * @param value Name of the Permission Attribute Set
+ * @throws ValidationException
+ */
+ public static void permAttrSetName( String value ) throws ValidationException
+ {
+ try{
+ ReviewMgr reviewMgr = ReviewMgrFactory.createInstance();
+ PermissionAttributeSet paSet = reviewMgr.readPermAttributeSet(new PermissionAttributeSet(value));
+ }
+ catch(Exception e){
+ String error = "permissionAttributeSet - not found with name [" + value + "]";
+ throw new ValidationException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, error );
+ }
+
+ RegExUtil.safeText( value );
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
index 7ba2186..5a3ae9d 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
@@ -1893,51 +1893,63 @@ public class AdminMgrImplTest extends TestCase
public void testAddPASetToPermission()
{
- addPASetToPermission( "ADD-PASET-TO-POP TOB_1 TOP_1", PermTestData.TPA_SET_1_NAME, "TOB1_1", PermTestData.OPS_TOP1_UPD[0] );
+ addValidPASetToPermission( "ADD-PASET-TO-POP-VALID TOB_1 TOP_1", PermTestData.TPA_SET_1_NAME, "TOB1_1", PermTestData.OPS_TOP1_UPD[0] );
+ addInvalidPASetToPermission( "ADD-PASET-TO-POP-INVALID TOB_1 TOP_1", PermTestData.TPA_SET_NOT_EXIST_NAME, "TOB1_1", PermTestData.OPS_TOP1_UPD[0] );
}
-
- public static void addPASetToPermission( String msg, String paSetName, String obj, String[] op )
- {
- LogUtil.logIt(msg);
- try
- {
- AdminMgr adminMgr = AdminMgrFactory.createInstance( TestUtils.getContext() );
- Permission pop = PermTestData.getOp( obj, op );
- pop.setPaSetName(paSetName);
+ public static void addInvalidPASetToPermission( String msg, String paSetName, String obj, String[] op )
+ {
+ try{
+ addPASetToPermission(msg, paSetName, obj, op);
- adminMgr.updatePermission(pop);
- LOG.debug( "addPASetToPermission name [" + paSetName + "] successful" );
+ String message = "addInvalidPASetToPermission name [" + paSetName + "] was successfull, when should ahve failed.";
+ LOG.error( message );
+ fail( message );
}
catch ( SecurityException ex )
{
- LOG.error( "addPASetToPermission name [" + paSetName
+ LOG.info("Caught exception adding invalid tpa set name " + paSetName);
+ }
+ }
+
+ public static void addValidPASetToPermission( String msg, String paSetName, String obj, String[] op )
+ {
+ try{
+ addPASetToPermission(msg, paSetName, obj, op);
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.error( "addValidPASetToPermission name [" + paSetName
+ "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
fail( ex.getMessage() );
}
}
+ public static void addPASetToPermission( String msg, String paSetName, String obj, String[] op ) throws SecurityException
+ {
+ LogUtil.logIt(msg);
+
+ AdminMgr adminMgr = AdminMgrFactory.createInstance( TestUtils.getContext() );
+
+ Permission pop = PermTestData.getOp( obj, op );
+ pop.setPaSetName(paSetName);
+
+ adminMgr.updatePermission(pop);
+ LOG.debug( "addPASetToPermission name [" + paSetName + "] successful" );
+ }
+
public void testAddUserRoleConstraint() throws SecurityException
{
- assignUserRoleConstraint( "ASGN-URC TU1 TR1", UserTestData.USERS_TU1[0], RoleTestData.ROLES_TR1[1], URATestData.getRC(URATestData.URC_T1) );
+ assignValidUserRoleConstraint( "ASGN-URC-VALID TU1 TR1", UserTestData.USERS_TU1[0], RoleTestData.ROLES_TR1[1], URATestData.getRC(URATestData.URC_T1) );
+
+ assignInvalidUserRoleConstraint( "ASGN-URC-INVALID TU1 TR1", UserTestData.USERS_TU1[0], RoleTestData.ROLES_TR1[1], URATestData.getRC(URATestData.URC_T1_INVALID) );
}
- public static void assignUserRoleConstraint( String msg, String[] usr, String[] rle, RoleConstraint rc )
+ public static void assignValidUserRoleConstraint( String msg, String[] usr, String[] rle, RoleConstraint rc )
{
- LogUtil.logIt( msg );
- try
- {
- AdminMgr adminMgr = getManagedAdminMgr();
- ReviewMgr reviewMgr = ReviewMgrImplTest.getManagedReviewMgr();
-
- User user = UserTestData.getUser( usr );
- Role role = RoleTestData.getRole( rle );
-
- adminMgr.addRoleConstraint(new UserRole(user.getUserId(), role.getName()), rc);
-
- LOG.debug("assignUserRoleConstraint user [" + user.getUserId() + "] role [" + role.getName() + "] " +
- " rcvalue [" + rc.getValue() + "]");
- }
+ try{
+ assignUserRoleConstraint(msg, usr, rle, rc);
+ }
catch ( SecurityException ex )
{
LOG.error(
@@ -1945,6 +1957,39 @@ public class AdminMgrImplTest extends TestCase
+ ex.getMessage(), ex );
fail( ex.getMessage() );
}
+
+ }
+
+ public static void assignInvalidUserRoleConstraint( String msg, String[] usr, String[] rle, RoleConstraint rc )
+ {
+ try{
+ assignUserRoleConstraint(msg, usr, rle, rc);
+
+ String message = "assignInvalidUserRoleConstraint name [" + rc.getPaSetName() + "] was successfull, when should ahve failed.";
+ LOG.error( message );
+ fail( message );
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.info("Caught exception adding invalid tpa set name " + rc.getPaSetName());
+ }
+
+ }
+
+ public static void assignUserRoleConstraint( String msg, String[] usr, String[] rle, RoleConstraint rc ) throws SecurityException
+ {
+ LogUtil.logIt( msg );
+
+ AdminMgr adminMgr = getManagedAdminMgr();
+ ReviewMgr reviewMgr = ReviewMgrImplTest.getManagedReviewMgr();
+
+ User user = UserTestData.getUser( usr );
+ Role role = RoleTestData.getRole( rle );
+
+ adminMgr.addRoleConstraint(new UserRole(user.getUserId(), role.getName()), rc);
+
+ LOG.debug("assignUserRoleConstraint user [" + user.getUserId() + "] role [" + role.getName() + "] " +
+ " rcvalue [" + rc.getValue() + "]");
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
index 05f2f18..45718a9 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
@@ -2772,6 +2772,7 @@ public class PermTestData extends TestCase
*/
public static final String TPA_SET_1_NAME = "TPASET1";
public static final String TPA_SET_2_NAME = "TPASET2";
+ public static final String TPA_SET_NOT_EXIST_NAME = "NOTEXISTTPASETNAME";
public static final String[][] PA_TPSASET1 =
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/074fa2a5/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java b/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
index 0f1b729..3ee76c4 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
@@ -953,6 +953,13 @@ public class URATestData extends TestCase
"TPASET1AttributeName1=testattributevalue" //CONSTAIN_VALUE
};
+ public static final String[] URC_T1_INVALID =
+ {
+ "TPASETNAMENOTEXIST", // CONSTRAINT_PASET_NM
+ "FILTER", //CONSTAINT_TYPE
+ "TPASET1AttributeName1=testattributevalue" //CONSTAIN_VALUE
+ };
+
/**
* The Fortress test data for junit uses 2-dimensional arrays.
*/
[31/43] directory-fortress-core git commit: changed how pa sets and
pas are stored in ldap
Posted by cp...@apache.org.
changed how pa sets and pas are stored in ldap
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/fd2fead1
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/fd2fead1
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/fd2fead1
Branch: refs/heads/master
Commit: fd2fead1c50f44c6087b40ba4519fe83bc0e349e
Parents: 7a8d785
Author: clp207 <cl...@psu.edu>
Authored: Tue Aug 23 13:19:31 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Tue Aug 23 13:19:31 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 80 ++++++-
.../directory/fortress/core/GlobalIds.java | 41 +++-
.../directory/fortress/core/impl/PermDAO.java | 204 +++++++++++++----
.../core/model/PermissionAttribute.java | 221 ++++++++-----------
.../core/model/PermissionAttributeSet.java | 31 ++-
.../fortress/core/impl/PermTestData.java | 7 +-
6 files changed, 389 insertions(+), 195 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/fd2fead1/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index 6cb2040..754e43b 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -280,7 +280,7 @@ attributetype ( ftAtId:30
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# A31: User Role Constraints, type STRING, MULTI VALUE
-attributetype ( 1.3.6.1.4.1.1.38088.1.31
+attributetype ( ftAtId:31
NAME 'ftPA'
DESC 'Fortress Permission Attribute Constraints'
EQUALITY caseIgnoreMatch
@@ -288,19 +288,59 @@ attributetype ( 1.3.6.1.4.1.1.38088.1.31
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# A32: User Role Constraints, type STRING, MULTI VALUE
-attributetype ( 1.3.6.1.4.1.1.38088.1.32
+attributetype ( ftAtId:32
NAME 'ftPASet'
DESC 'Fortress Permission Attribute Set'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
-# A33: User Role Constraints, type STRING, MULTI VALUE
-attributetype ( 1.3.6.1.4.1.1.38088.1.33
+# A33: User Role Constraints, type STRING, SINGLE VALUE
+attributetype ( ftAtId:33
NAME 'ftPADefaultOperator'
DESC 'Fortress Permission Attribute Set Default Operator'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+
+# A34: User Role Constraints, type STRING, MULTI VALUE
+attributetype ( ftAtId:34
+ NAME 'ftPASetType'
+ DESC 'Fortress Permission Attribute Set Type'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+# A35: Permission Attribute Data Type, type STRING, SINGLE VALUE
+attributetype ( ftAtId:35
+ NAME 'ftPADataType'
+ DESC 'Fortress Permission Attribute Data Type'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+
+# A36: Permission Attribute Default Value, type STRING, SINGLE VALUE
+attributetype ( ftAtId:36
+ NAME 'ftPADefaultValue'
+ DESC 'Fortress Permission Attribute Set Default Value'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+
+# A37: Permission Attribute Default Strategy, type STRING, SINGLE VALUE
+attributetype ( ftAtId:37
+ NAME 'ftPADefaultStrategy'
+ DESC 'Fortress Permission Attribute Default Strategy'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+
+# A38: Permission Attribute Valid Values, type STRING, MULTI VALUE
+attributetype ( ftAtId:38
+ NAME 'ftPAValidVals'
+ DESC 'Fortress Permission Attribute Valid Values'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
######################################################################
@@ -432,19 +472,43 @@ objectClass ( ftObId:8
MAY configParameter
)
-## OC3: Fortress Permission Attribute Set Structural Object Class
-objectclass ( 1.3.6.1.4.1.38088.2.9
+## OC9: Fortress Permission Attribute Set Structural Object Class
+objectclass ( ftObId:9
NAME 'ftAttributeSet'
DESC 'Fortress Attribute Set Structural Object Class'
- SUP organizationalrole
+ SUP organizationalunit
STRUCTURAL
MUST (
ftId $
+ ftPASet $
cn
)
MAY (
ftPA $
- ftPADefaultOperator
+ ftPASetType $
+ description
+ )
+ )
+
+## OC10: Fortress Permission Attribute Structural Object Class
+objectclass ( ftObId:10
+ NAME 'ftAttribute'
+ DESC 'Fortress Attribute Structural Object Class'
+ SUP organizationalrole
+ STRUCTURAL
+ MUST (
+ ftId $
+ ftPASet $
+ ftPA $
+ cn
+ )
+ MAY (
+ ftPADataType $
+ ftPADefaultValue $
+ ftPADefaultStrategy $
+ ftPADefaultOperator $
+ ftPAValidVals $
+ description
)
)
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/fd2fead1/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index 8994761..24c2972 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@ -490,14 +490,45 @@ public final class GlobalIds
* Attribute name for storing Fortress permission attribute set object names.
*/
public static final String PERMISSION_ATTRIBUTE_SET_NAME = "ftAttributeSet";
-
- /**
- * Attribute name for storing default operator of a PA set
- */
- public static final String FT_PA_SET_DEFAULT_OPERATOR = "ftPADefaultOperator";
/**
* When this property is set to true in fortress.properties, the userPassword field on newly created users will not be created.
*/
public static final String USER_CREATION_PASSWORD_FIELD = "user.creation.field.password.disable";
+
+ /**
+ * The ftPASetType field contains the user defined type of a pa set
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_SET_TYPE = "ftPASetType";
+
+ /**
+ * Attribute name for storing Fortress permission attribute set object names.
+ */
+ public static final String PERMISSION_ATTRIBUTE_NAME = "ftAttribute";
+
+ /**
+ * Attribute name for storing Fortress permission attribute data type name.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_DATA_TYPE = "ftPADataType";
+
+ /**
+ * Attribute name for storing Fortress permission attribute default value name.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE = "ftPADefaultValue";
+
+ /**
+ * Attribute name for storing Fortress permission attribute default strategy name.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY = "ftPADefaultStrategy";
+
+ /**
+ * Attribute name for storing Fortress permission attribute set default operator name.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR = "ftPADefaultOperator";
+
+ /**
+ * Attribute name for storing Fortress permission attribute valid vals name.
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_VALID_VALUES = "ftPAValidVals";
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/fd2fead1/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 1a7f242..838d425 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -22,6 +22,7 @@ package org.apache.directory.fortress.core.impl;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -163,7 +164,8 @@ final class PermDAO extends LdapDataProvider
private static final String TYPE = "ftType";
private static final String PERM_OBJ_OBJECT_CLASS_NAME = "ftObject";
private static final String PERM_OP_OBJECT_CLASS_NAME = "ftOperation";
- private static final String PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME = "ftAttributeSet";
+ private static final String PERMISSION_ATTRIBUTE_SET_OBJECT_CLASS_NAME = "ftAttributeSet";
+ private static final String PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME = "ftAttribute";
private static final String PERM_OBJ_OBJ_CLASS[] =
{
@@ -210,8 +212,22 @@ final class PermDAO extends LdapDataProvider
};
private static final String[] PERMISION_ATTRIBUTE_SET_ATRS =
- {
- GlobalIds.FT_IID, GlobalIds.FT_PERMISSION_ATTRIBUTE, SchemaConstants.DESCRIPTION_AT, SchemaConstants.CN_AT
+ {
+ GlobalIds.FT_IID, SchemaConstants.DESCRIPTION_AT, SchemaConstants.CN_AT, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET_TYPE
+ };
+
+ private static final String[] PERMISION_ATTRIBUTE_ATRS =
+ {
+ GlobalIds.FT_IID,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE,
+ SchemaConstants.DESCRIPTION_AT,
+ SchemaConstants.CN_AT,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_SET,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE,
+ GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES
};
public PermDAO(){
@@ -459,20 +475,21 @@ final class PermDAO extends LdapDataProvider
return entity;
}
-
//TODO: add documentation
PermissionAttributeSet createPermissionAttributeSet( PermissionAttributeSet entity ) throws CreateException
{
LdapConnection ld = null;
- String dn = getPASetDn( entity.getName() , entity.getContextId() );
+ String dn = getDn( entity , entity.getContextId() );
try
{
Entry entry = new DefaultEntry( dn );
- entry.add( SchemaConstants.OBJECT_CLASS_AT, PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
+ entry.add( SchemaConstants.OBJECT_CLASS_AT, PERMISSION_ATTRIBUTE_SET_OBJECT_CLASS_NAME );
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_SET, entity.getName() );
+
// this will generate a new random, unique id on this entity:
entity.setInternalId();
@@ -485,15 +502,14 @@ final class PermDAO extends LdapDataProvider
entry.add( SchemaConstants.DESCRIPTION_AT, entity.getDescription() );
}
- // organizational name requires CN attribute:
- entry.add( SchemaConstants.CN_AT, entity.getName() );
-
- //default operator between attributes
- if( StringUtils.isNotEmpty(entity.getDefaultOperator()) )
+ if ( StringUtils.isNotEmpty( entity.getType() ) )
{
- entry.add( GlobalIds.FT_PA_SET_DEFAULT_OPERATOR, entity.getDefaultOperator() );
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_SET_TYPE, entity.getType() );
}
+ // organizational name requires CN attribute:
+ entry.add( SchemaConstants.CN_AT, entity.getName() );
+
// now add the new entry to directory:
ld = getAdminConnection();
add( ld, entry, entity );
@@ -522,22 +538,66 @@ final class PermDAO extends LdapDataProvider
PermissionAttribute createPermissionAttribute( PermissionAttribute entity, String attributeSetName ) throws CreateException
{
LdapConnection ld = null;
- String dn = getPASetDn( attributeSetName, entity.getContextId() );
+ String dn = getDn( entity, attributeSetName, entity.getContextId() );
- try
+ try
{
- List<Modification> mods = new ArrayList<Modification>();
- mods.add( new DefaultModification(
- ModificationOperation.ADD_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE, entity.toFtPAString()) );
- ld = getAdminConnection();
- modify( ld, dn, mods, entity );
+ Entry entry = new DefaultEntry( dn );
+
+ entry.add( SchemaConstants.OBJECT_CLASS_AT, PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
+
+ // this will generate a new random, unique id on this entity:
+ entity.setInternalId();
+
+ // create the internal id:
+ entry.add( GlobalIds.FT_IID, entity.getInternalId() );
+
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE, entity.getAttributeName() );
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_SET, attributeSetName );
+
+ // description is optional
+ if ( StringUtils.isNotEmpty( entity.getDescription() ) )
+ {
+ entry.add( SchemaConstants.DESCRIPTION_AT, entity.getDescription() );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDataType() ) )
+ {
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE, entity.getDataType() );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDefaultOperator() ) )
+ {
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR, entity.getDefaultOperator() );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDefaultStrategy() ) )
+ {
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY, entity.getDefaultStrategy() );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDefaultValue() ) )
+ {
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE, entity.getDefaultValue() );
+ }
+
+ //add one to many valid values
+ for(String validValue : entity.getValidValues()){
+ entry.add( GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES, validValue );
+ }
+
+ // organizational name requires CN attribute:
+ entry.add( SchemaConstants.CN_AT, entity.getAttributeName() );
+
- //TODO: make sure not adding same attribute twice...???
+ // now add the new entry to directory:
+ ld = getAdminConnection();
+ add( ld, entry, entity );
+ entity.setDn( dn );
}
catch ( LdapException e )
{
- String error = "create perm attribute [" + entity.getAttributeName() + "] caught LdapException="
- + e.getMessage();
+ String error = "createPermissionAttribute name [" + entity.getAttributeName() + "] caught LdapException=" + e.getMessage();
throw new CreateException( GlobalErrIds.PERM_ATTR_ADD_FAILED, error, e );
}
finally
@@ -660,7 +720,7 @@ final class PermDAO extends LdapDataProvider
void deleteAttributeSet( PermissionAttributeSet entity ) throws RemoveException
{
LdapConnection ld = null;
- String dn = getPASetDn( entity.getName(), entity.getContextId() );
+ String dn = getDn( entity, entity.getContextId() );
try
{
@@ -692,19 +752,16 @@ final class PermDAO extends LdapDataProvider
void deletePermissionAttribute( PermissionAttribute entity, String attributeSetName ) throws RemoveException
{
LdapConnection ld = null;
- String dn = getPASetDn( attributeSetName, entity.getContextId() );
+ String dn = getDn( entity, attributeSetName, entity.getContextId() );
try
{
- List<Modification> mods = new ArrayList<Modification>();
- mods.add( new DefaultModification(
- ModificationOperation.REMOVE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE, entity.toFtPAString() ) );
ld = getAdminConnection();
- modify( ld, dn, mods, new PermissionAttributeSet(attributeSetName) );
+ delete(ld, dn);
}
catch ( LdapException e )
{
- String error = "deletePermissionAttribute name [" + entity.getAttributeName() + "] set ["
+ String error = "deletePermission name [" + entity.getAttributeName() + "] set ["
+ attributeSetName + "] caught LdapException=" + e.getMessage();
throw new RemoveException( GlobalErrIds.PERM_ATTRIBUTE_DELETE_FAILED, error, e );
}
@@ -992,7 +1049,7 @@ final class PermDAO extends LdapDataProvider
{
PermissionAttributeSet entity = null;
LdapConnection ld = null;
- String dn = getPASetDn(permAttributeSet.getName(), permAttributeSet.getContextId());
+ String dn = getDn(permAttributeSet, permAttributeSet.getContextId());
try
{
@@ -1004,6 +1061,9 @@ final class PermDAO extends LdapDataProvider
throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
}
entity = unloadPASetLdapEntry( findEntry, 0 );
+
+ //find permission attributes for this set
+ entity.setAttributes(this.findPermissionAttributes(entity));
}
catch ( LdapNoSuchObjectException e )
{
@@ -1023,6 +1083,50 @@ final class PermDAO extends LdapDataProvider
return entity;
}
+ Set<PermissionAttribute> findPermissionAttributes( PermissionAttributeSet paSet )
+ throws FinderException
+ {
+ Set<PermissionAttribute> paList = new HashSet<PermissionAttribute>();
+ LdapConnection ld = null;
+ String permRoot = getRootDn( paSet.getContextId() );
+
+ try
+ {
+ String paSetVal = encodeSafeText( paSet.getName(), GlobalIds.PERM_LEN );
+ StringBuilder filterbuf = new StringBuilder();
+ filterbuf.append( GlobalIds.FILTER_PREFIX );
+ filterbuf.append( PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
+ filterbuf.append( ")(" );
+ filterbuf.append( GlobalIds.FT_PERMISSION_ATTRIBUTE );
+ filterbuf.append( "=" );
+ filterbuf.append( paSetVal );
+ filterbuf.append( "))" );
+ ld = getAdminConnection();
+ SearchCursor searchResults = search( ld, permRoot,
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISION_ATTRIBUTE_ATRS, false, GlobalIds.BATCH_SIZE );
+ long sequence = 0;
+
+ while ( searchResults.next() )
+ {
+ paList.add( unloadPALdapEntry( searchResults.getEntry(), sequence++ ) );
+ }
+ }
+ catch ( LdapException e )
+ {
+ String error = "findPermissionAttributes caught LdapException=" + e.getMessage();
+ throw new FinderException( GlobalErrIds.PERM_SEARCH_FAILED, error, e );
+ }
+ catch ( CursorException e )
+ {
+ String error = "findPermissionAttributes caught CursorException=" + e.getMessage();
+ throw new FinderException( GlobalErrIds.PERM_SEARCH_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ return paList;
+ }
/**
* This method performs fortress authorization using data passed in (session) and stored on ldap server (permission). It has been recently changed to use ldap compare operations in order to trigger slapd access log updates in directory.
@@ -1274,15 +1378,30 @@ final class PermDAO extends LdapDataProvider
entity.setDn( le.getDn().getName() );
entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
+ entity.setType( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET_TYPE ) );
- List<String> ftPAs = getAttributes( le, GlobalIds.FT_PERMISSION_ATTRIBUTE );
+ return entity;
+ }
+
+ private PermissionAttribute unloadPALdapEntry( Entry le, long sequence )
+ throws LdapInvalidAttributeValueException
+ {
+ PermissionAttribute entity = new ObjectFactory().createPermissionAttribute();
+ entity.setSequenceId( sequence );
+ entity.setAttributeName( getAttribute( le, SchemaConstants.CN_AT ) );
+ entity.setDn( le.getDn().getName() );
+ entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
+ entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
+ entity.setDataType( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE ) );
+ entity.setDefaultOperator( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR ) );
+ entity.setDefaultStrategy( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY ) );
+ entity.setDefaultValue( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE ) );
- if(ftPAs != null){
- for(String ftPARaw : ftPAs){
- PermissionAttribute permAttribute = new ObjectFactory().createPermissionAttribute();
- permAttribute.load( ftPARaw );
-
- entity.getAttributes().add(permAttribute);
+ List<String> validValues = getAttributes( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES );
+
+ if(validValues != null){
+ for(String value : validValues){
+ entity.getValidValues().add(value);
}
}
@@ -1905,12 +2024,17 @@ final class PermDAO extends LdapDataProvider
}
- private String getPASetDn( String name, String contextId )
+ private String getDn( PermissionAttributeSet paSet, String contextId )
{
- //TODO: what ou to put this?
- return SchemaConstants.CN_AT + "=" + name + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
+ return GlobalIds.PERMISSION_ATTRIBUTE_SET_NAME + "=" + paSet.getName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
}
+
+ private String getDn( PermissionAttribute pa, String paSetName, String contextId )
+ {
+ return GlobalIds.PERMISSION_ATTRIBUTE_SET_NAME + "=" + paSetName + "," + GlobalIds.PERMISSION_ATTRIBUTE_NAME + "=" + pa.getAttributeName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
+ }
+
private String getRootDn( boolean isAdmin, String contextId )
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/fd2fead1/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index 56105cd..1ca5e43 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -21,47 +21,39 @@ package org.apache.directory.fortress.core.model;
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import org.apache.commons.lang.StringUtils;
-
-//AccountId?dataType=int&required=true&validValues=SELF,ANY,int&comparator=equals&default=SELF
-
@XmlRootElement(name = "ftPA")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "permission", propOrder =
- {
- "required",
- "operator",
- "dataType",
- "validValues",
- "defaultValue"
+{
+ "attributeName",
+ "defaultOperator",
+ "dataType",
+ "defaultValue",
+ "defaultStrategy",
+ "validValues"
})
public class PermissionAttribute extends FortEntity implements Serializable {
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
- private static final String REQUIRED_PARAM_NAME = "required";
- private static final String OPERATOR_PARAM_NAME = "operator";
- private static final String DATA_TYPE_PARAM_NAME = "dataType";
- private static final String VALID_VALUES_PARAM_NAME = "validValues";
- private static final String DEFAULT_VALUE_PARAM_NAME = "defaultValue";
-
private String attributeName;
- private Boolean required = false;
- private ComparisonOperator operator;
- //TODO: make this an enum?
- private String dataType;
- //TODO: should this be an enum?
- private List<String> validValues;
+ private String defaultOperator;
+ private String dataType;
private String defaultValue;
+ private String defaultStrategy;
+ private List<String> validValues;
+ private String dn;
+ private String internalId;
+ private String description;
public PermissionAttribute()
{
@@ -71,110 +63,8 @@ public class PermissionAttribute extends FortEntity implements Serializable {
public PermissionAttribute(String attributeName)
{
this.attributeName = attributeName;
- }
-
- public String toFtPAString(){
- String ftPA = attributeName + "?";
-
- List<String> qualifiers = new ArrayList<String>();
-
- if(required != null){
- qualifiers.add(REQUIRED_PARAM_NAME + "=" + String.valueOf(required));
- }
- if(operator != null){
- qualifiers.add(OPERATOR_PARAM_NAME + "=" + operator);
- }
- if(dataType != null){
- qualifiers.add(DATA_TYPE_PARAM_NAME + "=" + dataType);
- }
- if(validValues != null && validValues.size() > 0){
- qualifiers.add(VALID_VALUES_PARAM_NAME + "=" + StringUtils.join(validValues, ","));
- }
- if(defaultValue != null){
- qualifiers.add(DEFAULT_VALUE_PARAM_NAME + "=" + defaultValue);
- }
-
- ftPA += StringUtils.join(qualifiers, "&");
-
- return ftPA;
- }
-
- public Boolean getRequired() {
- return required;
- }
- public void setRequired(Boolean required) {
- this.required = required;
- }
- public ComparisonOperator getOperator() {
- return operator;
- }
- public void setOperator(ComparisonOperator operator) {
- this.operator = operator;
- }
- public String getDataType() {
- return dataType;
- }
- public void setDataType(String dataType) {
- this.dataType = dataType;
- }
- public List<String> getValidValues() {
- return validValues;
- }
- public void setValidValues(List<String> validValues) {
- this.validValues = validValues;
- }
- public String getDefaultValue() {
- return defaultValue;
- }
- public void setDefaultValue(String defaultValue) {
- this.defaultValue = defaultValue;
- }
- public String getAttributeName() {
- return attributeName;
- }
- public void setAttributeName(String attributeName) {
- this.attributeName = attributeName;
- }
+ }
- /**
- * This method loads PermissionAttribute entity instance variables with data that was retrieved from the
- * 'ftPA' attribute on the 'ftOperation' object class.
- *
- * @param szRawData contains a raw formatted String that maps to 'ftPA' attribute on 'ftOperation' object class
- */
- public void load( String szRawData )
- {
- if ( ( szRawData != null ) && ( szRawData.length() > 0 ) )
- {
- String[] data = StringUtils.split(szRawData, "?");
- attributeName = data[0];
-
- String[] parameters = data[1].split("&");
- for (String param : parameters){
- String[] paramSplit = param.split("=");
- String name = paramSplit[0];
- String val = paramSplit[1];
-
- if(name.equals(REQUIRED_PARAM_NAME)){
- required = Boolean.parseBoolean(val);
- }
- if(name.equals(OPERATOR_PARAM_NAME)){
- operator = ComparisonOperator.fromName(val);
- }
- if(name.equals(DATA_TYPE_PARAM_NAME)){
- dataType = val;
- }
- if(name.equals(VALID_VALUES_PARAM_NAME)){
- validValues = Arrays.asList(val.split(","));
- }
- if(name.equals(DEFAULT_VALUE_PARAM_NAME)){
- defaultValue = val;
- }
-
- }
- }
- }
-
/**
* Checks that attribute names are equal
*/
@@ -213,5 +103,84 @@ public class PermissionAttribute extends FortEntity implements Serializable {
return result;
}
+ public String getDefaultOperator() {
+ return defaultOperator;
+ }
+
+ public void setDefaultOperator(String defaultOperator) {
+ this.defaultOperator = defaultOperator;
+ }
+
+ public String getDataType() {
+ return dataType;
+ }
+
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public void setDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public String getDefaultStrategy() {
+ return defaultStrategy;
+ }
+
+ public void setDefaultStrategy(String defaultStrategy) {
+ this.defaultStrategy = defaultStrategy;
+ }
+
+ public List<String> getValidValues() {
+ if(validValues == null){
+ validValues = new ArrayList<String>();
+ }
+ return validValues;
+ }
+
+ public void setValidValues(List<String> validValues) {
+ this.validValues = validValues;
+ }
+
+ public String getAttributeName() {
+ return attributeName;
+ }
+
+ public void setAttributeName(String attributeName) {
+ this.attributeName = attributeName;
+ }
+
+ public String getDn() {
+ return dn;
+ }
+
+ public void setDn(String dn) {
+ this.dn = dn;
+ }
+
+ public String getInternalId() {
+ return internalId;
+ }
+
+ public void setInternalId() {
+ UUID uuid = UUID.randomUUID();
+ this.internalId = uuid.toString();
+ }
+
+ public void setInternalId(String internalId) {
+ this.internalId = internalId;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/fd2fead1/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
index 34ab5e7..eced0e5 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -19,6 +19,7 @@
*/
package org.apache.directory.fortress.core.model;
+import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@@ -27,6 +28,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "ftPermissionAttributeSet")
@@ -37,18 +39,23 @@ import javax.xml.bind.annotation.XmlType;
"attributes",
"internalId",
"description",
- "defaultOperator"
+ "type"
})
-public class PermissionAttributeSet extends FortEntity {
+public class PermissionAttributeSet extends FortEntity implements Serializable {
+ /** Default serialVersionUID */
+ private static final long serialVersionUID = 1L;
+
private String name;
@XmlElement(nillable = true)
private Set<PermissionAttribute> attributes;
private String internalId;
private String description;
+ private String type;
+ @XmlTransient
private String dn;
- private String defaultOperator;
-
+
+
public PermissionAttributeSet(String name){
this.name = name;
}
@@ -113,20 +120,20 @@ public class PermissionAttributeSet extends FortEntity {
this.description = description;
}
- public String getDn() {
- return dn;
+ public String getType() {
+ return type;
}
- public void setDn(String dn) {
- this.dn = dn;
+ public void setType(String type) {
+ this.type = type;
}
- public String getDefaultOperator() {
- return defaultOperator;
+ public String getDn() {
+ return dn;
}
- public void setDefaultOperator(String defaultOperator) {
- this.defaultOperator = defaultOperator;
+ public void setDn(String dn) {
+ this.dn = dn;
}
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/fd2fead1/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
index 45718a9..f3cd4e2 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
@@ -23,8 +23,6 @@ package org.apache.directory.fortress.core.impl;
import java.util.HashSet;
import java.util.Set;
-import junit.framework.TestCase;
-
import org.apache.directory.fortress.core.model.ComparisonOperator;
import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
@@ -32,6 +30,8 @@ import org.apache.directory.fortress.core.model.PermissionAttribute;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import junit.framework.TestCase;
+
/**
* Description of the Class
@@ -2820,9 +2820,8 @@ public class PermTestData extends TestCase
{
PermissionAttribute permAttr = new PermissionAttribute();
permAttr.setAttributeName(pa[0]);
- permAttr.setRequired(Boolean.parseBoolean(pa[1]));
permAttr.setDataType(pa[2]);
- permAttr.setOperator(ComparisonOperator.valueOf(pa[3]));
+ permAttr.setDefaultOperator(ComparisonOperator.valueOf(pa[3]).name());
return permAttr;
}
[07/43] directory-fortress-core git commit: added more tests
Posted by cp...@apache.org.
added more tests
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/46ff1f34
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/46ff1f34
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/46ff1f34
Branch: refs/heads/master
Commit: 46ff1f34f6014efb706760fb2c2e1f758d61d609
Parents: 527cfea
Author: clp207 <cl...@psu.edu>
Authored: Sat Jan 30 19:11:08 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../fortress/core/impl/AdminMgrImplTest.java | 58 +++++++++++++++
.../fortress/core/impl/FortressJUnitTest.java | 7 ++
.../fortress/core/impl/ReviewMgrImplTest.java | 77 ++++++++++++++++++++
.../fortress/core/impl/URATestData.java | 18 +++++
4 files changed, 160 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/46ff1f34/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
index 732f12a..0624c07 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
@@ -38,6 +38,7 @@ 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;
@@ -1890,6 +1891,63 @@ public class AdminMgrImplTest extends TestCase
}
}
+ public void testAddPASetToPermission()
+ {
+ addPASetToPermission( "ADD-PASET-TO-POP TOB_1 TOP_1", PermTestData.TPA_SET_1_NAME, "TOB1_1", PermTestData.OPS_TOP1[0] );
+ }
+
+ public static void addPASetToPermission( String msg, String paSetName, String obj, String[] op )
+ {
+ LogUtil.logIt(msg);
+ try
+ {
+ AdminMgr adminMgr = AdminMgrFactory.createInstance( TestUtils.getContext() );
+
+ Permission pop = PermTestData.getOp( obj, op );
+ pop.setPaSetName(paSetName);
+
+ adminMgr.updatePermission(pop);
+ LOG.debug( "addPASetToPermission name [" + paSetName + "] successful" );
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.error( "addPASetToPermission name [" + paSetName
+ + "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
+ fail( ex.getMessage() );
+ }
+ }
+
+ public void testAddUserRoleConstraint() throws SecurityException
+ {
+ assignUserRoleConstraint( "ASGN-URC TU1 TR1", UserTestData.USERS_TU1[0], RoleTestData.ROLES_TR1[1], URATestData.getRC(URATestData.URC_T1) );
+ }
+
+ public static void assignUserRoleConstraint( String msg, String[] usr, String[] rle, RoleConstraint rc )
+ {
+ LogUtil.logIt( msg );
+ try
+ {
+ AdminMgr adminMgr = getManagedAdminMgr();
+ ReviewMgr reviewMgr = ReviewMgrImplTest.getManagedReviewMgr();
+
+ User user = UserTestData.getUser( usr );
+ Role role = RoleTestData.getRole( rle );
+
+ adminMgr.addRoleConstraint(new UserRole(user.getUserId(), role.getName()), rc);
+
+ LOG.debug("assignUserRoleConstraint user [" + user.getUserId() + "] role [" + role.getName() + "] " +
+ " rcvalue [" + rc.getValue() + "]");
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.error(
+ "assignUserRoleConstraint caught SecurityException rc=" + ex.getErrorId() + ", msg="
+ + ex.getMessage(), ex );
+ fail( ex.getMessage() );
+ }
+ }
+
+
/**
*
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/46ff1f34/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
index 8885c01..fd26012 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
@@ -203,6 +203,9 @@ public class FortressJUnitTest extends TestCase
suite.addTest( new AdminMgrImplTest( "testAddPermissionAttributeSet" ) );
suite.addTest( new AdminMgrImplTest( "testAddPermissionAttributeToSet" ) );
+ suite.addTest( new AdminMgrImplTest( "testAddPASetToPermission" ) );
+
+ suite.addTest( new AdminMgrImplTest( "testAddUserRoleConstraint" ) );
/***********************************************************/
/* 3. Interrogation */
@@ -243,8 +246,12 @@ public class FortressJUnitTest extends TestCase
suite.addTest( new ReviewMgrImplTest( "testUserPermissions" ) );
suite.addTest( new ReviewMgrImplTest( "testFindSsdSets" ) );
suite.addTest( new ReviewMgrImplTest( "testFindDsdSets" ) );
+
suite.addTest( new ReviewMgrImplTest( "testReadPermissionAttributeSets" ) );
+ suite.addTest( new ReviewMgrImplTest( "testReadPASetFromPermission" ) );
+ suite.addTest( new ReviewMgrImplTest( "testReadUserRoleConstraint" ) );
+
/***********************************************************/
/* 4. Security Checks */
/***********************************************************/
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/46ff1f34/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
index 04508f2..b6371e5 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
@@ -38,6 +38,7 @@ 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;
@@ -193,6 +194,33 @@ public class ReviewMgrImplTest extends TestCase
}
}
+ 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);
+ assertEquals(paSetName, entity.getPaSetName());
+
+ 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)
@@ -1578,7 +1606,56 @@ public class ReviewMgrImplTest extends TestCase
}
}
+ 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;
+
+ Set<RoleConstraint> rcs = ur.getRoleConstraints();
+ for(RoleConstraint r : rcs){
+ if(r.getPaSetName().equals(rc.getPaSetName())){
+ urcFound = true;
+ assertEquals(rc.getConstraintType(), r.getConstraintType());
+ assertEquals(rc.getValue(), r.getValue());
+ }
+ }
+ }
+ }
+
+ 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() );
+ }
+ }
+
/**
*
* @return
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/46ff1f34/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java b/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
index f42a4ff..0f1b729 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/URATestData.java
@@ -26,6 +26,8 @@ import java.util.Map;
import junit.framework.TestCase;
import org.apache.commons.lang.StringUtils;
+import org.apache.directory.fortress.core.model.RoleConstraint;
+import org.apache.directory.fortress.core.model.RoleConstraintType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -944,6 +946,13 @@ public class URATestData extends TestCase
}
};
+ public static final String[] URC_T1 =
+ {
+ "TPASET1", // CONSTRAINT_PASET_NM
+ "FILTER", //CONSTAINT_TYPE
+ "TPASET1AttributeName1=testattributevalue" //CONSTAIN_VALUE
+ };
+
/**
* The Fortress test data for junit uses 2-dimensional arrays.
*/
@@ -1034,4 +1043,13 @@ public class URATestData extends TestCase
}
return listUras;
}
+
+ public static RoleConstraint getRC( String[] rc )
+ {
+ RoleConstraint urc = new RoleConstraint();
+ urc.setPaSetName(rc[0]);
+ urc.setConstraintType(RoleConstraintType.valueOf(rc[1]));
+ urc.setValue(rc[2]);
+ return urc;
+ }
}
[36/43] directory-fortress-core git commit: added valid value to test
data
Posted by cp...@apache.org.
added valid value to test data
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/4ddd79a2
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/4ddd79a2
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/4ddd79a2
Branch: refs/heads/master
Commit: 4ddd79a28436b20a06529405fbdde65bb6adc346
Parents: 7df3235
Author: clp207 <cl...@psu.edu>
Authored: Wed Aug 24 15:31:24 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Aug 24 15:31:24 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/impl/PermTestData.java | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4ddd79a2/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
index 8624b55..d18398c 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
@@ -2781,7 +2781,8 @@ public class PermTestData extends TestCase
"TPASET1AttributeName1", /* NAME */
"true", /* REQUIRED */
"string", /* DATA_TYPE */
- "EQUALS" /* COMPARISON_OPERATOR */
+ "EQUALS", /* COMPARISON_OPERATOR */
+ "literal:value" /* VALID_VALUE */
}
};
@@ -2791,13 +2792,15 @@ public class PermTestData extends TestCase
"TPASET2AttributeName1", /* NAME */
"true", /* REQUIRED */
"string", /* DATA_TYPE */
- "EQUALS" /* COMPARISON_OPERATOR */
+ "EQUALS", /* COMPARISON_OPERATOR */
+ "literal:value" /* VALID_VALUE */
},
{
"TPASET2AttributeName2", /* NAME */
"false", /* REQUIRED */
"int", /* DATA_TYPE */
- "EQUALS" /* COMPARISON_OPERATOR */
+ "EQUALS", /* COMPARISON_OPERATOR */
+ "literal:value" /* VALID_VALUE */
}
};
@@ -2807,13 +2810,15 @@ public class PermTestData extends TestCase
"TPASET2AttributeName3", /* NAME */
"true", /* REQUIRED */
"string", /* DATA_TYPE */
- "EQUALS" /* COMPARISON_OPERATOR */
+ "EQUALS", /* COMPARISON_OPERATOR */
+ "literal:value" /* VALID_VALUE */
},
{
"TPASET2AttributeName4", /* NAME */
"false", /* REQUIRED */
"int", /* DATA_TYPE */
- "EQUALS" /* COMPARISON_OPERATOR */
+ "EQUALS", /* COMPARISON_OPERATOR */
+ "literal:value" /* VALID_VALUE */
}
};
@@ -2823,6 +2828,7 @@ public class PermTestData extends TestCase
permAttr.setAttributeName(pa[0]);
permAttr.setDataType(pa[2]);
permAttr.setDefaultOperator(ComparisonOperator.valueOf(pa[3]).name());
+ permAttr.getValidValues().add(pa[4]);
return permAttr;
}
[03/43] directory-fortress-core git commit: fixed issue with updating
permission
Posted by cp...@apache.org.
fixed issue with updating permission
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/93646041
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/93646041
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/93646041
Branch: refs/heads/master
Commit: 93646041e3a4de252297f1eaae5c55900c746ff9
Parents: 46ff1f3
Author: clp207 <cl...@psu.edu>
Authored: Sun Jan 31 15:22:25 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../org/apache/directory/fortress/core/impl/AdminMgrImplTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/93646041/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
index 0624c07..7ba2186 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
@@ -1893,7 +1893,7 @@ public class AdminMgrImplTest extends TestCase
public void testAddPASetToPermission()
{
- addPASetToPermission( "ADD-PASET-TO-POP TOB_1 TOP_1", PermTestData.TPA_SET_1_NAME, "TOB1_1", PermTestData.OPS_TOP1[0] );
+ addPASetToPermission( "ADD-PASET-TO-POP TOB_1 TOP_1", PermTestData.TPA_SET_1_NAME, "TOB1_1", PermTestData.OPS_TOP1_UPD[0] );
}
public static void addPASetToPermission( String msg, String paSetName, String obj, String[] op )
[06/43] directory-fortress-core git commit: added ftPA to fortress
schema
Posted by cp...@apache.org.
added ftPA to fortress schema
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/e50cd6ee
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/e50cd6ee
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/e50cd6ee
Branch: refs/heads/master
Commit: e50cd6ee2811e86a25038b166cc0fa7d5d8a6266
Parents: 124b2cc
Author: clp207 <cl...@psu.edu>
Authored: Mon Jan 25 08:03:29 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/e50cd6ee/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index d739ad1..ca7a20a 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -270,6 +270,14 @@ attributetype ( 1.3.6.1.4.1.1.38088.1.30
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+# A31: User Role Constraints, type STRING, MULTI VALUE
+attributetype ( 1.3.6.1.4.1.1.38088.1.31
+ NAME 'ftPA'
+ DESC 'Fortress Permission Attribute Constraints'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
######################################################################
## 2. OpenLDAP Fortress Structural object class definitions
######################################################################
@@ -323,6 +331,7 @@ objectclass ( 1.3.6.1.4.1.38088.2.3
ftRoles $
ftUsers $
ftType
+ ftPA
)
)
@@ -452,4 +461,4 @@ objectclass ( 1.3.6.1.4.1.38088.3.4
ftModCode $
ftModId
)
- )
\ No newline at end of file
+ )
[26/43] directory-fortress-core git commit: added efault operator
value to pas set
Posted by cp...@apache.org.
added efault operator value to pas set
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/1918048c
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/1918048c
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/1918048c
Branch: refs/heads/master
Commit: 1918048c00924d724f2ffff5f76bed52ea814668
Parents: d554bfd
Author: clp207 <cl...@psu.edu>
Authored: Fri Mar 18 09:29:18 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:23 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 13 +++++++++++--
.../org/apache/directory/fortress/core/GlobalIds.java | 5 +++++
.../apache/directory/fortress/core/impl/PermDAO.java | 6 ++++++
.../fortress/core/model/PermissionAttributeSet.java | 12 +++++++++++-
4 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1918048c/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index 16b6152..2776787 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -278,7 +278,7 @@ attributetype ( 1.3.6.1.4.1.1.38088.1.31
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
-# A31: User Role Constraints, type STRING, MULTI VALUE
+# A32: User Role Constraints, type STRING, MULTI VALUE
attributetype ( 1.3.6.1.4.1.1.38088.1.32
NAME 'ftPASet'
DESC 'Fortress Permission Attribute Set'
@@ -286,6 +286,14 @@ attributetype ( 1.3.6.1.4.1.1.38088.1.32
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+# A33: User Role Constraints, type STRING, MULTI VALUE
+attributetype ( 1.3.6.1.4.1.1.38088.1.32
+ NAME 'ftPADefaultOperator'
+ DESC 'Fortress Permission Attribute Set Default Operator'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
######################################################################
## 2. OpenLDAP Fortress Structural object class definitions
######################################################################
@@ -426,7 +434,8 @@ objectclass ( 1.3.6.1.4.1.38088.2.9
cn
)
MAY (
- ftPA
+ ftPA $
+ ftPADefaultOperator
)
)
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1918048c/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index c6a0a66..f6655c7 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@ -543,4 +543,9 @@ public final class GlobalIds
* Attribute name for storing Fortress permission attribute set object names.
*/
public static final String PERMISSION_ATTRIBUTE_SET_NAME = "ftAttributeSet";
+
+ /**
+ * Attribute name for storing default operator of a PA set
+ */
+ public static final String FT_PA_SET_DEFAULT_OPERATOR = "ftPADefaultOperator";
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1918048c/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 8e58bf7..fdce53f 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -487,6 +487,12 @@ final class PermDAO extends ApacheDsDataProvider
// organizational name requires CN attribute:
entry.add( SchemaConstants.CN_AT, entity.getName() );
+ //default operator between attributes
+ if( StringUtils.isNotEmpty(entity.getDefaultOperator()) )
+ {
+ entry.add( GlobalIds.FT_PA_SET_DEFAULT_OPERATOR, entity.getDefaultOperator() );
+ }
+
// now add the new entry to directory:
ld = getAdminConnection();
add( ld, entry, entity );
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1918048c/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
index 90563ad..34ab5e7 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -36,7 +36,8 @@ import javax.xml.bind.annotation.XmlType;
"name",
"attributes",
"internalId",
- "description"
+ "description",
+ "defaultOperator"
})
public class PermissionAttributeSet extends FortEntity {
@@ -46,6 +47,7 @@ public class PermissionAttributeSet extends FortEntity {
private String internalId;
private String description;
private String dn;
+ private String defaultOperator;
public PermissionAttributeSet(String name){
this.name = name;
@@ -119,4 +121,12 @@ public class PermissionAttributeSet extends FortEntity {
this.dn = dn;
}
+ public String getDefaultOperator() {
+ return defaultOperator;
+ }
+
+ public void setDefaultOperator(String defaultOperator) {
+ this.defaultOperator = defaultOperator;
+ }
+
}
[37/43] directory-fortress-core git commit: added method to find roel
constraints given user, permission, and type
Posted by cp...@apache.org.
added method to find roel constraints given user, permission, and type
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/4561ac48
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/4561ac48
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/4561ac48
Branch: refs/heads/master
Commit: 4561ac489560adf57e88a8f22fa519f1099fa7a9
Parents: 4ddd79a
Author: clp207 <cl...@psu.edu>
Authored: Fri Sep 2 11:00:22 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Fri Sep 2 11:00:22 2016 -0400
----------------------------------------------------------------------
ldap/setup/DelegatedAdminManagerLoad.xml | 4 ++-
.../directory/fortress/core/ReviewMgr.java | 19 +++++++++++
.../fortress/core/impl/ReviewMgrImpl.java | 35 ++++++++++++++++++++
.../directory/fortress/core/impl/UserDAO.java | 1 +
.../directory/fortress/core/impl/UserP.java | 21 ++++++++++++
.../fortress/core/model/Permission.java | 4 +++
.../fortress/core/rest/ReviewMgrRestImpl.java | 11 ++++++
.../fortress/core/impl/FortressJUnitTest.java | 7 ++--
.../fortress/core/impl/ReviewMgrImplTest.java | 27 +++++++++++++++
9 files changed, 125 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/ldap/setup/DelegatedAdminManagerLoad.xml
----------------------------------------------------------------------
diff --git a/ldap/setup/DelegatedAdminManagerLoad.xml b/ldap/setup/DelegatedAdminManagerLoad.xml
index ecd3997..d1fe5b8 100644
--- a/ldap/setup/DelegatedAdminManagerLoad.xml
+++ b/ldap/setup/DelegatedAdminManagerLoad.xml
@@ -74,6 +74,7 @@
<permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdSets" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findAnyPermissions" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="readPermAttributeSet" roleNm="fortress-core-super-admin" admin="true"/>
+ <permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findRoleConstraints" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="readRole" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="findRoles" roleNm="fortress-core-super-admin" admin="true"/>
@@ -221,7 +222,8 @@
<permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdSets" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findAnyPermissions" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="readPermAttributeSet" admin="true"/>
-
+ <permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findRoleConstraints" admin="true"/>
+
<permop objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="readRole" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="findRoles" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="assignedRoles" admin="true"/>
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
index 62db2c7..56456c3 100755
--- a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
@@ -28,6 +28,8 @@ import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
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.RoleConstraintType;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
@@ -722,4 +724,21 @@ public interface ReviewMgr extends Manageable
*/
int dsdRoleSetCardinality( SDSet dsd )
throws SecurityException;
+
+ /**
+ * Find all of the role constraints for the given user and permission attribute set.
+ * <h3></h3>
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link User#userId} - contains the name of existing user being targeted</li>
+ * <li>{@link PermissionAttributeSet#name} - contains the name of permission attribute set</li>
+ * </ul>
+ *
+ * @param user The user to filter role constraints
+ * @param paSet The permission attribute set to filter role constraints
+ * @return List of the Role Constraints for the given user and pa set.
+ * @throws SecurityException in the event of data or system error.
+ */
+ List<RoleConstraint> findRoleConstraints(User user, Permission permission, RoleConstraintType rcType)
+ throws SecurityException;
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index ddb1e14..e488ba1 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -36,6 +36,8 @@ import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
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.RoleConstraintType;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
@@ -722,4 +724,37 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
SDSet se = ssdP.read(dsd);
return se.getCardinality();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<RoleConstraint> findRoleConstraints(User user, Permission permission, RoleConstraintType rcType) throws SecurityException {
+ String methodName = "findRoleConstraints";
+ checkAccess(CLS_NM, methodName);
+ //find roles this permission is authorized for
+ Permission pe = permP.read(permission);
+ Set<String> authorizedRoles = authorizeRoles(pe.getRoles());
+
+ //find role constraints for the user and the permission's pa set
+ return userP.findRoleConstraints(authorizedRoles, user, rcType, pe.getPaSets());
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ /*
+ @Override
+ public List<UserRole> assignedRoles(User user)
+ throws SecurityException
+ {
+ String methodName = "assignedRoles";
+ assertContext(CLS_NM, methodName, user, GlobalErrIds.USER_NULL);
+ checkAccess(CLS_NM, methodName);
+ User ue = userP.read(user, true);
+ return ue.getRoles();
+ }
+ */
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index 0d917a6..6493487 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -2611,4 +2611,5 @@ final class UserDAO extends LdapDataProvider
return new ArrayList<UserRole>(uRoles.values());
}
+
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
index 34a48a3..534f3ca 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
@@ -40,6 +40,7 @@ import org.apache.directory.fortress.core.model.OrgUnit;
import org.apache.directory.fortress.core.model.PwPolicy;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.RoleConstraint;
+import org.apache.directory.fortress.core.model.RoleConstraintType;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserAdminRole;
@@ -930,4 +931,24 @@ final class UserP
trgR.setOsPSet( srcR.getOsPSet() );
trgR.setOsUSet( srcR.getOsUSet() );
}
+
+ List<RoleConstraint> findRoleConstraints( Set<String> roles, User user, RoleConstraintType rcType, Set<String> paSets ) throws SecurityException
+ {
+ List<RoleConstraint> matchingConstraints = new ArrayList<RoleConstraint>();
+
+ //TODO: can we do this in a query?
+ List<UserRole> userRoles = uDao.getUser(user, true).getRoles();
+ for(UserRole ur : userRoles){
+ //only get constraints for passed in roles
+ if(roles.contains(ur.getName())){
+ for(RoleConstraint rc : ur.getRoleConstraints()){
+ if(rc.getConstraintType().equals(rcType) && paSets.contains(rc.getPaSetName())){
+ matchingConstraints.add(rc);
+ }
+ }
+ }
+ }
+
+ return matchingConstraints;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/main/java/org/apache/directory/fortress/core/model/Permission.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/Permission.java b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
index 803e113..d1d9677 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/Permission.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
@@ -832,6 +832,10 @@ public class Permission extends FortEntity implements Serializable
}
public Set<String> getPaSets() {
+ if ( paSets == null )
+ {
+ paSets = new HashSet<String>();
+ }
return paSets;
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
index 2165d00..96f9062 100755
--- a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
@@ -35,6 +35,8 @@ import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
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.RoleConstraintType;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
@@ -1261,4 +1263,13 @@ public class ReviewMgrRestImpl extends Manageable implements ReviewMgr
return null;
}
+
+ @Override
+ public List<RoleConstraint> findRoleConstraints(User user, Permission permission, RoleConstraintType rcType)
+ throws SecurityException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
index e495ab1..ae83b67 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
@@ -19,12 +19,12 @@
*/
package org.apache.directory.fortress.core.impl;
+import org.apache.directory.fortress.core.util.Config;
+
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.directory.fortress.core.util.Config;
-
/**
* This JUnit test class drives all of the Fortress Administration APIs contained within {@link AdminMgrImplTest},
* {@link DelegatedMgrImplTest}, {@link org.apache.directory.fortress.core.impl.PwPolicyMgrImpl} and {@link org.apache.directory.fortress.core.impl.AuditMgrImpl}.
@@ -251,7 +251,8 @@ public class FortressJUnitTest extends TestCase
suite.addTest( new ReviewMgrImplTest( "testReadPASetFromPermission" ) );
suite.addTest( new ReviewMgrImplTest( "testReadUserRoleConstraint" ) );
-
+ suite.addTest( new ReviewMgrImplTest( "testFindRoleConstraints" ) );
+
/***********************************************************/
/* 4. Security Checks */
/***********************************************************/
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4561ac48/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
index 0dd3453..30a0f75 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
@@ -35,6 +35,7 @@ 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.RoleConstraintType;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
@@ -1657,6 +1658,32 @@ public class ReviewMgrImplTest extends TestCase
}
}
+ 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).getConstraintType() );
+ }
+
+ public static void findRoleConstraints( String msg, String usr, Permission permission, RoleConstraintType rcType )
+ {
+ LogUtil.logIt(msg);
+ try
+ {
+ ReviewMgr reviewMgr = getManagedReviewMgr();
+
+ List<RoleConstraint> rcs = reviewMgr.findRoleConstraints(new User(usr), permission, rcType);
+ assertTrue(rcs.size() > 0);
+ assertTrue(rcs.get(0).getConstraintType().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() );
+ }
+ }
+
/**
*
* @return
[17/43] directory-fortress-core git commit: updated schema to have
ftAttributeSet and ftPASet instead of just ftPA on operation
Posted by cp...@apache.org.
updated schema to have ftAttributeSet and ftPASet instead of just ftPA on operation
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/da6c893f
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/da6c893f
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/da6c893f
Branch: refs/heads/master
Commit: da6c893f3192275ba3d106ba5ae0c7ce7ff42254
Parents: 8a47b1f
Author: clp207 <cl...@psu.edu>
Authored: Thu Jan 28 15:02:18 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/da6c893f/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index 7775007..db06620 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -278,6 +278,14 @@ attributetype ( 1.3.6.1.4.1.1.38088.1.31
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+# A31: User Role Constraints, type STRING, MULTI VALUE
+attributetype ( 1.3.6.1.4.1.1.38088.1.32
+ NAME 'ftPASet'
+ DESC 'Fortress Permission Attribute Set'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
######################################################################
## 2. OpenLDAP Fortress Structural object class definitions
######################################################################
@@ -407,6 +415,21 @@ objectClass ( 1.3.6.1.4.1.38088.2.8
MAY configParameter
)
+## OC3: Fortress Permission Attribute Set Structural Object Class
+objectclass ( 1.3.6.1.4.1.38088.2.9
+ NAME 'ftAttributeSet'
+ DESC 'Fortress Permission Operation Structural Object Class'
+ SUP organizationalrole
+ STRUCTURAL
+ MUST (
+ ftId $
+ cn
+ )
+ MAY (
+ ftPA
+ )
+ )
+
######################################################################
## 3. OpenLDAP Fortress Auxiliary object class definitions
######################################################################
[05/43] directory-fortress-core git commit: added tests for creating
and reading permission attribute sets
Posted by cp...@apache.org.
added tests for creating and reading permission attribute sets
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/9dee0b11
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/9dee0b11
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/9dee0b11
Branch: refs/heads/master
Commit: 9dee0b11026e67d8cc52ae2f24ca3217d87a216d
Parents: ab95a17
Author: clp207 <cl...@psu.edu>
Authored: Sat Jan 30 08:57:13 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
ldap/setup/DelegatedAdminManagerLoad.xml | 5 +-
.../core/model/PermissionAttribute.java | 39 ++++++++
.../fortress/core/impl/AdminMgrImplTest.java | 96 ++++++++++++++++++--
.../fortress/core/impl/FortressJUnitTest.java | 10 +-
.../fortress/core/impl/PermTestData.java | 77 ++++++++++++++++
.../fortress/core/impl/ReviewMgrImplTest.java | 47 ++++++++--
6 files changed, 256 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9dee0b11/ldap/setup/DelegatedAdminManagerLoad.xml
----------------------------------------------------------------------
diff --git a/ldap/setup/DelegatedAdminManagerLoad.xml b/ldap/setup/DelegatedAdminManagerLoad.xml
index ea47a79..a6ffa7e 100644
--- a/ldap/setup/DelegatedAdminManagerLoad.xml
+++ b/ldap/setup/DelegatedAdminManagerLoad.xml
@@ -71,7 +71,8 @@
<permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdRoleSetRoles" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdRoleSetCardinality" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdSets" roleNm="fortress-core-super-admin" admin="true"/>
- <permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findAnyPermissions" roleNm="fortress-core-super-admin" admin="true"/>
+ <permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findAnyPermissions" roleNm="fortress-core-super-admin" admin="true"/>
+ <permgrant objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="readPermAttributeSet" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="readRole" roleNm="fortress-core-super-admin" admin="true"/>
<permgrant objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="findRoles" roleNm="fortress-core-super-admin" admin="true"/>
@@ -313,4 +314,4 @@
</FortressAdmin>
</target>
-</project>
\ No newline at end of file
+</project>
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9dee0b11/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index eba8522..62c27d8 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -152,4 +152,43 @@ public class PermissionAttribute extends FortEntity implements Serializable {
}
}
+ /**
+ * Checks that attribute names are equal
+ */
+ @Override
+ public boolean equals( Object thatObj )
+ {
+ if ( this == thatObj )
+ {
+ return true;
+ }
+
+ if ( this.getAttributeName() == null )
+ {
+ return false;
+ }
+
+ if ( !( thatObj instanceof PermissionAttribute ) )
+ {
+ return false;
+ }
+
+ PermissionAttribute thatPermObj = ( PermissionAttribute ) thatObj;
+
+ if ( thatPermObj.getAttributeName() == null )
+ {
+ return false;
+ }
+
+ return thatPermObj.getAttributeName().equalsIgnoreCase( this.getAttributeName() );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = 31 * ( attributeName != null ? attributeName.hashCode() : 0 );
+ return result;
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9dee0b11/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
index fe4d99c..732f12a 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
@@ -27,24 +27,25 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.apache.directory.fortress.core.AdminMgr;
+import org.apache.directory.fortress.core.AdminMgrFactory;
+import org.apache.directory.fortress.core.GlobalErrIds;
+import org.apache.directory.fortress.core.ReviewMgr;
+import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.model.ConstraintUtil;
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.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 org.apache.directory.fortress.core.AdminMgr;
-import org.apache.directory.fortress.core.AdminMgrFactory;
-import org.apache.directory.fortress.core.GlobalErrIds;
-import org.apache.directory.fortress.core.ReviewMgr;
-import org.apache.directory.fortress.core.SecurityException;
-import org.apache.directory.fortress.core.util.LogUtil;
-
/**
* AdminMgrImpl Tester.
@@ -1810,7 +1811,86 @@ public class AdminMgrImplTest extends TestCase
}
}
-
+ public void testAddPermissionAttributeSet() throws SecurityException
+ {
+ addPermissionAttributeSet( "ADD-PA-SET TPASET1", PermTestData.TPA_SET_1_NAME, PermTestData.loadPermissionAttributes(PermTestData.PA_TPSASET1));
+ addPermissionAttributeSet( "ADD-PA-SET TPASET2", PermTestData.TPA_SET_2_NAME, PermTestData.loadPermissionAttributes(PermTestData.PA_TPSASET2));
+ }
+
+ public static void addPermissionAttributeSet( String msg, String name, Set<PermissionAttribute> permAttr )
+ {
+ LogUtil.logIt(msg);
+ PermissionAttributeSet paSet = new PermissionAttributeSet(name);
+ try
+ {
+ paSet.setAttributes(permAttr);
+ AdminMgr adminMgr = AdminMgrFactory.createInstance( TestUtils.getContext() );
+
+ adminMgr.addPermissionAttributeSet(paSet);
+ LOG.debug( "addPermissionAttributeSet name [" + paSet.getName() + "] successful" );
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.error( "addPermissionAttributeSet name [" + paSet.getName()
+ + "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
+ fail( ex.getMessage() );
+ }
+ }
+
+ public void testAddPermissionAttributeToSet() throws SecurityException
+ {
+ Set<PermissionAttribute> pas = PermTestData.loadPermissionAttributes(PermTestData.PA_TPSASET2_ADDITIONAL);
+
+ for(PermissionAttribute pa : pas){
+ addPermissionAttributeToSet( "ADD-PA-TO-SET TPASET2", PermTestData.TPA_SET_2_NAME, pa);
+ }
+ }
+
+ public static void addPermissionAttributeToSet( String msg, String name, PermissionAttribute permAttr )
+ {
+ LogUtil.logIt(msg);
+ PermissionAttributeSet paSet = new PermissionAttributeSet(name);
+ try
+ {
+ AdminMgr adminMgr = AdminMgrFactory.createInstance( TestUtils.getContext() );
+
+ adminMgr.addPermissionAttributeToSet(permAttr, name);
+ LOG.debug( "addPermissionAttributeToSet name [" + paSet.getName() + "] successful" );
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.error( "addPermissionAttributeToSet name [" + paSet.getName()
+ + "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
+ fail( ex.getMessage() );
+ }
+ }
+
+ public void testDeletePermissionAttributeSets() throws SecurityException
+ {
+ delPermAttrSet( "DEL-PA-SET TPASET1" , PermTestData.TPA_SET_1_NAME );
+ delPermAttrSet( "DEL-PA-SET TPASET2" , PermTestData.TPA_SET_2_NAME );
+ }
+
+ public static void delPermAttrSet( String msg, String name )
+ {
+ LogUtil.logIt(msg);
+ PermissionAttributeSet paSet = new PermissionAttributeSet(name);
+ try
+ {
+ AdminMgr adminMgr = AdminMgrFactory.createInstance( TestUtils.getContext() );
+
+ adminMgr.deletePermissionAttributeSet(paSet);
+ LOG.debug( "delPermAttrSet name [" + paSet.getName() + "] successful" );
+ }
+ catch ( SecurityException ex )
+ {
+ LOG.error( "delPermAttrSet name [" + paSet.getName()
+ + "] caught SecurityException rc=" + ex.getErrorId() + ", msg=" + ex.getMessage(), ex );
+ fail( ex.getMessage() );
+ }
+ }
+
+
/**
*
* @throws SecurityException
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9dee0b11/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
index 9b2469b..8885c01 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
@@ -20,8 +20,9 @@
package org.apache.directory.fortress.core.impl;
import junit.framework.Test;
-import junit.framework.TestSuite;
import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
import org.apache.directory.fortress.core.GlobalIds;
/**
@@ -114,6 +115,7 @@ public class FortressJUnitTest extends TestCase
suite.addTest( new AdminMgrImplTest( "testRevokePermissionRole" ) );
suite.addTest( new AdminMgrImplTest( "testDeletePermissionOp" ) );
suite.addTest( new AdminMgrImplTest( "testDeletePermissionObj" ) );
+ suite.addTest( new AdminMgrImplTest( "testDeletePermissionAttributeSets" ) );
suite.addTest( new AdminMgrImplTest( "testDeassignUser" ) );
suite.addTest( new AdminMgrImplTest( "testDeleteUser" ) );
suite.addTest( new AdminMgrImplTest( "testForceDeleteUser" ) );
@@ -199,6 +201,9 @@ public class FortressJUnitTest extends TestCase
suite.addTest( new AdminMgrImplTest( "testGrantPermissionRole" ) );
suite.addTest( new AdminMgrImplTest( "testGrantPermissionUser" ) );
+ suite.addTest( new AdminMgrImplTest( "testAddPermissionAttributeSet" ) );
+ suite.addTest( new AdminMgrImplTest( "testAddPermissionAttributeToSet" ) );
+
/***********************************************************/
/* 3. Interrogation */
/***********************************************************/
@@ -238,7 +243,8 @@ public class FortressJUnitTest extends TestCase
suite.addTest( new ReviewMgrImplTest( "testUserPermissions" ) );
suite.addTest( new ReviewMgrImplTest( "testFindSsdSets" ) );
suite.addTest( new ReviewMgrImplTest( "testFindDsdSets" ) );
-
+ suite.addTest( new ReviewMgrImplTest( "testReadPermissionAttributeSets" ) );
+
/***********************************************************/
/* 4. Security Checks */
/***********************************************************/
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9dee0b11/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
index 113cea6..05f2f18 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
@@ -20,10 +20,15 @@
package org.apache.directory.fortress.core.impl;
+import java.util.HashSet;
+import java.util.Set;
+
import junit.framework.TestCase;
+import org.apache.directory.fortress.core.model.ComparisonOperator;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -2761,6 +2766,65 @@ public class PermTestData extends TestCase
private final static int OP_ADMIN_COL = 8;
+ //Fortress Permission Attribute Set Test Data
+ /**
+ * Test Case TPASET1:
+ */
+ public static final String TPA_SET_1_NAME = "TPASET1";
+ public static final String TPA_SET_2_NAME = "TPASET2";
+
+ public static final String[][] PA_TPSASET1 =
+ {
+ {
+ "TPASET1AttributeName1", /* NAME */
+ "true", /* REQUIRED */
+ "string", /* DATA_TYPE */
+ "EQUALS" /* COMPARISON_OPERATOR */
+ }
+ };
+
+ public static final String[][] PA_TPSASET2 =
+ {
+ {
+ "TPASET2AttributeName1", /* NAME */
+ "true", /* REQUIRED */
+ "string", /* DATA_TYPE */
+ "EQUALS" /* COMPARISON_OPERATOR */
+ },
+ {
+ "TPASET2AttributeName2", /* NAME */
+ "false", /* REQUIRED */
+ "int", /* DATA_TYPE */
+ "EQUALS" /* COMPARISON_OPERATOR */
+ }
+ };
+
+ public static final String[][] PA_TPSASET2_ADDITIONAL =
+ {
+ {
+ "TPASET2AttributeName3", /* NAME */
+ "true", /* REQUIRED */
+ "string", /* DATA_TYPE */
+ "EQUALS" /* COMPARISON_OPERATOR */
+ },
+ {
+ "TPASET2AttributeName4", /* NAME */
+ "false", /* REQUIRED */
+ "int", /* DATA_TYPE */
+ "EQUALS" /* COMPARISON_OPERATOR */
+ }
+ };
+
+ public static PermissionAttribute getPA( String[] pa )
+ {
+ PermissionAttribute permAttr = new PermissionAttribute();
+ permAttr.setAttributeName(pa[0]);
+ permAttr.setRequired(Boolean.parseBoolean(pa[1]));
+ permAttr.setDataType(pa[2]);
+ permAttr.setOperator(ComparisonOperator.valueOf(pa[3]));
+ return permAttr;
+ }
+
/**
* @param op
* @return
@@ -2898,4 +2962,17 @@ public class PermTestData extends TestCase
{
return obj[OP_ADMIN_COL].equalsIgnoreCase( "T" );
}
+
+ public static Set<PermissionAttribute> loadPermissionAttributes(String[][] objArray){
+ Set<PermissionAttribute> permAttrs = new HashSet<PermissionAttribute>();
+
+ for ( String[] obj : objArray )
+ {
+ PermissionAttribute pa = PermTestData.getPA(obj);
+ permAttrs.add(pa);
+ }
+
+ return permAttrs;
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9dee0b11/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
index f5efc25..04508f2 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
@@ -29,22 +29,23 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+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.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 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.util.LogUtil;
-
/**
* ReviewMgrImpl Tester.
@@ -157,7 +158,41 @@ public class ReviewMgrImplTest extends TestCase
}
}
+ 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());
+
+ 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 testFindPermissionOps()
{
// public List<Permission> findPermissions(Permission permOp)
[04/43] directory-fortress-core git commit: add new permop
Posted by cp...@apache.org.
add new permop
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/527cfeaf
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/527cfeaf
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/527cfeaf
Branch: refs/heads/master
Commit: 527cfeaf1d7b2eeafb603910eb908c2f52343d9b
Parents: 9dee0b1
Author: clp207 <cl...@psu.edu>
Authored: Sat Jan 30 09:38:08 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
ldap/setup/DelegatedAdminManagerLoad.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/527cfeaf/ldap/setup/DelegatedAdminManagerLoad.xml
----------------------------------------------------------------------
diff --git a/ldap/setup/DelegatedAdminManagerLoad.xml b/ldap/setup/DelegatedAdminManagerLoad.xml
index a6ffa7e..69f674b 100644
--- a/ldap/setup/DelegatedAdminManagerLoad.xml
+++ b/ldap/setup/DelegatedAdminManagerLoad.xml
@@ -217,7 +217,8 @@
<permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdRoleSetRoles" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdRoleSetCardinality" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="dsdSets" admin="true"/>
- <permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findAnyPermissions" admin="true"/>
+ <permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="findAnyPermissions" admin="true"/>
+ <permop objName="org.apache.directory.fortress.core.impl.ReviewMgrImpl" opName="readPermAttributeSet" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="readRole" admin="true"/>
<permop objName="org.apache.directory.fortress.core.impl.DelReviewMgrImpl" opName="findRoles" admin="true"/>
[11/43] directory-fortress-core git commit: added documentation
Posted by cp...@apache.org.
added documentation
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/ab95a17b
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/ab95a17b
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/ab95a17b
Branch: refs/heads/master
Commit: ab95a17b9e2a3493d0892a7dbcfabcd9a0e7bfbc
Parents: 6c68e41
Author: clp207 <cl...@psu.edu>
Authored: Fri Jan 29 14:14:11 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 95 ++++++++++++++++++--
.../directory/fortress/core/ReviewMgr.java | 29 +++++-
.../directory/fortress/core/impl/UserDAO.java | 14 ++-
.../core/model/PermissionAttribute.java | 2 +-
4 files changed, 130 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/ab95a17b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index 93b6e18..f46703a 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -450,11 +450,40 @@ public interface AdminMgr extends Manageable
void assignUser( UserRole uRole )
throws SecurityException;
- //TODO: add documentation
+ /**
+ * This method adds a roleConstraint (ftRC) to the user ldap entry. (ftRC=ROLE_NAME$type$CONSTRAINT_TYPE$CONSTRAINT_PASETNAME$CONSTRAINT_VALUE)
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link UserRole#name} - contains the name for already existing Role to be assigned</li>
+ * <li>{@link UserRole#userId} - contains the userId for existing User</li>
+ * <li>{@link RoleConstraint#type} - contains the type of role constraint (filter, other)</li>
+ * <li>{@link RoleConstraint#value} - contains the value of the role constraint which is currently not validated in any way</li>
+ * <li>{@link RoleConstraint#paSetName} - contains the userId for existing User, contains the name of the permission attribute set this constraint is applicable for</li>
+ * </ul>
+ *
+ * @param uRole must contain {@link UserRole#userId} and {@link UserRole#name}
+ * @param roleConstraint must contain {@link RoleConstraint#type} and {@link RoleConstraint#value} and {@link RoleConstraint#paSetName}
+ * @return RoleConstraint that was added to user role assignment
+ * @throws SecurityException in the event of validation or system error.
+ */
RoleConstraint addRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
throws SecurityException;
- //TODO: remove documentation
+ /**
+ * Thie method removes a roleConstraint (ftRC) from the user ldap entry.
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link UserRole#name} - contains the name for already existing Role to be assigned</li>
+ * <li>{@link UserRole#userId} - contains the userId for existing User</li>
+ * <li>{@link RoleConstraint#type} - contains the type of role constraint (filter, other)</li>
+ * <li>{@link RoleConstraint#value} - contains the value of the role constraint which is currently not validated in any way</li>
+ * <li>{@link RoleConstraint#paSetName} - contains the userId for existing User, contains the name of the permission attribute set this constraint is applicable for</li>
+ * </ul>
+ *
+ * @param uRole must contain {@link UserRole#userId} and {@link UserRole#name}
+ * @param roleConstraint must contain {@link RoleConstraint#type} and {@link RoleConstraint#value} and {@link RoleConstraint#paSetName}
+ * @throws SecurityException in the event of validation or system error.
+ */
void removeRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
throws SecurityException;
@@ -521,19 +550,73 @@ public interface AdminMgr extends Manageable
throws SecurityException;
- //TODO: add documentation
+ /**
+ * This method will create a new permission attribute set object with resides under the
+ * {@code ou=Constraints,ou=RBAC,dc=yourHostName,dc=com} container in directory information tree.
+ * The attribute set may contain 0 to many {@link org.apache.directory.fortress.core.model.PermissionAttribute}
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link PermissionAttributeSet#name} - contains the name of the permission attribute set</li>
+ * </ul>
+ *
+ * @param permAttributeSet must contain {@link PermissionAttributeSet#name}
+ * @return PermissionAttributeSet that was created
+ * @throws SecurityException - thrown in the event of perm attribute set data or system error.
+ */
PermissionAttributeSet addPermissionAttributeSet( PermissionAttributeSet permAttributeSet )
throws SecurityException;
- //TODO: add documentation
+ /**
+ * This method will delete a permission attribute set object.
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link PermissionAttributeSet#name} - contains the name of the permission attribute set</li>
+ * </ul>
+ *
+ * @param permAttributeSet must contain {@link PermissionAttributeSet#name}
+ * @throws SecurityException - thrown in the event of perm attribute set data or system error.
+ */
void deletePermissionAttributeSet( PermissionAttributeSet permAttributeSet )
throws SecurityException;
- //TODO: add documentation
+ /**
+ * This method adds a permission attribute (ftPA) to a permission attribute set.
+ * <h3></h3>
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link PermissionAttribute#attributeName} - contains the name of existing object being targeted for the permission update</li>
+ * <li>{@link PermissionAttribute#dataType} - contains the data type of the permission attribute values (string,int,long,float)</li>
+ * <li>attributeSetName - contains the name of existing permission attribute set being modified</li>
+ * </ul>
+ * <h4>optional parameters</h4>
+ * <ul>
+ * <li>{@link PermissionAttribute#required} - Flag to specify this attribute is required, defaults to false.</li>
+ * <li>{@link PermissionAttribute#operator} - Can specify an operator this attribute must use.</li>
+ * <li>{@link PermissionAttribute#validValues} - CSV of valid values. Currently up to interpreting application to understand these.</li>
+ * <li>{@link PermissionAttribute#defaultValue} - A default value for the attribute value if none is specified.</li>
+ * </ul>
+ *
+ * @param permAttribute must contain {@link PermissionAttribute#attributeName} and {@link PermissionAttribute#dataType}
+ * @param attributeSetName The name of the permission attribute set this ftPA should be added.
+ * @return PermissionAttribute entity created
+ * @throws SecurityException - thrown in the event of data or system error
+ */
PermissionAttribute addPermissionAttributeToSet( PermissionAttribute permAttribute, String attributeSetName )
throws SecurityException;
- //TODO: add documentation
+ /**
+ * This method removed a permission attribute (ftPA) from an existing permission attribute set.
+ * <h3></h3>
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link PermissionAttribute#attributeName} - contains the name of existing object being targeted for the permission update</li>
+ * <li>attributeSetName - contains the name of existing permission attribute set being modified</li>
+ * </ul>
+ *
+ * @param permAttribute must contain {@link PermissionAttribute#attributeName}
+ * @param attributeSetName The name of the permission attribute set this ftPA should be removed from
+ * @throws SecurityException - thrown in the event of data or system error
+ */
void removePermissionAttributeFromSet( PermissionAttribute permAttribute, String attributeSetName )
throws SecurityException;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/ab95a17b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
index 2f8dffe..5271b99 100755
--- a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
@@ -110,7 +110,18 @@ public interface ReviewMgr extends Manageable
PermObj readPermObj( PermObj permObj )
throws SecurityException;
- //TODO: add documentation
+ /**
+ * Method read permission attribute set in directory
+ * <h3></h3>
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link PermissionAttributeSet#name} - contains the name of existing object being targeted</li>
+ * </ul>
+ *
+ * @param permAttributeSet entity contains the {@link PermissionAttributeSet#name} of target record.
+ * @return PermissionAttributeSet loaded with perm attribute set data.
+ * @throws SecurityException is thrown if object not found or system error.
+ */
PermissionAttributeSet readPermAttributeSet( PermissionAttributeSet permAttributeSet )
throws SecurityException;
@@ -444,7 +455,21 @@ public interface ReviewMgr extends Manageable
List<Permission> rolePermissions( Role role, boolean noInheritance )
throws SecurityException;
- //TODO: add documentation
+ /**
+ * This function returns all the permission attribute set (which contain 0 to many permission attributes)
+ * for a given role. The function is valid if and only if the role is a member of the ROLES data
+ * set.
+ * * <h3></h3>
+ * <h4>required parameters</h4>
+ * <ul>
+ * <li>{@link Role#name} - contains the name to use for the Role targeted for search.</li>
+ * </ul>
+ *
+ * @param role contains role name, {@link Role#name} of Role entity Permission is granted to.
+ * @param noInheritance if true will NOT include inherited roles in the search.
+ * @return List of type PermissionAttributeSet that contains all Permission Attribute valid for the role.
+ * @throws SecurityException In the event system error occurs.
+ */
List<PermissionAttributeSet> rolePermissionAttributeSets( Role role, boolean noInhertiance )
throws SecurityException;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/ab95a17b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index f2edc47..b1a0c9e 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -1824,6 +1824,12 @@ final class UserDAO extends ApacheDsDataProvider
return userDn;
}
+ /**
+ * @param uRole
+ * @param roleConstraint
+ * @throws UpdateException
+ * @throws FinderException
+ */
void assign( UserRole uRole, RoleConstraint roleConstraint ) throws UpdateException, FinderException
{
LdapConnection ld = null;
@@ -1854,6 +1860,12 @@ final class UserDAO extends ApacheDsDataProvider
}
}
+ /**
+ * @param uRole
+ * @param roleConstraint
+ * @throws UpdateException
+ * @throws FinderException
+ */
void deassign( UserRole uRole, RoleConstraint roleConstraint ) throws UpdateException, FinderException
{
LdapConnection ld = null;
@@ -1863,7 +1875,7 @@ final class UserDAO extends ApacheDsDataProvider
try
{
List<Modification> mods = new ArrayList<Modification>();
- szRoleConstraint = roleConstraint.gerRawData(uRole);
+ szRoleConstraint = roleConstraint.getRawData(uRole);
mods.add( new DefaultModification( ModificationOperation.REMOVE_ATTRIBUTE, GlobalIds.USER_ROLE_DATA,
szRoleConstraint ) );
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/ab95a17b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index 453a784..eba8522 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -38,7 +38,7 @@ public class PermissionAttribute extends FortEntity implements Serializable {
private static final String DEFAULT_VALUE_PARAM_NAME = "defaultValue";
private String attributeName;
- private Boolean required;
+ private Boolean required = false;
private ComparisonOperator operator;
//TODO: make this an enum?
private String dataType;
[39/43] directory-fortress-core git commit: fixed indentation and
added some comments
Posted by cp...@apache.org.
fixed indentation and added some comments
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/887530a9
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/887530a9
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/887530a9
Branch: refs/heads/master
Commit: 887530a91048244836abf0a225c9034af73a013c
Parents: e1d934e
Author: clp207 <cl...@psu.edu>
Authored: Thu Sep 15 13:37:59 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu Sep 15 13:37:59 2016 -0400
----------------------------------------------------------------------
.../core/model/PermissionAttribute.java | 144 ++++++++++---------
.../core/model/PermissionAttributeSet.java | 115 ++++++++-------
.../fortress/core/model/RoleConstraint.java | 86 +++++------
.../fortress/core/model/RoleConstraintType.java | 9 +-
4 files changed, 189 insertions(+), 165 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/887530a9/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index 1ca5e43..3fa41a2 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -29,6 +29,14 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
+/**
+ * A Permission Attribute is defines an attribute about a permission used for
+ * attribute type permission filtering. Fortress merely stores this data, does
+ * not enforce the attribute filtering. It is up to the client to do the attribute
+ * checks.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
@XmlRootElement(name = "ftPA")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "permission", propOrder =
@@ -44,7 +52,7 @@ public class PermissionAttribute extends FortEntity implements Serializable {
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
-
+
private String attributeName;
private String defaultOperator;
private String dataType;
@@ -54,17 +62,17 @@ public class PermissionAttribute extends FortEntity implements Serializable {
private String dn;
private String internalId;
private String description;
-
+
public PermissionAttribute()
{
-
+
}
-
+
public PermissionAttribute(String attributeName)
{
- this.attributeName = attributeName;
+ this.attributeName = attributeName;
}
-
+
/**
* Checks that attribute names are equal
*/
@@ -95,7 +103,7 @@ public class PermissionAttribute extends FortEntity implements Serializable {
return thatPermObj.getAttributeName().equalsIgnoreCase( this.getAttributeName() );
}
-
+
@Override
public int hashCode()
{
@@ -103,84 +111,84 @@ public class PermissionAttribute extends FortEntity implements Serializable {
return result;
}
- public String getDefaultOperator() {
- return defaultOperator;
- }
+ public String getDefaultOperator() {
+ return defaultOperator;
+ }
- public void setDefaultOperator(String defaultOperator) {
- this.defaultOperator = defaultOperator;
- }
+ public void setDefaultOperator(String defaultOperator) {
+ this.defaultOperator = defaultOperator;
+ }
- public String getDataType() {
- return dataType;
- }
+ public String getDataType() {
+ return dataType;
+ }
- public void setDataType(String dataType) {
- this.dataType = dataType;
- }
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
- public String getDefaultValue() {
- return defaultValue;
- }
+ public String getDefaultValue() {
+ return defaultValue;
+ }
- public void setDefaultValue(String defaultValue) {
- this.defaultValue = defaultValue;
- }
+ public void setDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
- public String getDefaultStrategy() {
- return defaultStrategy;
- }
+ public String getDefaultStrategy() {
+ return defaultStrategy;
+ }
- public void setDefaultStrategy(String defaultStrategy) {
- this.defaultStrategy = defaultStrategy;
- }
+ public void setDefaultStrategy(String defaultStrategy) {
+ this.defaultStrategy = defaultStrategy;
+ }
- public List<String> getValidValues() {
- if(validValues == null){
- validValues = new ArrayList<String>();
- }
- return validValues;
- }
+ public List<String> getValidValues() {
+ if(validValues == null){
+ validValues = new ArrayList<String>();
+ }
+ return validValues;
+ }
- public void setValidValues(List<String> validValues) {
- this.validValues = validValues;
- }
+ public void setValidValues(List<String> validValues) {
+ this.validValues = validValues;
+ }
- public String getAttributeName() {
- return attributeName;
- }
+ public String getAttributeName() {
+ return attributeName;
+ }
- public void setAttributeName(String attributeName) {
- this.attributeName = attributeName;
- }
+ public void setAttributeName(String attributeName) {
+ this.attributeName = attributeName;
+ }
- public String getDn() {
- return dn;
- }
+ public String getDn() {
+ return dn;
+ }
- public void setDn(String dn) {
- this.dn = dn;
- }
+ public void setDn(String dn) {
+ this.dn = dn;
+ }
- public String getInternalId() {
- return internalId;
- }
+ public String getInternalId() {
+ return internalId;
+ }
- public void setInternalId() {
+ public void setInternalId() {
UUID uuid = UUID.randomUUID();
this.internalId = uuid.toString();
- }
-
- public void setInternalId(String internalId) {
+ }
+
+ public void setInternalId(String internalId) {
this.internalId = internalId;
- }
+ }
- public String getDescription() {
- return description;
- }
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
- public void setDescription(String description) {
- this.description = description;
- }
-
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/887530a9/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
index eced0e5..84822fc 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -31,47 +31,54 @@ import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
+/**
+ * This a grouping of {@link org.apache.directory.fortress.core.model.PermissionAttribute}.
+ * A {@link org.apache.directory.fortress.core.model.Permission} can link to 0 to many Permission
+ * Attribute Sets.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
@XmlRootElement(name = "ftPermissionAttributeSet")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "permission", propOrder =
- {
- "name",
- "attributes",
- "internalId",
- "description",
- "type"
+{
+ "name",
+ "attributes",
+ "internalId",
+ "description",
+ "type"
})
public class PermissionAttributeSet extends FortEntity implements Serializable {
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
-
- private String name;
- @XmlElement(nillable = true)
- private Set<PermissionAttribute> attributes;
+
+ private String name;
+ @XmlElement(nillable = true)
+ private Set<PermissionAttribute> attributes;
private String internalId;
private String description;
private String type;
@XmlTransient
private String dn;
-
+
public PermissionAttributeSet(String name){
- this.name = name;
+ this.name = name;
}
-
- public PermissionAttributeSet(){
-
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
+
+ public PermissionAttributeSet(){
+
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
/**
* Return the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
* attribute of ftPA entries on the 'ftAttributeSet' object class.
@@ -80,10 +87,10 @@ public class PermissionAttributeSet extends FortEntity implements Serializable {
*/
public Set<PermissionAttribute> getAttributes()
{
- if(this.attributes == null){
- attributes = new HashSet<PermissionAttribute>();
- }
-
+ if(this.attributes == null){
+ attributes = new HashSet<PermissionAttribute>();
+ }
+
return this.attributes;
}
@@ -98,42 +105,42 @@ public class PermissionAttributeSet extends FortEntity implements Serializable {
{
this.attributes = attributes;
}
-
+
public void setInternalId(String internalId){
- this.internalId = internalId;
+ this.internalId = internalId;
}
- public String getInternalId() {
- return internalId;
- }
+ public String getInternalId() {
+ return internalId;
+ }
- public void setInternalId() {
+ public void setInternalId() {
UUID uuid = UUID.randomUUID();
this.internalId = uuid.toString();
- }
+ }
- public String getDescription() {
- return description;
- }
+ public String getDescription() {
+ return description;
+ }
- public void setDescription(String description) {
- this.description = description;
- }
+ public void setDescription(String description) {
+ this.description = description;
+ }
- public String getType() {
- return type;
- }
+ public String getType() {
+ return type;
+ }
- public void setType(String type) {
- this.type = type;
- }
+ public void setType(String type) {
+ this.type = type;
+ }
- public String getDn() {
- return dn;
- }
+ public String getDn() {
+ return dn;
+ }
- public void setDn(String dn) {
- this.dn = dn;
- }
+ public void setDn(String dn) {
+ this.dn = dn;
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/887530a9/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
index 77df7db..13db9a9 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -23,51 +23,55 @@ import java.io.Serializable;
import org.apache.directory.fortress.core.util.Config;
+/**
+ * The role constraint object holds non date time constraints on user to role relationships.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
public class RoleConstraint implements Serializable {
private static final long serialVersionUID = 1L;
-
- public static final String RC_TYPE_NAME = "type";
-
- private RoleConstraintType constraintType;
- private String value;
- private String paSetName;
-
- public RoleConstraint(){
-
- }
-
- public RoleConstraint(String value, RoleConstraintType constraintType, String paSetName){
- this.constraintType = constraintType;
- this.value = value;
- this.paSetName = paSetName;
- }
-
- public RoleConstraintType getConstraintType() {
- return constraintType;
- }
- public void setConstraintType(RoleConstraintType constraintType) {
- this.constraintType = constraintType;
- }
- public String getValue() {
- return value;
- }
- public void setValue(String value) {
- this.value = value;
- }
- public String getPaSetName() {
- return paSetName;
- }
- public void setPaSetName(String paSetName) {
- this.paSetName = paSetName;
- }
-
- //BANK_USER$seq$0type$filter$ecomm.merchant.id$AccountId=12345&WithdrawLimit=500
- public String getRawData(UserRole uRole){
+ public static final String RC_TYPE_NAME = "type";
+
+ private RoleConstraintType constraintType;
+ private String value;
+ private String paSetName;
+
+ public RoleConstraint(){
+
+ }
+
+ public RoleConstraint(String value, RoleConstraintType constraintType, String paSetName){
+ this.constraintType = constraintType;
+ this.value = value;
+ this.paSetName = paSetName;
+ }
+
+ public RoleConstraintType getConstraintType() {
+ return constraintType;
+ }
+ public void setConstraintType(RoleConstraintType constraintType) {
+ this.constraintType = constraintType;
+ }
+ public String getValue() {
+ return value;
+ }
+ public void setValue(String value) {
+ this.value = value;
+ }
+ public String getPaSetName() {
+ return paSetName;
+ }
+
+ public void setPaSetName(String paSetName) {
+ this.paSetName = paSetName;
+ }
+
+ public String getRawData(UserRole uRole){
StringBuilder sb = new StringBuilder();
String delimeter = Config.getInstance().getDelimiter();
-
+
sb.append(uRole.getName());
sb.append( delimeter );
sb.append(RC_TYPE_NAME);
@@ -77,8 +81,8 @@ public class RoleConstraint implements Serializable {
sb.append(paSetName);
sb.append( delimeter );
sb.append(value);
-
+
return sb.toString();
- }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/887530a9/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
index 4f79df0..0d24e81 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
@@ -19,7 +19,12 @@
*/
package org.apache.directory.fortress.core.model;
+/**
+ * The type of role constraint.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
public enum RoleConstraintType {
- FILTER,
- OTHER
+ FILTER,
+ OTHER
}
[33/43] directory-fortress-core git commit: have junit tests working
again
Posted by cp...@apache.org.
have junit tests working again
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/c70d237c
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/c70d237c
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/c70d237c
Branch: refs/heads/master
Commit: c70d237c52108365823b02b85b19fdebed535695
Parents: c4614be
Author: clp207 <cl...@psu.edu>
Authored: Wed Aug 24 09:10:52 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Aug 24 09:10:52 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 4 ++--
.../java/org/apache/directory/fortress/core/impl/PermDAO.java | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/c70d237c/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index a8a492b..c56a6b9 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -473,7 +473,7 @@ objectClass ( ftObId:8
)
## OC9: Fortress Permission Attribute Set Structural Object Class
-objectclass ( ftObId:9
+objectclass ( ftObId:9
NAME 'ftAttributeSet'
DESC 'Fortress Attribute Set Structural Object Class'
SUP organizationalunit
@@ -491,7 +491,7 @@ objectclass ( ftObId:9
)
## OC10: Fortress Permission Attribute Structural Object Class
-objectclass ( ftObId:10
+objectclass ( ftObId:10
NAME 'ftAttribute'
DESC 'Fortress Attribute Structural Object Class'
SUP organizationalrole
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/c70d237c/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 838d425..1a2a599 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -1097,7 +1097,7 @@ final class PermDAO extends LdapDataProvider
filterbuf.append( GlobalIds.FILTER_PREFIX );
filterbuf.append( PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
filterbuf.append( ")(" );
- filterbuf.append( GlobalIds.FT_PERMISSION_ATTRIBUTE );
+ filterbuf.append( GlobalIds.FT_PERMISSION_ATTRIBUTE_SET );
filterbuf.append( "=" );
filterbuf.append( paSetVal );
filterbuf.append( "))" );
@@ -2026,13 +2026,13 @@ final class PermDAO extends LdapDataProvider
private String getDn( PermissionAttributeSet paSet, String contextId )
{
- return GlobalIds.PERMISSION_ATTRIBUTE_SET_NAME + "=" + paSet.getName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
+ return SchemaConstants.OU_AT + "=" + paSet.getName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
}
private String getDn( PermissionAttribute pa, String paSetName, String contextId )
{
- return GlobalIds.PERMISSION_ATTRIBUTE_SET_NAME + "=" + paSetName + "," + GlobalIds.PERMISSION_ATTRIBUTE_NAME + "=" + pa.getAttributeName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
+ return GlobalIds.FT_PERMISSION_ATTRIBUTE + "=" + pa.getAttributeName() + "," + SchemaConstants.OU_AT + "=" + paSetName + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
}
[40/43] directory-fortress-core git commit: fixed more indentation
Posted by cp...@apache.org.
fixed more indentation
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/0a6a44da
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/0a6a44da
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/0a6a44da
Branch: refs/heads/master
Commit: 0a6a44dabea74d5168081fb80618dd5dd7d0d5b7
Parents: 887530a
Author: clp207 <cl...@psu.edu>
Authored: Thu Sep 15 13:42:17 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu Sep 15 13:42:17 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/impl/PermDAO.java | 216 +++++++++----------
.../fortress/core/impl/ReviewMgrImpl.java | 37 +---
2 files changed, 118 insertions(+), 135 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/0a6a44da/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 5788c61..b8ea568 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -1127,87 +1127,87 @@ final class PermDAO extends LdapDataProvider
}
PermissionAttributeSet getPermAttributeSet( PermissionAttributeSet permAttributeSet )
- throws FinderException
+ throws FinderException
{
- PermissionAttributeSet entity = null;
- LdapConnection ld = null;
- String dn = getDn(permAttributeSet, permAttributeSet.getContextId());
-
- try
- {
- ld = getAdminConnection();
- Entry findEntry = read( ld, dn, PERMISION_ATTRIBUTE_SET_ATRS );
- if ( findEntry == null )
- {
- String warning = "getPermAttributeSet no entry found dn [" + dn + "]";
- throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
- }
- entity = unloadPASetLdapEntry( findEntry, 0 );
-
- //find permission attributes for this set
- entity.setAttributes(this.findPermissionAttributes(entity));
- }
- catch ( LdapNoSuchObjectException e )
- {
- String warning = "getPermAttributeSet COULD NOT FIND ENTRY for dn [" + dn + "]";
- throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
- }
- catch ( LdapException e )
- {
- String error = "getPermAttributeSet dn [" + dn + "] caught LdapException=" + e.getMessage();
- throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, error, e );
- }
- finally
- {
- closeAdminConnection( ld );
- }
-
- return entity;
+ PermissionAttributeSet entity = null;
+ LdapConnection ld = null;
+ String dn = getDn(permAttributeSet, permAttributeSet.getContextId());
+
+ try
+ {
+ ld = getAdminConnection();
+ Entry findEntry = read( ld, dn, PERMISION_ATTRIBUTE_SET_ATRS );
+ if ( findEntry == null )
+ {
+ String warning = "getPermAttributeSet no entry found dn [" + dn + "]";
+ throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
+ }
+ entity = unloadPASetLdapEntry( findEntry, 0 );
+
+ //find permission attributes for this set
+ entity.setAttributes(this.findPermissionAttributes(entity));
+ }
+ catch ( LdapNoSuchObjectException e )
+ {
+ String warning = "getPermAttributeSet COULD NOT FIND ENTRY for dn [" + dn + "]";
+ throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
+ }
+ catch ( LdapException e )
+ {
+ String error = "getPermAttributeSet dn [" + dn + "] caught LdapException=" + e.getMessage();
+ throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+
+ return entity;
}
Set<PermissionAttribute> findPermissionAttributes( PermissionAttributeSet paSet )
- throws FinderException
+ throws FinderException
{
- Set<PermissionAttribute> paList = new HashSet<PermissionAttribute>();
- LdapConnection ld = null;
- String permRoot = getRootDn( paSet.getContextId() );
-
- try
- {
- String paSetVal = encodeSafeText( paSet.getName(), GlobalIds.PERM_LEN );
- StringBuilder filterbuf = new StringBuilder();
- filterbuf.append( GlobalIds.FILTER_PREFIX );
- filterbuf.append( PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
- filterbuf.append( ")(" );
- filterbuf.append( GlobalIds.FT_PERMISSION_ATTRIBUTE_SET );
- filterbuf.append( "=" );
- filterbuf.append( paSetVal );
- filterbuf.append( "))" );
- ld = getAdminConnection();
- SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISION_ATTRIBUTE_ATRS, false, GlobalIds.BATCH_SIZE );
- long sequence = 0;
-
- while ( searchResults.next() )
- {
- paList.add( unloadPALdapEntry( searchResults.getEntry(), sequence++ ) );
- }
- }
- catch ( LdapException e )
- {
- String error = "findPermissionAttributes caught LdapException=" + e.getMessage();
- throw new FinderException( GlobalErrIds.PERM_SEARCH_FAILED, error, e );
- }
- catch ( CursorException e )
- {
- String error = "findPermissionAttributes caught CursorException=" + e.getMessage();
- throw new FinderException( GlobalErrIds.PERM_SEARCH_FAILED, error, e );
- }
- finally
- {
- closeAdminConnection( ld );
- }
- return paList;
+ Set<PermissionAttribute> paList = new HashSet<PermissionAttribute>();
+ LdapConnection ld = null;
+ String permRoot = getRootDn( paSet.getContextId() );
+
+ try
+ {
+ String paSetVal = encodeSafeText( paSet.getName(), GlobalIds.PERM_LEN );
+ StringBuilder filterbuf = new StringBuilder();
+ filterbuf.append( GlobalIds.FILTER_PREFIX );
+ filterbuf.append( PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
+ filterbuf.append( ")(" );
+ filterbuf.append( GlobalIds.FT_PERMISSION_ATTRIBUTE_SET );
+ filterbuf.append( "=" );
+ filterbuf.append( paSetVal );
+ filterbuf.append( "))" );
+ ld = getAdminConnection();
+ SearchCursor searchResults = search( ld, permRoot,
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISION_ATTRIBUTE_ATRS, false, GlobalIds.BATCH_SIZE );
+ long sequence = 0;
+
+ while ( searchResults.next() )
+ {
+ paList.add( unloadPALdapEntry( searchResults.getEntry(), sequence++ ) );
+ }
+ }
+ catch ( LdapException e )
+ {
+ String error = "findPermissionAttributes caught LdapException=" + e.getMessage();
+ throw new FinderException( GlobalErrIds.PERM_SEARCH_FAILED, error, e );
+ }
+ catch ( CursorException e )
+ {
+ String error = "findPermissionAttributes caught CursorException=" + e.getMessage();
+ throw new FinderException( GlobalErrIds.PERM_SEARCH_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ return paList;
}
/**
@@ -1452,42 +1452,42 @@ final class PermDAO extends LdapDataProvider
}
private PermissionAttributeSet unloadPASetLdapEntry( Entry le, long sequence )
- throws LdapInvalidAttributeValueException
+ throws LdapInvalidAttributeValueException
{
- PermissionAttributeSet entity = new ObjectFactory().createPermAttributeSet();
- entity.setSequenceId( sequence );
- entity.setName( getAttribute( le, SchemaConstants.CN_AT ) );
- entity.setDn( le.getDn().getName() );
- entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
- entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
- entity.setType( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET_TYPE ) );
-
- return entity;
+ PermissionAttributeSet entity = new ObjectFactory().createPermAttributeSet();
+ entity.setSequenceId( sequence );
+ entity.setName( getAttribute( le, SchemaConstants.CN_AT ) );
+ entity.setDn( le.getDn().getName() );
+ entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
+ entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
+ entity.setType( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET_TYPE ) );
+
+ return entity;
}
-
+
private PermissionAttribute unloadPALdapEntry( Entry le, long sequence )
- throws LdapInvalidAttributeValueException
+ throws LdapInvalidAttributeValueException
{
- PermissionAttribute entity = new ObjectFactory().createPermissionAttribute();
- entity.setSequenceId( sequence );
- entity.setAttributeName( getAttribute( le, SchemaConstants.CN_AT ) );
- entity.setDn( le.getDn().getName() );
- entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
- entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
- entity.setDataType( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE ) );
- entity.setDefaultOperator( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR ) );
- entity.setDefaultStrategy( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY ) );
- entity.setDefaultValue( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE ) );
-
- List<String> validValues = getAttributes( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES );
-
- if(validValues != null){
- for(String value : validValues){
- entity.getValidValues().add(value);
- }
- }
-
- return entity;
+ PermissionAttribute entity = new ObjectFactory().createPermissionAttribute();
+ entity.setSequenceId( sequence );
+ entity.setAttributeName( getAttribute( le, SchemaConstants.CN_AT ) );
+ entity.setDn( le.getDn().getName() );
+ entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
+ entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
+ entity.setDataType( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE ) );
+ entity.setDefaultOperator( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR ) );
+ entity.setDefaultStrategy( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY ) );
+ entity.setDefaultValue( getAttribute( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE ) );
+
+ List<String> validValues = getAttributes( le, GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES );
+
+ if(validValues != null){
+ for(String value : validValues){
+ entity.getValidValues().add(value);
+ }
+ }
+
+ return entity;
}
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/0a6a44da/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index fa10de8..4aae5b8 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -430,13 +430,13 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
*/
@Override
public List<PermissionAttributeSet> rolePermissionAttributeSets( Role role, boolean noInhertiance )
- throws SecurityException
+ throws SecurityException
{
- Map<String, PermissionAttributeSet> permAttributeSets = new HashMap<String, PermissionAttributeSet>();
-
- //look through all permissions in the role
- List<Permission> permissions = this.rolePermissions(role, noInhertiance);
- for(Permission perm : permissions){
+ Map<String, PermissionAttributeSet> permAttributeSets = new HashMap<String, PermissionAttributeSet>();
+
+ //look through all permissions in the role
+ List<Permission> permissions = this.rolePermissions(role, noInhertiance);
+ for(Permission perm : permissions){
if( CollectionUtils.isNotEmpty(perm.getPaSets() )){
for(String paSetName : perm.getPaSets()){
if(!permAttributeSets.containsKey(paSetName)){
@@ -446,7 +446,7 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
}
}
}
-
+
return new ArrayList<PermissionAttributeSet>(permAttributeSets.values());
}
@@ -725,29 +725,12 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
public List<RoleConstraint> findRoleConstraints(User user, Permission permission, RoleConstraintType rcType) throws SecurityException {
String methodName = "findRoleConstraints";
checkAccess(CLS_NM, methodName);
- //find roles this permission is authorized for
+ //find roles this permission is authorized for
Permission pe = permP.read(permission);
Set<String> authorizedRoles = authorizeRoles(pe.getRoles());
-
+
//find role constraints for the user and the permission's pa set
- return userP.findRoleConstraints(authorizedRoles, user, rcType, pe.getPaSets());
+ return userP.findRoleConstraints(authorizedRoles, user, rcType, pe.getPaSets());
}
-
-
- /**
- * {@inheritDoc}
- */
- /*
- @Override
- public List<UserRole> assignedRoles(User user)
- throws SecurityException
- {
- String methodName = "assignedRoles";
- assertContext(CLS_NM, methodName, user, GlobalErrIds.USER_NULL);
- checkAccess(CLS_NM, methodName);
- User ue = userP.read(user, true);
- return ue.getRoles();
- }
- */
}
\ No newline at end of file
[08/43] directory-fortress-core git commit: added remove constraint
method
Posted by cp...@apache.org.
added remove constraint method
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/8a47b1fc
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/8a47b1fc
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/8a47b1fc
Branch: refs/heads/master
Commit: 8a47b1fcd9dd7c47dc343b0ee7cf9bca88cf3385
Parents: 2f3045b
Author: clp207 <cl...@psu.edu>
Authored: Tue Jan 26 16:29:52 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 6 +++-
.../fortress/core/impl/AdminMgrImpl.java | 19 ++++++++++--
.../directory/fortress/core/impl/UserDAO.java | 31 ++++++++++++++++++++
.../directory/fortress/core/impl/UserP.java | 8 +++++
.../fortress/core/rest/AdminMgrRestImpl.java | 8 +++++
5 files changed, 68 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8a47b1fc/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index 4c49e5f..4131d2b 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -451,8 +451,12 @@ public interface AdminMgr extends Manageable
//TODO: add documentation
RoleConstraint addRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
- throws SecurityException;
+ throws SecurityException;
+ //TODO: remove documentation
+ void removeRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
+ throws SecurityException;
+
/**
* This command deletes the assignment of the User from the Role entities. The command is
* valid if and only if the user is a member of the USERS data set, the role is a member of
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8a47b1fc/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index 166558a..ab4aea9 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -341,7 +341,7 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
throws SecurityException
{
//TODO: need new arbac perm and/or add security check
- String methodName = "assignUser";
+ String methodName = "assignUser";
assertContext( CLS_NM, methodName, uRole, GlobalErrIds.URLE_NULL );
userP.assign( uRole, roleConstraint );
@@ -353,6 +353,20 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
* {@inheritDoc}
*/
@Override
+ public void removeRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
+ throws SecurityException
+ {
+ //TODO: need new arbac perm and/or add security check
+ String methodName = "assignUser";
+ assertContext( CLS_NM, methodName, uRole, GlobalErrIds.URLE_NULL );
+
+ userP.deassign( uRole, roleConstraint );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void deassignUser( UserRole uRole ) throws SecurityException
{
String methodName = "deassignUser";
@@ -367,8 +381,7 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
// Now "deassign" user dn attribute, this will remove a single, standard attribute value,
// called "roleOccupant", from the node:
roleP.deassign( role, dn );
- }
-
+ }
/**
* {@inheritDoc}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8a47b1fc/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index 6ffb8e0..47da5ac 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -1856,6 +1856,37 @@ final class UserDAO extends ApacheDsDataProvider
}
}
+ void deassign( UserRole uRole, RoleConstraint roleConstraint ) throws UpdateException, FinderException
+ {
+ LdapConnection ld = null;
+ String szRoleConstraint = "";
+ String userDn = getDn( uRole.getUserId(), uRole.getContextId() );
+
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+ szRoleConstraint = roleConstraint.gerRawData(uRole);
+
+ mods.add( new DefaultModification( ModificationOperation.REMOVE_ATTRIBUTE, GlobalIds.USER_ROLE_DATA,
+ szRoleConstraint ) );
+
+ ld = getAdminConnection();
+ modify( ld, userDn, mods, uRole );
+
+ //TODO: make sure not adding same RC twice
+ }
+ catch ( LdapException e )
+ {
+ String warning = "deassign userId [" + uRole.getUserId() + "] role constraint [" + szRoleConstraint + "] ";
+
+ warning += "caught LDAPException=" + e.getMessage();
+ throw new UpdateException( GlobalErrIds.URLE_ASSIGN_FAILED, warning, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ }
/**
* @param uRole
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8a47b1fc/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
index 979bcd4..940ca63 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
@@ -643,6 +643,14 @@ final class UserP
uDao.assign( uRole, roleConstraint );
}
+
+ //TODO: add documentation, maybe change method name?
+ void deassign( UserRole uRole, RoleConstraint roleConstraint ) throws SecurityException
+ {
+ //TODO: validate?
+
+ uDao.deassign( uRole, roleConstraint );
+ }
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8a47b1fc/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
index b9b45e5..c3e61ac 100644
--- a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
@@ -1257,4 +1257,12 @@ public final class AdminMgrRestImpl extends Manageable implements AdminMgr
// TODO Auto-generated method stub
return null;
}
+
+
+ @Override
+ public void removeRoleConstraint(UserRole uRole,
+ RoleConstraint roleConstraint) throws SecurityException {
+ // TODO Auto-generated method stub
+
+ }
}
\ No newline at end of file
[32/43] directory-fortress-core git commit: fixed issue with space
instaed of - between SINGLE VALUE in schema
Posted by cp...@apache.org.
fixed issue with space instaed of - between SINGLE VALUE in schema
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/c4614bee
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/c4614bee
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/c4614bee
Branch: refs/heads/master
Commit: c4614bee7bf07e665ecc16bd40c7f75cc8fecfb4
Parents: fd2fead
Author: clp207 <cl...@psu.edu>
Authored: Tue Aug 23 14:14:55 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Tue Aug 23 14:14:55 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/c4614bee/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index 754e43b..a8a492b 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -301,15 +301,15 @@ attributetype ( ftAtId:33
DESC 'Fortress Permission Attribute Set Default Operator'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
- SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
-# A34: User Role Constraints, type STRING, MULTI VALUE
+# A34: User Role Constraints, type STRING, SINGLE VALUE
attributetype ( ftAtId:34
NAME 'ftPASetType'
DESC 'Fortress Permission Attribute Set Type'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
- SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
# A35: Permission Attribute Data Type, type STRING, SINGLE VALUE
attributetype ( ftAtId:35
@@ -317,7 +317,7 @@ attributetype ( ftAtId:35
DESC 'Fortress Permission Attribute Data Type'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
- SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
# A36: Permission Attribute Default Value, type STRING, SINGLE VALUE
attributetype ( ftAtId:36
@@ -325,7 +325,7 @@ attributetype ( ftAtId:36
DESC 'Fortress Permission Attribute Set Default Value'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
- SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
# A37: Permission Attribute Default Strategy, type STRING, SINGLE VALUE
attributetype ( ftAtId:37
@@ -333,7 +333,7 @@ attributetype ( ftAtId:37
DESC 'Fortress Permission Attribute Default Strategy'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
- SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE VALUE )
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
# A38: Permission Attribute Valid Values, type STRING, MULTI VALUE
attributetype ( ftAtId:38
[35/43] directory-fortress-core git commit: added perm attr update
method
Posted by cp...@apache.org.
added perm attr update method
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/7df32358
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/7df32358
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/7df32358
Branch: refs/heads/master
Commit: 7df323584adfcbeae7d13fed05b67a85e38f2612
Parents: 1eebcfc
Author: clp207 <cl...@psu.edu>
Authored: Wed Aug 24 15:16:01 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Aug 24 15:16:01 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 14 ++-
.../directory/fortress/core/GlobalErrIds.java | 5 +-
.../fortress/core/impl/AdminMgrImpl.java | 13 +++
.../directory/fortress/core/impl/PermDAO.java | 93 ++++++++++++++++++--
.../directory/fortress/core/impl/PermP.java | 14 +++
.../fortress/core/rest/AdminMgrRestImpl.java | 7 ++
6 files changed, 138 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7df32358/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index f46703a..42fa15a 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -614,11 +614,21 @@ public interface AdminMgr extends Manageable
* </ul>
*
* @param permAttribute must contain {@link PermissionAttribute#attributeName}
- * @param attributeSetName The name of the permission attribute set this ftPA should be removed from
+ * @param attributeSetName The name of the permission attribute set this pa should be removed from
* @throws SecurityException - thrown in the event of data or system error
*/
void removePermissionAttributeFromSet( PermissionAttribute permAttribute, String attributeSetName )
- throws SecurityException;
+ throws SecurityException;
+
+ /**
+ *
+ * @param permAttribute must contain {@link PermissionAttribute#attributeName}
+ * @param attributeSetName The name of the permission attribute set this pa should be removed from
+ * @param replaceValidValues Set to true to replace all of the valid values and set to false to add to the existing valid values
+ * @throws SecurityException - thrown in the event of data or system error
+ */
+ void updatePermissionAttributeInSet( PermissionAttribute permAttribute, String attributeSetName, boolean replaceValidValues )
+ throws SecurityException;
/**
* This method will update permission operation pre-existing in target directory under
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7df32358/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index 7704d89..4a0fbfa 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -677,7 +677,10 @@ public final class GlobalErrIds
* The supplied Permission Attribute was not found
*/
public static final int PERM_ATTRIBUTE_NOT_FOUND = 3037;
-
+ /**
+ * The supplied Permission Attribute update failed
+ */
+ public static final int PERM_ATTRIBUTE_UPDATE_FAILED = 3038;
/**
* 4000's - Password Policy Entity
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7df32358/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index 0662c0d..50f8ea2 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -450,6 +450,19 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
/**
* {@inheritDoc}
*/
+ @Override
+ public void updatePermissionAttributeInSet(PermissionAttribute permAttribute, String attributeSetName, boolean replaceValidValues)
+ throws SecurityException
+ {
+ String methodName = "updatePermissionAttributeInSet";
+ assertContext( CLS_NM, methodName, permAttribute, GlobalErrIds.PERM_ATTRIBUTE_NULL );
+ //TODO: verify with Shawn we don't need to set entity session here...
+ permP.update( permAttribute, attributeSetName, replaceValidValues );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public Permission updatePermission( Permission perm ) throws SecurityException
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7df32358/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 1a2a599..623dbec 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -476,7 +476,12 @@ final class PermDAO extends LdapDataProvider
return entity;
}
- //TODO: add documentation
+ /**
+ *
+ * @param entity
+ * @return
+ * @throws CreateException
+ */
PermissionAttributeSet createPermissionAttributeSet( PermissionAttributeSet entity ) throws CreateException
{
LdapConnection ld = null;
@@ -529,12 +534,17 @@ final class PermDAO extends LdapDataProvider
for(PermissionAttribute pa : entity.getAttributes()){
this.createPermissionAttribute(pa, entity.getName());
}
-
- //TODO: need to do anything to returned entity?
+
return entity;
}
- //TODO: add documentation
+ /**
+ *
+ * @param entity
+ * @param attributeSetName
+ * @return
+ * @throws CreateException
+ */
PermissionAttribute createPermissionAttribute( PermissionAttribute entity, String attributeSetName ) throws CreateException
{
LdapConnection ld = null;
@@ -607,7 +617,80 @@ final class PermDAO extends LdapDataProvider
return entity;
}
-
+
+ PermissionAttribute updatePermissionAttribute( PermissionAttribute entity, String paSetName, boolean replaceValidValues ) throws UpdateException
+ {
+ LdapConnection ld = null;
+ String dn = getDn( entity, paSetName, entity.getContextId() );
+
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+
+ if ( StringUtils.isNotEmpty( entity.getDataType() ) )
+ {
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE_DATA_TYPE, entity.getDataType() ) );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDescription() ) )
+ {
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, SchemaConstants.DESCRIPTION_AT, entity.getDescription() ) );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDefaultOperator() ) )
+ {
+
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_OPERATOR, entity.getDefaultOperator() ) );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDefaultStrategy() ) )
+ {
+
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_STRATEGY, entity.getDefaultStrategy() ) );
+ }
+
+ if ( StringUtils.isNotEmpty( entity.getDefaultValue() ) )
+ {
+
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE_DEFAULT_VALUE, entity.getDefaultValue() ) );
+ }
+
+ //if replace, then remove first
+ if(replaceValidValues){
+ mods.add( new DefaultModification(
+ ModificationOperation.REMOVE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES ) );
+ }
+
+ for(String validValue : entity.getValidValues()){
+ mods.add( new DefaultModification(
+ ModificationOperation.ADD_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE_VALID_VALUES, validValue ) );
+ }
+
+ if ( mods.size() > 0 )
+ {
+ ld = getAdminConnection();
+ modify( ld, dn, mods, entity );
+ entity.setDn( dn );
+ }
+ }
+ catch ( LdapException e )
+ {
+ String error = "updatePermissionAttribute name [" + entity.getAttributeName() + "] caught LdapException=" + e.getMessage();
+ throw new UpdateException( GlobalErrIds.PERM_ATTRIBUTE_UPDATE_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+
+ return entity;
+ }
+
/**
* @param entity
* @return
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7df32358/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index 47415de..e87bb33 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -417,6 +417,20 @@ final class PermP
}
/**
+ * Updates a Permission Attribute entity
+ *
+ * @param entity
+ * @param paSetName
+ * @param replaceValidValues
+ * @throws SecurityException
+ */
+ void update( PermissionAttribute entity, String paSetName, boolean replaceValidValues ) throws SecurityException
+ {
+ validate( entity );
+ pDao.updatePermissionAttribute( entity, paSetName, replaceValidValues );
+ }
+
+ /**
* Update existing Permission Object attributes with the input entity. Null or empty attributes will be ignored.
* The Permission Object entity input will be validated to ensure that:
* object name is present, orgUnitId is valid, reasonability checks on all of the other populated values.
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7df32358/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
index eb41427..1d641c2 100644
--- a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
@@ -1292,4 +1292,11 @@ public final class AdminMgrRestImpl extends Manageable implements AdminMgr
// TODO Auto-generated method stub
}
+
+ @Override
+ public void updatePermissionAttributeInSet(PermissionAttribute permAttribute, String attributeSetName,
+ boolean replaceValidValues) throws SecurityException {
+ // TODO Auto-generated method stub
+
+ }
}
\ No newline at end of file
[34/43] directory-fortress-core git commit: added some documentatino
and basic validate methods
Posted by cp...@apache.org.
added some documentatino and basic validate methods
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/1eebcfc6
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/1eebcfc6
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/1eebcfc6
Branch: refs/heads/master
Commit: 1eebcfc60d5434421a068db6891c43f1d9174f1b
Parents: c70d237
Author: clp207 <cl...@psu.edu>
Authored: Wed Aug 24 14:32:34 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Aug 24 14:32:34 2016 -0400
----------------------------------------------------------------------
.../fortress/core/impl/AdminMgrImpl.java | 3 +-
.../directory/fortress/core/impl/PermP.java | 94 +++++++++++++-------
.../fortress/core/impl/AdminMgrImplTest.java | 10 ++-
.../fortress/core/impl/PermTestData.java | 1 +
.../fortress/core/impl/ReviewMgrImplTest.java | 9 +-
5 files changed, 78 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1eebcfc6/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index 3697bd2..0662c0d 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -404,7 +404,8 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
{
String methodName = "addPermissionAttributeSet";
assertContext( CLS_NM, methodName, permAttributeSet, GlobalErrIds.PERM_ATTRIBUTE_SET_NULL );
- //TODO: verify with Shawn we don't need to set entity session here...
+ //TODO: setup ARBAC permissions
+ //setEntitySession( CLS_NM, methodName, permAttributeSet );
return permP.add( permAttributeSet );
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1eebcfc6/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index 8012f0b..47415de 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -27,8 +27,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.directory.fortress.core.FinderException;
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.ValidationException;
import org.apache.directory.fortress.core.model.AdminRole;
@@ -378,42 +376,44 @@ final class PermP
return pDao.createOperation( entity );
}
- //TODO: add documentation
+ /**
+ * Adds a new Permission Attribute Set entity to the directory.
+ *
+ * @param entity Permission Attribute Set entity contains data targeted for insertion
+ * @return Permission Attribute Set entity copy of input + additional attributes that were added
+ * @throws SecurityException in the event of data validation or DAO system error.
+ */
PermissionAttributeSet add( PermissionAttributeSet entity ) throws SecurityException
{
- //TODO: add validation
+ validate( entity );
return pDao.createPermissionAttributeSet( entity );
}
- //TODO: add documentation
- PermissionAttribute add( PermissionAttribute entity, String attributeSetName ) throws SecurityException
+ /**
+ * Adds a new Permission Attribute entity to an existing Permission Attribute Set
+ *
+ * @param entity Permissino Attribute entity contains data targeted for insertion
+ * @param paSetName The name of the Permission Attribute Set this entity is being added to
+ * @return Permission Attribute entity copy of input + additional attributes that were added
+ * @throws SecurityException in the event of data validation or DAO system error.
+ */
+ PermissionAttribute add( PermissionAttribute entity, String paSetName ) throws SecurityException
{
- //TODO: add validation
- return pDao.createPermissionAttribute( entity, attributeSetName );
+ validate( entity );
+ return pDao.createPermissionAttribute( entity, paSetName );
}
- //TODO: add documentation
- void delete( PermissionAttribute entity, String attributeSetName ) throws SecurityException
- {
- //TODO: add validation
-
- //want to remove by attribute name, not full ftPA value, so find existing and delete that
- PermissionAttribute existingPa = null;
-
- ReviewMgr reviewMgr = ReviewMgrFactory.createInstance();
- PermissionAttributeSet paSet = reviewMgr.readPermAttributeSet(new PermissionAttributeSet(attributeSetName));
- for(PermissionAttribute pa : paSet.getAttributes()){
- if(pa.getAttributeName().equals(entity.getAttributeName())){
- existingPa = pa;
- break;
- }
- }
-
- if(existingPa == null){
- throw new ValidationException(GlobalErrIds.PERM_ATTRIBUTE_NOT_FOUND, "Could not find permission attribute with name [" + entity.getAttributeName() + "] on attribute set [" + attributeSetName + "]");
- }
-
- pDao.deletePermissionAttribute( existingPa, attributeSetName );
+ /**
+ * Deletes a Permission Attribute entity from an existing Permission Attribute Set
+ *
+ * @param entity
+ * @param attributeSetName
+ * @throws SecurityException
+ */
+ void delete( PermissionAttribute entity, String paSetName ) throws SecurityException
+ {
+ validate( entity );
+ pDao.deletePermissionAttribute( entity, paSetName );
}
/**
@@ -716,4 +716,38 @@ final class PermP
}
}
}
+
+ private void validate( PermissionAttributeSet paSet )
+ throws SecurityException
+ {
+ if( StringUtils.isNotEmpty(paSet.getType()) ){
+ VUtil.description( paSet.getType() );
+ }
+ if( StringUtils.isNotEmpty(paSet.getDescription()) ){
+ VUtil.description( paSet.getDescription() );
+ }
+ }
+
+ private void validate( PermissionAttribute pa )
+ throws SecurityException
+ {
+ if( StringUtils.isNotEmpty(pa.getAttributeName()) ){
+ VUtil.description( pa.getAttributeName() );
+ }
+ if( StringUtils.isNotEmpty(pa.getDataType()) ){
+ VUtil.description( pa.getDataType() );
+ }
+ if( StringUtils.isNotEmpty(pa.getDefaultOperator()) ){
+ VUtil.description( pa.getDefaultOperator() );
+ }
+ if( StringUtils.isNotEmpty(pa.getDefaultStrategy()) ){
+ VUtil.description( pa.getDefaultStrategy() );
+ }
+ if( StringUtils.isNotEmpty(pa.getDefaultValue()) ){
+ VUtil.description( pa.getDefaultValue() );
+ }
+ if( StringUtils.isNotEmpty(pa.getDescription()) ){
+ VUtil.description( pa.getDescription() );
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1eebcfc6/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
index 5a3ae9d..7699943 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/AdminMgrImplTest.java
@@ -23,10 +23,6 @@ package org.apache.directory.fortress.core.impl;
import java.util.List;
import java.util.Set;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
import org.apache.directory.fortress.core.AdminMgr;
import org.apache.directory.fortress.core.AdminMgrFactory;
import org.apache.directory.fortress.core.GlobalErrIds;
@@ -47,6 +43,10 @@ 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;
+
/**
* AdminMgrImpl Tester.
@@ -1822,6 +1822,8 @@ public class AdminMgrImplTest extends TestCase
{
LogUtil.logIt(msg);
PermissionAttributeSet paSet = new PermissionAttributeSet(name);
+ paSet.setType(PermTestData.TPA_SET_TYPE);
+
try
{
paSet.setAttributes(permAttr);
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1eebcfc6/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
index f3cd4e2..8624b55 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/PermTestData.java
@@ -2772,6 +2772,7 @@ public class PermTestData extends TestCase
*/
public static final String TPA_SET_1_NAME = "TPASET1";
public static final String TPA_SET_2_NAME = "TPASET2";
+ public static final String TPA_SET_TYPE = "paSetType";
public static final String TPA_SET_NOT_EXIST_NAME = "NOTEXISTTPASETNAME";
public static final String[][] PA_TPSASET1 =
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/1eebcfc6/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
index 7ecd7b1..0dd3453 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
@@ -25,10 +25,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.ReviewMgr;
import org.apache.directory.fortress.core.ReviewMgrFactory;
@@ -47,6 +43,10 @@ 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.
@@ -178,6 +178,7 @@ public class ReviewMgrImplTest extends TestCase
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));
[42/43] directory-fortress-core git commit: Merge branch 'master'
into feature/addPermAttrAndUserRoleConstraints
Posted by cp...@apache.org.
Merge branch 'master' into feature/addPermAttrAndUserRoleConstraints
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/84e82718
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/84e82718
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/84e82718
Branch: refs/heads/master
Commit: 84e827180ada97ad1308ef9c3b82b203b7153893
Parents: 6fa1c9d cb34ef2
Author: clp207 <cl...@psu.edu>
Authored: Thu Oct 6 08:32:55 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu Oct 6 08:32:55 2016 -0400
----------------------------------------------------------------------
README-QUICKSTART-APACHEDS.md | 2 +-
README-QUICKSTART-SLAPD.md | 2 +-
README-TEN-MINUTE-GUIDE.md | 2 +-
README.md | 2 +-
.../directory/fortress/core/AccessMgr.java | 77 ++++-
.../directory/fortress/core/GlobalErrIds.java | 7 +-
.../directory/fortress/core/GroupMgr.java | 20 ++
.../fortress/core/impl/AccessMgrImpl.java | 80 ++++--
.../fortress/core/impl/AdminMgrImpl.java | 14 +-
.../fortress/core/impl/DSDChecker.java | 21 +-
.../directory/fortress/core/impl/GroupDAO.java | 59 +++-
.../fortress/core/impl/GroupMgrImpl.java | 38 +++
.../directory/fortress/core/impl/GroupP.java | 135 ++++++++-
.../directory/fortress/core/impl/PermDAO.java | 33 ++-
.../directory/fortress/core/impl/SDUtil.java | 66 +++--
.../directory/fortress/core/impl/UserP.java | 1 +
.../directory/fortress/core/model/Group.java | 34 ++-
.../directory/fortress/core/model/Session.java | 136 ++++++++-
.../directory/fortress/core/model/UserRole.java | 35 ++-
.../fortress/core/rest/AccessMgrRestImpl.java | 29 +-
.../directory/fortress/core/rest/HttpIds.java | 9 +
.../directory/fortress/core/util/VUtil.java | 180 ++++++++++--
.../fortress/core/AccessMgrConsole.java | 14 +-
.../fortress/core/impl/FortressJUnitTest.java | 12 +
.../fortress/core/impl/GroupMgrImplTest.java | 279 +++++++++++++++++++
.../fortress/core/impl/GroupTestData.java | 94 +++++++
26 files changed, 1241 insertions(+), 140 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index 4a0fbfa,1fb4ef2..64b77cd
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@@ -1704,5 -1655,11 +1704,10 @@@ public final class GlobalErrId
* The supplied group protocol name failed length check.
*/
public static final int GROUP_PROTOCOL_INVLD = 10313;
-
+
+ /**
+ * The supplied group type is invalid for operation
+ */
+ public static final int GROUP_TYPE_INVLD = 10314;
+
-
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index f5fa29c,895969a..7852255
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@@ -29,20 -29,8 +29,23 @@@ import org.apache.directory.fortress.co
import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.GlobalIds;
import org.apache.directory.fortress.core.SecurityException;
-import org.apache.directory.fortress.core.model.*;
++
+import org.apache.directory.fortress.core.model.AdminRole;
+import org.apache.directory.fortress.core.model.ConstraintUtil;
++import org.apache.directory.fortress.core.model.Group;
+import org.apache.directory.fortress.core.model.Hier;
+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.Relationship;
+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.User;
+import org.apache.directory.fortress.core.model.UserRole;
import org.apache.directory.fortress.core.util.VUtil;
++
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/impl/UserP.java
index 534f3ca,34a4999..32bb665
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
@@@ -32,20 -32,8 +32,21 @@@ import org.apache.directory.fortress.co
import org.apache.directory.fortress.core.PasswordException;
import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.ValidationException;
-import org.apache.directory.fortress.core.model.*;
+import org.apache.directory.fortress.core.model.AdminRole;
+import org.apache.directory.fortress.core.model.Administrator;
+import org.apache.directory.fortress.core.model.ConstraintUtil;
+import org.apache.directory.fortress.core.model.ObjectFactory;
+import org.apache.directory.fortress.core.model.OrgUnit;
+import org.apache.directory.fortress.core.model.PwPolicy;
+import org.apache.directory.fortress.core.model.Role;
+import org.apache.directory.fortress.core.model.RoleConstraint;
+import org.apache.directory.fortress.core.model.RoleConstraintType;
+import org.apache.directory.fortress.core.model.Session;
+import org.apache.directory.fortress.core.model.User;
+import org.apache.directory.fortress.core.model.UserAdminRole;
+import org.apache.directory.fortress.core.model.UserRole;
import org.apache.directory.fortress.core.util.VUtil;
++
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/model/UserRole.java
index f1034d8,44bc3d1..b3e3960
--- a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
@@@ -74,8 -72,8 +74,8 @@@ import org.apache.directory.fortress.co
*/
@XmlRootElement( name = "fortUserRole" )
@XmlAccessorType( XmlAccessType.FIELD )
- @XmlType( name = "userRole", propOrder = {"name", "userId", "parents", "beginDate", "beginLockDate", "beginTime",
- "dayMask", "endDate", "endLockDate", "endTime", "timeout", "roleConstraints"} )
+ @XmlType( name = "userRole", propOrder = {"name", "userId", "isGroupRole", "parents", "beginDate", "beginLockDate",
- "beginTime", "dayMask", "endDate", "endLockDate", "endTime", "timeout"} )
++ "beginTime", "dayMask", "endDate", "endLockDate", "endTime", "timeout", "roleConstraints"} )
@XmlSeeAlso( {UserAdminRole.class} )
public class UserRole extends FortEntity implements Serializable, Constraint
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/directory/fortress/core/util/VUtil.java
index a6c684a,622cf9d..9c76b78
--- a/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
@@@ -34,21 -34,12 +34,23 @@@ import org.apache.commons.lang.StringUt
import org.apache.directory.fortress.core.CfgException;
import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.GlobalIds;
+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.ValidationException;
-import org.apache.directory.fortress.core.model.*;
+import org.apache.directory.fortress.core.model.Constraint;
+import org.apache.directory.fortress.core.model.ConstraintValidator;
++import org.apache.directory.fortress.core.model.Group;
+import org.apache.directory.fortress.core.model.ObjectFactory;
+import org.apache.directory.fortress.core.model.PermissionAttributeSet;
+import org.apache.directory.fortress.core.model.PropUtil;
+import org.apache.directory.fortress.core.model.Session;
+import org.apache.directory.fortress.core.model.UserRole;
+import org.apache.directory.fortress.core.model.Warning;
import org.apache.directory.fortress.core.util.time.TUtil;
import org.apache.directory.fortress.core.util.time.Time;
import org.apache.directory.fortress.core.util.time.Validator;
++
import org.slf4j.LoggerFactory;
@@@ -678,24 -680,120 +691,141 @@@ public final class VUtil implements Con
}
return validators;
}
+
+ /**
+ * Checks the Permission Attribute Set exists
+ *
+ * @param value Name of the Permission Attribute Set
+ * @throws ValidationException
+ */
+ public static void permAttrSetName( String value ) throws ValidationException
+ {
+ try{
+ ReviewMgr reviewMgr = ReviewMgrFactory.createInstance();
+ PermissionAttributeSet paSet = reviewMgr.readPermAttributeSet(new PermissionAttributeSet(value));
+ }
+ catch(Exception e){
+ String error = "permissionAttributeSet - not found with name [" + value + "]";
+ throw new ValidationException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, error );
+ }
+
+ RegExUtil.getInstance().safeText( value );
+ }
+
+ /**
+ * A class to wrap the group into constrainted interface to pass to DSD validator.
+ * Group itself doesn't have temporal contraints.
+ */
+ private class ConstraintedGroup implements Constraint {
+ private Group group;
+
+ public ConstraintedGroup(Group group) {
+ this.group = group;
+ }
+
+ public Group getGroup() {
+ return group;
+ }
+
+ @Override
+ public boolean isTemporalSet() {
+ return false;
+ }
+
+ @Override
+ public void setTimeout(Integer timeout) {
+
+ }
+
+ @Override
+ public void setBeginTime(String beginTime) {
+
+ }
+
+ @Override
+ public void setEndTime(String endTime) {
+
+ }
+
+ @Override
+ public void setBeginDate(String beginDate) {
+
+ }
+
+ @Override
+ public void setEndDate(String endDate) {
+
+ }
+
+ @Override
+ public void setDayMask(String dayMask) {
+
+ }
+
+ @Override
+ public void setBeginLockDate(String beginLockDate) {
+
+ }
+
+ @Override
+ public void setEndLockDate(String endLockDate) {
+
+ }
+
+ @Override
+ public void setName(String name) {
+
+ }
+
+ @Override
+ public String getRawData() {
+ return null;
+ }
+
+ @Override
+ public Integer getTimeout() {
+ return null;
+ }
+
+ @Override
+ public String getBeginTime() {
+ return null;
+ }
+
+ @Override
+ public String getEndTime() {
+ return null;
+ }
+
+ @Override
+ public String getBeginDate() {
+ return null;
+ }
+
+ @Override
+ public String getEndDate() {
+ return null;
+ }
+
+ @Override
+ public String getBeginLockDate() {
+ return null;
+ }
+
+ @Override
+ public String getEndLockDate() {
+ return null;
+ }
+
+ @Override
+ public String getDayMask() {
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return group.getName();
+ }
+ }
++
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/84e82718/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
----------------------------------------------------------------------
diff --cc src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
index ae83b67,b7e6166..bad85dd
--- a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
@@@ -201,12 -205,13 +206,19 @@@ public class FortressJUnitTest extends
suite.addTest( new AdminMgrImplTest( "testGrantPermissionRole" ) );
suite.addTest( new AdminMgrImplTest( "testGrantPermissionUser" ) );
+ suite.addTest( new AdminMgrImplTest( "testAddPermissionAttributeSet" ) );
+ suite.addTest( new AdminMgrImplTest( "testAddPermissionAttributeToSet" ) );
+ suite.addTest( new AdminMgrImplTest( "testAddPASetToPermission" ) );
+
+ suite.addTest( new AdminMgrImplTest( "testAddUserRoleConstraint" ) );
+
+ // GroupMgr APIs
+ suite.addTest( new GroupMgrImplTest( "testAddGroup" ) );
+ suite.addTest( new GroupMgrImplTest( "testAssignGroupUserMember" ) );
+ suite.addTest( new GroupMgrImplTest( "testAssignGroupRoleMember" ) );
+ suite.addTest( new GroupMgrImplTest( "testGroupRoles" ) );
+ suite.addTest( new GroupMgrImplTest( "testRoleGroups" ) );
+
/***********************************************************/
/* 3. Interrogation */
/***********************************************************/
[41/43] directory-fortress-core git commit: Merge branch 'master'
into feature/addPermAttrAndUserRoleConstraints
Posted by cp...@apache.org.
Merge branch 'master' into feature/addPermAttrAndUserRoleConstraints
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/6fa1c9df
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/6fa1c9df
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/6fa1c9df
Branch: refs/heads/master
Commit: 6fa1c9dfb4e0dd986beeec41028ee966381299a8
Parents: 0a6a44d 9271edf
Author: clp207 <cl...@psu.edu>
Authored: Fri Sep 23 07:29:57 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Fri Sep 23 07:29:57 2016 -0400
----------------------------------------------------------------------
README-QUICKSTART-APACHEDS.md | 13 +-
README-QUICKSTART-SLAPD.md | 13 +-
ldap/schema/apacheds-fortress.ldif | 168 +++++++++----------
ldap/schema/fortress.schema | 12 +-
.../fortress/core/impl/AdminMgrImpl.java | 4 +-
.../fortress/core/impl/AdminRoleP.java | 4 +-
.../fortress/core/impl/Manageable.java | 10 +-
7 files changed, 120 insertions(+), 104 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6fa1c9df/ldap/schema/fortress.schema
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6fa1c9df/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
[02/43] directory-fortress-core git commit: delete pa from set now
deletes by name, not full value
Posted by cp...@apache.org.
delete pa from set now deletes by name, not full value
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/b5886dac
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/b5886dac
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/b5886dac
Branch: refs/heads/master
Commit: b5886dac7cf03d86debc0e2d8c668247a05f8795
Parents: 9d11f77
Author: clp207 <cl...@psu.edu>
Authored: Mon Feb 1 10:35:31 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/GlobalErrIds.java | 5 +++++
.../directory/fortress/core/impl/PermP.java | 21 +++++++++++++++++++-
2 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b5886dac/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index cb56ac5..7704d89 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -673,6 +673,11 @@ public final class GlobalErrIds
* The supplied Permission Attribute Set name is required but was passed as null.
*/
public static final int PERM_ATTRIBUTE_SET_NM_NULL = 3036;
+ /**
+ * The supplied Permission Attribute was not found
+ */
+ public static final int PERM_ATTRIBUTE_NOT_FOUND = 3037;
+
/**
* 4000's - Password Policy Entity
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b5886dac/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index 3e5a7c7..c72c38b 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -27,6 +27,8 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.directory.fortress.core.FinderException;
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.ValidationException;
import org.apache.directory.fortress.core.model.AdminRole;
@@ -392,7 +394,24 @@ final class PermP
void delete( PermissionAttribute entity, String attributeSetName ) throws SecurityException
{
//TODO: add validation
- pDao.deletePermissionAttribute( entity, attributeSetName );
+
+ //want to remove by attribute name, not full ftPA value, so find existing and delete that
+ PermissionAttribute existingPa = null;
+
+ ReviewMgr reviewMgr = ReviewMgrFactory.createInstance();
+ PermissionAttributeSet paSet = reviewMgr.readPermAttributeSet(new PermissionAttributeSet(attributeSetName));
+ for(PermissionAttribute pa : paSet.getAttributes()){
+ if(pa.getAttributeName().equals(entity.getAttributeName())){
+ existingPa = pa;
+ break;
+ }
+ }
+
+ if(existingPa == null){
+ throw new ValidationException(GlobalErrIds.PERM_ATTRIBUTE_NOT_FOUND, "Could not find permission attribute with name [" + entity.getAttributeName() + "] on attribute set [" + attributeSetName + "]");
+ }
+
+ pDao.deletePermissionAttribute( existingPa, attributeSetName );
}
/**
[12/43] directory-fortress-core git commit: added based role
constraint set to retrieved user roles
Posted by cp...@apache.org.
added based role constraint set to retrieved user roles
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/2f3045ba
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/2f3045ba
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/2f3045ba
Branch: refs/heads/master
Commit: 2f3045ba71069f14ea95bb0dc7b0bd76733dc48d
Parents: 51331f8
Author: clp207 <cl...@psu.edu>
Authored: Tue Jan 26 16:16:08 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 4 +
.../fortress/core/impl/AdminMgrImpl.java | 16 +++
.../directory/fortress/core/impl/UserDAO.java | 91 +++++++++++----
.../directory/fortress/core/impl/UserP.java | 9 ++
.../fortress/core/model/RoleConstraint.java | 48 ++++++++
.../fortress/core/model/RoleConstraintType.java | 6 +
.../directory/fortress/core/model/UserRole.java | 115 +++++++++++--------
.../fortress/core/rest/AdminMgrRestImpl.java | 9 ++
8 files changed, 229 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index c81f1c6..4c49e5f 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -24,6 +24,7 @@ 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.Role;
+import org.apache.directory.fortress.core.model.RoleConstraint;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserRole;
@@ -448,6 +449,9 @@ public interface AdminMgr extends Manageable
void assignUser( UserRole uRole )
throws SecurityException;
+ //TODO: add documentation
+ RoleConstraint addRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
+ throws SecurityException;
/**
* This command deletes the assignment of the User from the Role entities. The command is
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index 66ef1fa..166558a 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -37,6 +37,7 @@ import org.apache.directory.fortress.core.model.Permission;
import org.apache.directory.fortress.core.model.PermissionAttribute;
import org.apache.directory.fortress.core.model.Relationship;
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.User;
import org.apache.directory.fortress.core.model.UserRole;
@@ -332,6 +333,21 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
roleP.assign( role, dn );
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public RoleConstraint addRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
+ throws SecurityException
+ {
+ //TODO: need new arbac perm and/or add security check
+ String methodName = "assignUser";
+ assertContext( CLS_NM, methodName, uRole, GlobalErrIds.URLE_NULL );
+
+ userP.assign( uRole, roleConstraint );
+
+ return roleConstraint;
+ }
/**
* {@inheritDoc}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index c5b7bc3..6ffb8e0 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -21,8 +21,10 @@ package org.apache.directory.fortress.core.impl;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
@@ -49,32 +51,33 @@ import org.apache.directory.api.ldap.model.exception.LdapNoSuchObjectException;
import org.apache.directory.api.ldap.model.message.BindResponse;
import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
import org.apache.directory.api.ldap.model.message.SearchScope;
+import org.apache.directory.fortress.core.CreateException;
+import org.apache.directory.fortress.core.FinderException;
+import org.apache.directory.fortress.core.GlobalErrIds;
+import org.apache.directory.fortress.core.GlobalIds;
+import org.apache.directory.fortress.core.PasswordException;
+import org.apache.directory.fortress.core.RemoveException;
+import org.apache.directory.fortress.core.SecurityException;
+import org.apache.directory.fortress.core.UpdateException;
+import org.apache.directory.fortress.core.ldap.ApacheDsDataProvider;
import org.apache.directory.fortress.core.model.Address;
import org.apache.directory.fortress.core.model.AdminRole;
import org.apache.directory.fortress.core.model.ConstraintUtil;
+import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.OrgUnit;
+import org.apache.directory.fortress.core.model.PropUtil;
import org.apache.directory.fortress.core.model.PwMessage;
import org.apache.directory.fortress.core.model.Role;
+import org.apache.directory.fortress.core.model.RoleConstraint;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserAdminRole;
import org.apache.directory.fortress.core.model.UserRole;
import org.apache.directory.fortress.core.model.Warning;
-import org.apache.directory.fortress.core.model.PropUtil;
+import org.apache.directory.fortress.core.util.Config;
import org.apache.directory.ldap.client.api.LdapConnection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.directory.fortress.core.CreateException;
-import org.apache.directory.fortress.core.FinderException;
-import org.apache.directory.fortress.core.GlobalErrIds;
-import org.apache.directory.fortress.core.GlobalIds;
-import org.apache.directory.fortress.core.model.ObjectFactory;
-import org.apache.directory.fortress.core.PasswordException;
-import org.apache.directory.fortress.core.RemoveException;
-import org.apache.directory.fortress.core.SecurityException;
-import org.apache.directory.fortress.core.UpdateException;
-import org.apache.directory.fortress.core.util.Config;
-import org.apache.directory.fortress.core.ldap.ApacheDsDataProvider;
/**
@@ -1821,7 +1824,39 @@ final class UserDAO extends ApacheDsDataProvider
return userDn;
}
+ void assign( UserRole uRole, RoleConstraint roleConstraint ) throws UpdateException, FinderException
+ {
+ LdapConnection ld = null;
+ String szRoleConstraint = "";
+ String userDn = getDn( uRole.getUserId(), uRole.getContextId() );
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+ szRoleConstraint = roleConstraint.gerRawData(uRole);
+
+ mods.add( new DefaultModification( ModificationOperation.ADD_ATTRIBUTE, GlobalIds.USER_ROLE_DATA,
+ szRoleConstraint ) );
+
+ ld = getAdminConnection();
+ modify( ld, userDn, mods, uRole );
+
+ //TODO: make sure not adding same RC twice
+ }
+ catch ( LdapException e )
+ {
+ String warning = "assign userId [" + uRole.getUserId() + "] role constraint [" + szRoleConstraint + "] ";
+
+ warning += "caught LDAPException=" + e.getMessage();
+ throw new UpdateException( GlobalErrIds.URLE_ASSIGN_FAILED, warning, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ }
+
+
/**
* @param uRole
* @return
@@ -2491,24 +2526,34 @@ final class UserDAO extends ApacheDsDataProvider
*/
private List<UserRole> unloadUserRoles( Entry entry, String userId, String contextId )
{
- List<UserRole> uRoles = null;
+ Map<String, UserRole> uRoles = new HashMap<String, UserRole>();
List<String> roles = getAttributes( entry, GlobalIds.USER_ROLE_DATA );
if ( roles != null )
{
long sequence = 0;
- uRoles = new ArrayList<>();
for ( String raw : roles )
{
- UserRole ure = new ObjectFactory().createUserRole();
- ure.load( raw, contextId, new RoleUtil() );
- ure.setUserId( userId );
- ure.setSequenceId( sequence++ );
- uRoles.add( ure );
- }
- }
-
- return uRoles;
+ //get role name
+ String roleName = raw.substring(0, raw.indexOf( GlobalIds.DELIMITER ));
+
+ //if already found, add to user role
+ if(uRoles.containsKey(roleName)){
+ UserRole ure = uRoles.get(roleName);
+ ure.load( raw, contextId, new RoleUtil() );
+ }
+ //else create new
+ else{
+ UserRole ure = new ObjectFactory().createUserRole();
+ ure.load( raw, contextId, new RoleUtil() );
+ ure.setUserId( userId );
+ ure.setSequenceId( sequence++ );
+ uRoles.put(roleName, ure );
+ }
+ }
+ }
+
+ return new ArrayList<UserRole>(uRoles.values());
}
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
index f5be195..979bcd4 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
@@ -39,6 +39,7 @@ import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.OrgUnit;
import org.apache.directory.fortress.core.model.PwPolicy;
import org.apache.directory.fortress.core.model.Role;
+import org.apache.directory.fortress.core.model.RoleConstraint;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
import org.apache.directory.fortress.core.model.UserAdminRole;
@@ -634,6 +635,14 @@ final class UserP
// "assign" custom Fortress role data, i.e. temporal constraints, onto the user node:
return uDao.assign( uRole );
}
+
+ //TODO: add documentation
+ void assign( UserRole uRole, RoleConstraint roleConstraint ) throws SecurityException
+ {
+ //TODO: validate?
+
+ uDao.assign( uRole, roleConstraint );
+ }
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
new file mode 100644
index 0000000..86e55d6
--- /dev/null
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -0,0 +1,48 @@
+package org.apache.directory.fortress.core.model;
+
+import org.apache.directory.fortress.core.GlobalIds;
+
+public class RoleConstraint {
+
+ public static final String RC_TYPE_NAME = "type";
+
+ private RoleConstraintType constraintType;
+ private String value;
+
+ public RoleConstraint(){
+
+ }
+
+ public RoleConstraint(String value, RoleConstraintType constraintType){
+ this.constraintType = constraintType;
+ this.value = value;
+ }
+
+ public RoleConstraintType getConstraintType() {
+ return constraintType;
+ }
+ public void setConstraintType(RoleConstraintType constraintType) {
+ this.constraintType = constraintType;
+ }
+ public String getValue() {
+ return value;
+ }
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ //BANK_USER$seq$0type$filter$AccountId=12345&WithdrawLimit=500
+ public String gerRawData(UserRole uRole){
+ StringBuilder sb = new StringBuilder();
+
+ sb.append(uRole.getName());
+ sb.append( GlobalIds.DELIMITER );
+ sb.append(RC_TYPE_NAME);
+ sb.append( GlobalIds.DELIMITER );
+ sb.append(constraintType);
+ sb.append( GlobalIds.DELIMITER );
+ sb.append(value);
+
+ return sb.toString();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
new file mode 100644
index 0000000..6eb4b57
--- /dev/null
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
@@ -0,0 +1,6 @@
+package org.apache.directory.fortress.core.model;
+
+public enum RoleConstraintType {
+ FILTER,
+ OTHER
+}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
index 86d277d..b5eccd4 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
@@ -21,6 +21,7 @@ package org.apache.directory.fortress.core.model;
import java.io.Serializable;
+import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlAccessType;
@@ -73,7 +74,7 @@ import org.apache.directory.fortress.core.GlobalIds;
@XmlRootElement( name = "fortUserRole" )
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "userRole", propOrder = {"name", "userId", "parents", "beginDate", "beginLockDate", "beginTime",
- "dayMask", "endDate", "endLockDate", "endTime", "timeout"} )
+ "dayMask", "endDate", "endLockDate", "endTime", "timeout", "roleConstraints"} )
@XmlSeeAlso( {UserAdminRole.class} )
public class UserRole extends FortEntity implements Serializable, Constraint
{
@@ -91,7 +92,8 @@ public class UserRole extends FortEntity implements Serializable, Constraint
private String dayMask;
@XmlElement( nillable = true )
private Set<String> parents;
-
+ @XmlElement( nillable = true )
+ private Set<RoleConstraint> roleConstraints;
/**
* Default constructor is used by internal Fortress classes.
@@ -153,50 +155,58 @@ public class UserRole extends FortEntity implements Serializable, Constraint
if ( ( szRawData != null ) && ( szRawData.length() > 0 ) )
{
String[] tokens = StringUtils.splitPreserveAllTokens( szRawData, GlobalIds.DELIMITER );
- for ( int i = 0; i < tokens.length; i++ )
- {
- if ( StringUtils.isNotEmpty( tokens[i] ) )
- {
- switch ( i )
- {
- case 0:
- name = tokens[i];
- parents = parentUtil.getParentsCB( name.toUpperCase(), contextId );
- break;
-
- case 1:
- timeout = Integer.parseInt( tokens[i] );
- break;
-
- case 2:
- beginTime = tokens[i];
- break;
-
- case 3:
- endTime = tokens[i];
- break;
-
- case 4:
- beginDate = tokens[i];
- break;
-
- case 5:
- endDate = tokens[i];
- break;
-
- case 6:
- beginLockDate = tokens[i];
- break;
-
- case 7:
- endLockDate = tokens[i];
- break;
-
- case 8:
- dayMask = tokens[i];
- break;
- }
- }
+
+ //newer style constaint type
+ if(tokens[1].equals(RoleConstraint.RC_TYPE_NAME)){
+ RoleConstraint rc = new RoleConstraint(tokens[3], RoleConstraintType.valueOf(tokens[2]));
+ this.getRoleConstraints().add(rc);
+ }
+ else{
+ for ( int i = 0; i < tokens.length; i++ )
+ {
+ if ( StringUtils.isNotEmpty( tokens[i] ) )
+ {
+ switch ( i )
+ {
+ case 0:
+ name = tokens[i];
+ parents = parentUtil.getParentsCB( name.toUpperCase(), contextId );
+ break;
+
+ case 1:
+ timeout = Integer.parseInt( tokens[i] );
+ break;
+
+ case 2:
+ beginTime = tokens[i];
+ break;
+
+ case 3:
+ endTime = tokens[i];
+ break;
+
+ case 4:
+ beginDate = tokens[i];
+ break;
+
+ case 5:
+ endDate = tokens[i];
+ break;
+
+ case 6:
+ beginLockDate = tokens[i];
+ break;
+
+ case 7:
+ endLockDate = tokens[i];
+ break;
+
+ case 8:
+ dayMask = tokens[i];
+ break;
+ }
+ }
+ }
}
}
}
@@ -632,4 +642,17 @@ public class UserRole extends FortEntity implements Serializable, Constraint
{
return name;
}
+
+
+ public Set<RoleConstraint> getRoleConstraints() {
+ if(roleConstraints == null){
+ roleConstraints = new HashSet<RoleConstraint>();
+ }
+ return roleConstraints;
+ }
+
+
+ public void setRoleConstraints(Set<RoleConstraint> roleConstraints) {
+ this.roleConstraints = roleConstraints;
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2f3045ba/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
index 94bb53e..b9b45e5 100644
--- a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
@@ -31,6 +31,7 @@ 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.Role;
+import org.apache.directory.fortress.core.model.RoleConstraint;
import org.apache.directory.fortress.core.model.RoleRelationship;
import org.apache.directory.fortress.core.model.SDSet;
import org.apache.directory.fortress.core.model.User;
@@ -1248,4 +1249,12 @@ public final class AdminMgrRestImpl extends Manageable implements AdminMgr
// TODO Auto-generated method stub
return null;
}
+
+
+ @Override
+ public RoleConstraint addRoleConstraint(UserRole uRole,
+ RoleConstraint roleConstraint) throws SecurityException {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
\ No newline at end of file
[19/43] directory-fortress-core git commit: changed
rolePermissionAttribute to return sets isntead of permattribute
Posted by cp...@apache.org.
changed rolePermissionAttribute to return sets isntead of permattribute
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/d7fb80ba
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/d7fb80ba
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/d7fb80ba
Branch: refs/heads/master
Commit: d7fb80ba9ada60effd78ae0cc6858026ebf39cde
Parents: 8dd536c
Author: clp207 <cl...@psu.edu>
Authored: Fri Jan 29 11:29:50 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 2 +-
.../directory/fortress/core/GlobalErrIds.java | 5 ++
.../directory/fortress/core/ReviewMgr.java | 4 +-
.../directory/fortress/core/impl/PermDAO.java | 65 ++++++++++++++++++++
.../directory/fortress/core/impl/PermP.java | 7 ++-
.../fortress/core/impl/ReviewMgrImpl.java | 19 ++++--
.../directory/fortress/core/impl/UserDAO.java | 6 +-
.../fortress/core/model/ObjectFactory.java | 7 +++
.../core/model/PermissionAttributeSet.java | 26 ++------
.../fortress/core/rest/AdminMgrRestImpl.java | 27 ++++++++
.../fortress/core/rest/ReviewMgrRestImpl.java | 4 +-
11 files changed, 133 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index de3639a..93b6e18 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -453,7 +453,7 @@ public interface AdminMgr extends Manageable
//TODO: add documentation
RoleConstraint addRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
throws SecurityException;
-
+
//TODO: remove documentation
void removeRoleConstraint( UserRole uRole, RoleConstraint roleConstraint )
throws SecurityException;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index a170274..cbda366 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -665,6 +665,11 @@ public final class GlobalErrIds
* The supplied Permission Attribute could not be added to ldap server.
*/
public static final int PERM_ATTR_ADD_FAILED = 3034;
+ /**
+ * The supplied Permission Attribute Set could not be found on ldap server.
+ */
+ public static final int PERM_ATTRIBUTE_SET_NOT_FOUND = 3035;
+
/**
* 4000's - Password Policy Entity
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
index 7205a86..0a4f15a 100755
--- a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
@@ -26,7 +26,7 @@ import java.util.Set;
import org.apache.directory.fortress.core.model.OrgUnit;
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.SDSet;
import org.apache.directory.fortress.core.model.User;
@@ -441,7 +441,7 @@ public interface ReviewMgr extends Manageable
throws SecurityException;
//TODO: add documentation
- Set<PermissionAttribute> rolePermissionAttributes( Role role, boolean noInhertiance )
+ List<PermissionAttributeSet> rolePermissionAttributeSets( Role role, boolean noInhertiance )
throws SecurityException;
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index a8f5373..8e58bf7 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -208,6 +208,11 @@ final class PermDAO extends ApacheDsDataProvider
GlobalIds.PROPS
};
+ private static final String[] PERMISION_ATTRIBUTE_SET_ATRS =
+ {
+ GlobalIds.FT_IID, GlobalIds.FT_PERMISSION_ATTRIBUTE, SchemaConstants.DESCRIPTION_AT, SchemaConstants.CN_AT
+ };
+
/**
* @param entity
* @return
@@ -973,6 +978,42 @@ final class PermDAO extends ApacheDsDataProvider
return entity;
}
+
+ PermissionAttributeSet getPermAttributeSet( PermissionAttributeSet permAttributeSet )
+ throws FinderException
+ {
+ PermissionAttributeSet entity = null;
+ LdapConnection ld = null;
+ String dn = getPASetDn(permAttributeSet.getName(), permAttributeSet.getContextId());
+
+ try
+ {
+ ld = getAdminConnection();
+ Entry findEntry = read( ld, dn, PERMISION_ATTRIBUTE_SET_ATRS );
+ if ( findEntry == null )
+ {
+ String warning = "getPermAttributeSet no entry found dn [" + dn + "]";
+ throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
+ }
+ entity = unloadPASetLdapEntry( findEntry, 0 );
+ }
+ catch ( LdapNoSuchObjectException e )
+ {
+ String warning = "getPermAttributeSet COULD NOT FIND ENTRY for dn [" + dn + "]";
+ throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, warning );
+ }
+ catch ( LdapException e )
+ {
+ String error = "getPermAttributeSet dn [" + dn + "] caught LdapException=" + e.getMessage();
+ throw new FinderException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+
+ return entity;
+ }
/**
@@ -1216,6 +1257,30 @@ final class PermDAO extends ApacheDsDataProvider
return entity;
}
+ private PermissionAttributeSet unloadPASetLdapEntry( Entry le, long sequence )
+ throws LdapInvalidAttributeValueException
+ {
+ PermissionAttributeSet entity = new ObjectFactory().createPermAttributeSet();
+ entity.setSequenceId( sequence );
+ entity.setName( getAttribute( le, SchemaConstants.CN_AT ) );
+ entity.setDn( le.getDn().getName() );
+ entity.setInternalId( getAttribute( le, GlobalIds.FT_IID ) );
+ entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
+
+ List<String> ftPAs = getAttributes( le, GlobalIds.FT_PERMISSION_ATTRIBUTE );
+
+ if(ftPAs != null){
+ for(String ftPARaw : ftPAs){
+ PermissionAttribute permAttribute = new ObjectFactory().createPermissionAttribute();
+ permAttribute.load( ftPARaw );
+
+ entity.getAttributes().add(permAttribute);
+ }
+ }
+
+ return entity;
+ }
+
/**
* @param permission
* @return
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index 4284c47..871ffbf 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -336,7 +336,12 @@ final class PermP
{
return pDao.getPerm( permObj );
}
-
+
+ //TODO: add documentation
+ PermissionAttributeSet read( PermissionAttributeSet permAttributeSet ) throws SecurityException
+ {
+ return pDao.getPermAttributeSet( permAttributeSet );
+ }
/**
* Adds a new Permission Object entity to directory. The Permission Object entity input will be validated to ensure that:
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index 463572c..8f4e6bb 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -21,8 +21,10 @@ package org.apache.directory.fortress.core.impl;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
@@ -32,7 +34,7 @@ import org.apache.directory.fortress.core.SecurityException;
import org.apache.directory.fortress.core.model.OrgUnit;
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.SDSet;
import org.apache.directory.fortress.core.model.User;
@@ -409,18 +411,23 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
* {@inheritDoc}
*/
@Override
- public Set<PermissionAttribute> rolePermissionAttributes( Role role, boolean noInhertiance )
+ public List<PermissionAttributeSet> rolePermissionAttributeSets( Role role, boolean noInhertiance )
throws SecurityException
{
- Set<PermissionAttribute> permAttributes = new HashSet<PermissionAttribute>();
+ Map<String, PermissionAttributeSet> permAttributeSets = new HashMap<String, PermissionAttributeSet>();
+ //look through all permissions in the role
List<Permission> permissions = this.rolePermissions(role, noInhertiance);
for(Permission perm : permissions){
- //TODO: need to get ftPA entries now...
- //permAttributes.addAll(perm.getAttributes());
+ if(perm.getPaSetName() != null && !perm.getPaSetName().isEmpty()){
+ if(!permAttributeSets.containsKey(perm.getPaSetName())){
+ PermissionAttributeSet permAttributeSet = permP.read(new PermissionAttributeSet(perm.getPaSetName()));
+ permAttributeSets.put(perm.getPaSetName(), permAttributeSet);
+ }
+ }
}
- return permAttributes;
+ return new ArrayList<PermissionAttributeSet>(permAttributeSets.values());
}
/**
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index 47da5ac..871362f 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -1840,8 +1840,6 @@ final class UserDAO extends ApacheDsDataProvider
ld = getAdminConnection();
modify( ld, userDn, mods, uRole );
-
- //TODO: make sure not adding same RC twice
}
catch ( LdapException e )
{
@@ -1871,9 +1869,7 @@ final class UserDAO extends ApacheDsDataProvider
szRoleConstraint ) );
ld = getAdminConnection();
- modify( ld, userDn, mods, uRole );
-
- //TODO: make sure not adding same RC twice
+ modify( ld, userDn, mods, uRole );
}
catch ( LdapException e )
{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java b/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
index f98f9d6..7b27a87 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/ObjectFactory.java
@@ -443,6 +443,13 @@ public class ObjectFactory
return new PermObj();
}
+ /**
+ * Create an instance of {@link PermissionAttributeSet}
+ */
+ public PermissionAttributeSet createPermAttributeSet()
+ {
+ return new PermissionAttributeSet();
+ }
/**
* Create an instance of {@link Permission}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
index 070c278..3bf25d1 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -70,6 +70,10 @@ public class PermissionAttributeSet extends FortEntity {
{
this.attributes = attributes;
}
+
+ public void setInternalId(String internalId){
+ this.internalId = internalId;
+ }
public String getInternalId() {
return internalId;
@@ -95,27 +99,5 @@ public class PermissionAttributeSet extends FortEntity {
public void setDn(String dn) {
this.dn = dn;
}
-
- /*
- private Set<PermissionAttribute> unloadPermissionAttributes( Entry entry )
- {
- Set<PermissionAttribute> permAttributes = null;
- List<String> ftPAs = getAttributes( entry, GlobalIds.FT_PERMISSION_ATTRIBUTE );
-
- if ( ftPAs != null )
- {
- permAttributes = new HashSet<PermissionAttribute>();
-
- for ( String raw : ftPAs )
- {
- PermissionAttribute permAttribute = new ObjectFactory().createPermissionAttribute();
- permAttribute.load( raw );
- permAttributes.add( permAttribute );
- }
- }
-
- return permAttributes;
- }
- */
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
index eaa25be..9d50730 100644
--- a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
@@ -29,6 +29,7 @@ import org.apache.directory.fortress.core.model.FortResponse;
import org.apache.directory.fortress.core.model.PermGrant;
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;
@@ -1265,4 +1266,30 @@ public final class AdminMgrRestImpl extends Manageable implements AdminMgr
// TODO Auto-generated method stub
return null;
}
+
+
+ @Override
+ public void deletePermissionAttributeSet(
+ PermissionAttributeSet permAttributeSet) throws SecurityException {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public PermissionAttribute addPermissionAttributeToSet(
+ PermissionAttribute permAttribute, String attributeSetName)
+ throws SecurityException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public void removePermissionAttributeFromSet(
+ PermissionAttribute permAttribute, String attributeSetName)
+ throws SecurityException {
+ // TODO Auto-generated method stub
+
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d7fb80ba/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
index 77d8c01..32dfa0b 100755
--- a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
@@ -33,7 +33,7 @@ import org.apache.directory.fortress.core.model.FortResponse;
import org.apache.directory.fortress.core.model.OrgUnit;
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.SDSet;
import org.apache.directory.fortress.core.model.User;
@@ -761,7 +761,7 @@ public class ReviewMgrRestImpl extends Manageable implements ReviewMgr
}
@Override
- public Set<PermissionAttribute> rolePermissionAttributes(Role role,
+ public List<PermissionAttributeSet> rolePermissionAttributeSets(Role role,
boolean noInhertiance) throws SecurityException {
// TODO Auto-generated method stub
return null;
[24/43] directory-fortress-core git commit: made role constraint
serializable
Posted by cp...@apache.org.
made role constraint serializable
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/d161f417
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/d161f417
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/d161f417
Branch: refs/heads/master
Commit: d161f41743f45d580368155dee3422eb249c9b5a
Parents: 0403277
Author: clp207 <cl...@psu.edu>
Authored: Tue Feb 9 11:41:49 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:23 2016 -0400
----------------------------------------------------------------------
.../apache/directory/fortress/core/model/RoleConstraint.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d161f417/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
index b893e4a..e343223 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -1,9 +1,13 @@
package org.apache.directory.fortress.core.model;
+import java.io.Serializable;
+
import org.apache.directory.fortress.core.GlobalIds;
-public class RoleConstraint {
+public class RoleConstraint implements Serializable {
+ private static final long serialVersionUID = 1L;
+
public static final String RC_TYPE_NAME = "type";
private RoleConstraintType constraintType;
[14/43] directory-fortress-core git commit: added missing delimiter
Posted by cp...@apache.org.
added missing delimiter
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/2c696793
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/2c696793
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/2c696793
Branch: refs/heads/master
Commit: 2c6967930c859a7ba22ba96477f12e0762f22e0f
Parents: e50cd6e
Author: clp207 <cl...@psu.edu>
Authored: Mon Jan 25 08:19:04 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/2c696793/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index ca7a20a..7775007 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -330,7 +330,7 @@ objectclass ( 1.3.6.1.4.1.38088.2.3
ftObjId $
ftRoles $
ftUsers $
- ftType
+ ftType $
ftPA
)
)
[30/43] directory-fortress-core git commit: fixing issues from merge
Posted by cp...@apache.org.
fixing issues from merge
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/7a8d7852
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/7a8d7852
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/7a8d7852
Branch: refs/heads/master
Commit: 7a8d78526659c80737e4b721c20d45d0671e25f5
Parents: 6e9a7dd
Author: clp207 <cl...@psu.edu>
Authored: Thu May 5 12:56:09 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu May 5 12:56:09 2016 -0400
----------------------------------------------------------------------
.../apache/directory/fortress/core/impl/PermDAO.java | 10 ----------
.../apache/directory/fortress/core/impl/UserDAO.java | 2 +-
.../directory/fortress/core/model/RoleConstraint.java | 13 +++++++------
.../org/apache/directory/fortress/core/util/VUtil.java | 2 +-
.../fortress/core/impl/FortressJUnitTest.java | 4 ----
.../fortress/core/impl/ReviewMgrImplTest.java | 2 +-
6 files changed, 10 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7a8d7852/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index cb0c5cb..1a7f242 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -48,29 +48,19 @@ import org.apache.directory.fortress.core.GlobalErrIds;
import org.apache.directory.fortress.core.GlobalIds;
import org.apache.directory.fortress.core.RemoveException;
import org.apache.directory.fortress.core.UpdateException;
-<<<<<<< HEAD
-import org.apache.directory.fortress.core.ldap.ApacheDsDataProvider;
-=======
import org.apache.directory.fortress.core.ldap.LdapDataProvider;
->>>>>>> master
import org.apache.directory.fortress.core.model.AdminRole;
import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.OrgUnit;
import org.apache.directory.fortress.core.model.PermObj;
import org.apache.directory.fortress.core.model.Permission;
-<<<<<<< HEAD
import org.apache.directory.fortress.core.model.PermissionAttribute;
import org.apache.directory.fortress.core.model.PermissionAttributeSet;
-=======
->>>>>>> master
import org.apache.directory.fortress.core.model.PropUtil;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.Session;
import org.apache.directory.fortress.core.model.User;
-<<<<<<< HEAD
-=======
import org.apache.directory.fortress.core.util.Config;
->>>>>>> master
import org.apache.directory.ldap.client.api.LdapConnection;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7a8d7852/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index 926a1a7..0d917a6 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -2591,7 +2591,7 @@ final class UserDAO extends LdapDataProvider
for ( String raw : roles )
{
//get role name
- String roleName = raw.substring(0, raw.indexOf( GlobalIds.DELIMITER )).toUpperCase();
+ String roleName = raw.substring(0, raw.indexOf( Config.getInstance().getDelimiter() )).toUpperCase();
//if already found, add to user role
if(uRoles.containsKey(roleName)){
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7a8d7852/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
index 96f9984..77df7db 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -21,7 +21,7 @@ package org.apache.directory.fortress.core.model;
import java.io.Serializable;
-import org.apache.directory.fortress.core.GlobalIds;
+import org.apache.directory.fortress.core.util.Config;
public class RoleConstraint implements Serializable {
@@ -65,16 +65,17 @@ public class RoleConstraint implements Serializable {
//BANK_USER$seq$0type$filter$ecomm.merchant.id$AccountId=12345&WithdrawLimit=500
public String getRawData(UserRole uRole){
- StringBuilder sb = new StringBuilder();
+ StringBuilder sb = new StringBuilder();
+ String delimeter = Config.getInstance().getDelimiter();
sb.append(uRole.getName());
- sb.append( GlobalIds.DELIMITER );
+ sb.append( delimeter );
sb.append(RC_TYPE_NAME);
- sb.append( GlobalIds.DELIMITER );
+ sb.append( delimeter );
sb.append(constraintType);
- sb.append( GlobalIds.DELIMITER );
+ sb.append( delimeter );
sb.append(paSetName);
- sb.append( GlobalIds.DELIMITER );
+ sb.append( delimeter );
sb.append(value);
return sb.toString();
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7a8d7852/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/util/VUtil.java b/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
index 31c4315..a6c684a 100755
--- a/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/util/VUtil.java
@@ -696,6 +696,6 @@ public final class VUtil implements ConstraintValidator
throw new ValidationException( GlobalErrIds.PERM_ATTRIBUTE_SET_NOT_FOUND, error );
}
- RegExUtil.safeText( value );
+ RegExUtil.getInstance().safeText( value );
}
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7a8d7852/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
index 5b692ec..e495ab1 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/FortressJUnitTest.java
@@ -23,11 +23,7 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-<<<<<<< HEAD
-import org.apache.directory.fortress.core.GlobalIds;
-=======
import org.apache.directory.fortress.core.util.Config;
->>>>>>> master
/**
* This JUnit test class drives all of the Fortress Administration APIs contained within {@link AdminMgrImplTest},
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7a8d7852/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
index d9a9c4d..7ecd7b1 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/ReviewMgrImplTest.java
@@ -209,7 +209,7 @@ public class ReviewMgrImplTest extends TestCase
Permission pop = PermTestData.getOp( obj, op );
Permission entity = reviewMgr.readPermission(pop);
- assertEquals(paSetName, entity.getPaSetName());
+ assertTrue(paSetName, entity.getPaSets().contains(paSetName));
LOG.debug( "readPASetFromPermission name [" + paSetName + "] successful" );
}
[27/43] directory-fortress-core git commit: updated version
Posted by cp...@apache.org.
updated version
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/b79194a9
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/b79194a9
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/b79194a9
Branch: refs/heads/master
Commit: b79194a9c65bb9f8cedf05dfed46f0a79b716ab8
Parents: 042b61d
Author: clp207 <cl...@psu.edu>
Authored: Wed Mar 30 15:46:17 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:46:17 2016 -0400
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b79194a9/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 99d6524..d0ee04e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
<artifactId>fortress-core</artifactId>
<packaging>jar</packaging>
<name>Apache Fortress Core</name>
- <version>1.0-RC42-SNAPSHOT</version>
+ <version>1.0-RC43-SNAPSHOT</version>
<inceptionYear>2007</inceptionYear>
<description>
Apache Fortress is a standards-based Access Management SDK that implements ANSI RBAC INCITS 359.
[15/43] directory-fortress-core git commit: updated ftRCs to include
paSetName
Posted by cp...@apache.org.
updated ftRCs to include paSetName
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/6c68e413
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/6c68e413
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/6c68e413
Branch: refs/heads/master
Commit: 6c68e413d3b7cbb2a5b657d0378dd48ed344b5ce
Parents: d7fb80b
Author: clp207 <cl...@psu.edu>
Authored: Fri Jan 29 11:53:30 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/GlobalErrIds.java | 5 ++++-
.../directory/fortress/core/ReviewMgr.java | 6 +++++-
.../fortress/core/impl/ReviewMgrImpl.java | 16 ++++++++++++++++
.../directory/fortress/core/impl/UserDAO.java | 2 +-
.../fortress/core/model/RoleConstraint.java | 19 ++++++++++++++++---
.../directory/fortress/core/model/UserRole.java | 2 +-
.../fortress/core/rest/ReviewMgrRestImpl.java | 8 ++++++++
7 files changed, 51 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index cbda366..93ecb29 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -669,7 +669,10 @@ public final class GlobalErrIds
* The supplied Permission Attribute Set could not be found on ldap server.
*/
public static final int PERM_ATTRIBUTE_SET_NOT_FOUND = 3035;
-
+ /**
+ * The supplied Permission Attribute Set name is required but was passed as null.
+ */
+ public static final int PERM_ATTRIBUTE_SET_NM_NULL = 3036;
/**
* 4000's - Password Policy Entity
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
index 0a4f15a..2f8dffe 100755
--- a/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/ReviewMgr.java
@@ -110,7 +110,11 @@ public interface ReviewMgr extends Manageable
PermObj readPermObj( PermObj permObj )
throws SecurityException;
-
+ //TODO: add documentation
+ PermissionAttributeSet readPermAttributeSet( PermissionAttributeSet permAttributeSet )
+ throws SecurityException;
+
+
/**
* Method returns a list of type Permission that match the perm object search string.
* <h3></h3>
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index 8f4e6bb..58dc46c 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -116,6 +116,22 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
checkAccess(CLS_NM, methodName);
return permP.read(permObj);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PermissionAttributeSet readPermAttributeSet( PermissionAttributeSet permAttributeSet )
+ throws SecurityException
+ {
+ String methodName = "readPermAttributeSet";
+ assertContext( CLS_NM, methodName, permAttributeSet, GlobalErrIds.PERM_ATTRIBUTE_SET_NULL );
+ VUtil.assertNotNull( permAttributeSet.getName(), GlobalErrIds.PERM_ATTRIBUTE_SET_NM_NULL, CLS_NM + "." + methodName );
+ checkAccess(CLS_NM, methodName);
+
+ return permP.read(permAttributeSet);
+ }
+
/**
* {@inheritDoc}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index 871362f..f2edc47 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -1833,7 +1833,7 @@ final class UserDAO extends ApacheDsDataProvider
try
{
List<Modification> mods = new ArrayList<Modification>();
- szRoleConstraint = roleConstraint.gerRawData(uRole);
+ szRoleConstraint = roleConstraint.getRawData(uRole);
mods.add( new DefaultModification( ModificationOperation.ADD_ATTRIBUTE, GlobalIds.USER_ROLE_DATA,
szRoleConstraint ) );
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
index 86e55d6..5b76178 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -8,14 +8,16 @@ public class RoleConstraint {
private RoleConstraintType constraintType;
private String value;
+ private String paSetName;
public RoleConstraint(){
}
- public RoleConstraint(String value, RoleConstraintType constraintType){
+ public RoleConstraint(String value, RoleConstraintType constraintType, String paSetName){
this.constraintType = constraintType;
this.value = value;
+ this.paSetName = paSetName;
}
public RoleConstraintType getConstraintType() {
@@ -30,9 +32,17 @@ public class RoleConstraint {
public void setValue(String value) {
this.value = value;
}
+ public String getPaSetName() {
+ return paSetName;
+ }
+
+ public void setPaSetName(String paSetName) {
+ this.paSetName = paSetName;
+ }
- //BANK_USER$seq$0type$filter$AccountId=12345&WithdrawLimit=500
- public String gerRawData(UserRole uRole){
+
+ //BANK_USER$seq$0type$filter$ecomm.merchant.id$AccountId=12345&WithdrawLimit=500
+ public String getRawData(UserRole uRole){
StringBuilder sb = new StringBuilder();
sb.append(uRole.getName());
@@ -41,8 +51,11 @@ public class RoleConstraint {
sb.append( GlobalIds.DELIMITER );
sb.append(constraintType);
sb.append( GlobalIds.DELIMITER );
+ sb.append(paSetName);
+ sb.append( GlobalIds.DELIMITER );
sb.append(value);
return sb.toString();
}
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
index b5eccd4..11e4404 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/UserRole.java
@@ -158,7 +158,7 @@ public class UserRole extends FortEntity implements Serializable, Constraint
//newer style constaint type
if(tokens[1].equals(RoleConstraint.RC_TYPE_NAME)){
- RoleConstraint rc = new RoleConstraint(tokens[3], RoleConstraintType.valueOf(tokens[2]));
+ RoleConstraint rc = new RoleConstraint(tokens[4], RoleConstraintType.valueOf(tokens[2]), tokens[3]);
this.getRoleConstraints().add(rc);
}
else{
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/6c68e413/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
index 32dfa0b..8d84318 100755
--- a/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/ReviewMgrRestImpl.java
@@ -1253,4 +1253,12 @@ public class ReviewMgrRestImpl extends Manageable implements ReviewMgr
return retSet.getCardinality();
}
+
+ @Override
+ public PermissionAttributeSet readPermAttributeSet(
+ PermissionAttributeSet permAttributeSet) throws SecurityException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
\ No newline at end of file
[20/43] directory-fortress-core git commit: added method to delete
PASet and add/remove PAs from a set
Posted by cp...@apache.org.
added method to delete PASet and add/remove PAs from a set
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/8dd536cd
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/8dd536cd
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/8dd536cd
Branch: refs/heads/master
Commit: 8dd536cd7bf2c42515b4779e790f7ef8c80bb1ac
Parents: b6f3fef
Author: clp207 <cl...@psu.edu>
Authored: Fri Jan 29 10:13:53 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 15 ++-
.../directory/fortress/core/GlobalErrIds.java | 26 +++-
.../fortress/core/impl/AdminMgrImpl.java | 47 +++++++-
.../directory/fortress/core/impl/PermDAO.java | 120 +++++++++++++++----
.../directory/fortress/core/impl/PermP.java | 21 +++-
.../core/model/PermissionAttributeSet.java | 4 +
6 files changed, 196 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8dd536cd/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index 30a77b4..de3639a 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -22,6 +22,7 @@ package org.apache.directory.fortress.core;
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;
@@ -520,10 +521,22 @@ public interface AdminMgr extends Manageable
throws SecurityException;
- //TODO: fill the documentation in
+ //TODO: add documentation
PermissionAttributeSet addPermissionAttributeSet( PermissionAttributeSet permAttributeSet )
throws SecurityException;
+ //TODO: add documentation
+ void deletePermissionAttributeSet( PermissionAttributeSet permAttributeSet )
+ throws SecurityException;
+
+ //TODO: add documentation
+ PermissionAttribute addPermissionAttributeToSet( PermissionAttribute permAttribute, String attributeSetName )
+ throws SecurityException;
+
+ //TODO: add documentation
+ void removePermissionAttributeFromSet( PermissionAttribute permAttribute, String attributeSetName )
+ throws SecurityException;
+
/**
* This method will update permission operation pre-existing in target directory under
* {@code ou=Permissions,ou=RBAC,dc=yourHostName,dc=com} container in directory information tree.
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8dd536cd/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
index a0f6f7e..a170274 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalErrIds.java
@@ -645,7 +645,27 @@ public final class GlobalErrIds
* The supplied Permission does not exist in LDAP DIT.
*/
public static final int PERM_NOT_EXIST = 3029;
-
+ /**
+ * The supplied Permission Attribute Set is required but was passed as null.
+ */
+ public static final int PERM_ATTRIBUTE_SET_NULL = 3030;
+ /**
+ * The supplied Permission Attribute Set could not be removed from ldap server.
+ */
+ public static final int PERM_ATTRIBUTE_SET_DELETE_FAILED = 3031;
+ /**
+ * The supplied Permission Attribute is required but was passed as null.
+ */
+ public static final int PERM_ATTRIBUTE_NULL = 3032;
+ /**
+ * The supplied Permission Attribute could not be removed from ldap server.
+ */
+ public static final int PERM_ATTRIBUTE_DELETE_FAILED = 3033;
+ /**
+ * The supplied Permission Attribute could not be added to ldap server.
+ */
+ public static final int PERM_ATTR_ADD_FAILED = 3034;
+
/**
* 4000's - Password Policy Entity
*/
@@ -1656,8 +1676,4 @@ public final class GlobalErrIds
*/
public static final int GROUP_PROTOCOL_INVLD = 10313;
- /**
- * The supplied Permission Attribute could not be added to ldap server.
- */
- public static final int PERM_ATTR_ADD_FAILED = 10314;
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8dd536cd/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index 61f090d..2248b73 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -34,6 +34,7 @@ import org.apache.directory.fortress.core.model.ConstraintUtil;
import org.apache.directory.fortress.core.model.Hier;
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.Relationship;
import org.apache.directory.fortress.core.model.Role;
@@ -402,12 +403,48 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
public PermissionAttributeSet addPermissionAttributeSet( PermissionAttributeSet permAttributeSet ) throws SecurityException
{
String methodName = "addPermissionAttributeSet";
- //TODO: add better global err ids
- assertContext( CLS_NM, methodName, permAttributeSet, GlobalErrIds.PERM_OPERATION_NULL );
- //TODO: set entity session...
- //setEntitySession( CLS_NM, methodName, permAttribute );
+ assertContext( CLS_NM, methodName, permAttributeSet, GlobalErrIds.PERM_ATTRIBUTE_SET_NULL );
+ //TODO: verify with Shawn we don't need to set entity session here...
return permP.add( permAttributeSet );
- }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void deletePermissionAttributeSet( PermissionAttributeSet permAttributeSet ) throws SecurityException
+ {
+ String methodName = "deletePermissionAttributeSet";
+ assertContext( CLS_NM, methodName, permAttributeSet, GlobalErrIds.PERM_ATTRIBUTE_SET_NULL );
+ //TODO: verify with Shawn we don't need to set entity session here...
+ permP.delete( permAttributeSet );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PermissionAttribute addPermissionAttributeToSet( PermissionAttribute permAttribute, String attributeSetName )
+ throws SecurityException
+ {
+ String methodName = "addPermissionAttributeToSet";
+ assertContext( CLS_NM, methodName, permAttribute, GlobalErrIds.PERM_ATTRIBUTE_NULL );
+ //TODO: verify with Shawn we don't need to set entity session here...
+ return permP.add( permAttribute, attributeSetName );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void removePermissionAttributeFromSet( PermissionAttribute permAttribute, String attributeSetName )
+ throws SecurityException
+ {
+ String methodName = "removePermissionAttributeFromSet";
+ assertContext( CLS_NM, methodName, permAttribute, GlobalErrIds.PERM_ATTRIBUTE_NULL );
+ //TODO: verify with Shawn we don't need to set entity session here...
+ permP.delete( permAttribute, attributeSetName );
+ }
/**
* {@inheritDoc}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8dd536cd/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index e4d334c..a8f5373 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -459,7 +459,7 @@ final class PermDAO extends ApacheDsDataProvider
PermissionAttributeSet createPermissionAttributeSet( PermissionAttributeSet entity ) throws CreateException
{
LdapConnection ld = null;
- String dn = getDn( entity , entity.getContextId() );
+ String dn = getPASetDn( entity.getName() , entity.getContextId() );
try
{
@@ -496,36 +496,46 @@ final class PermDAO extends ApacheDsDataProvider
{
closeAdminConnection( ld );
}
-
-
+
//add each ftPA
for(PermissionAttribute pa : entity.getAttributes()){
- try
- {
- List<Modification> mods = new ArrayList<Modification>();
- mods.add( new DefaultModification(
- ModificationOperation.ADD_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE, pa.toFtPAString()) );
- ld = getAdminConnection();
- modify( ld, dn, mods, entity );
-
- //TODO: make sure not adding same attribute twice...???
- }
- catch ( LdapException e )
- {
- String error = "create perm attribute [" + pa.getAttributeName() + "] caught LdapException="
- + e.getMessage();
- throw new CreateException( GlobalErrIds.PERM_ATTR_ADD_FAILED, error, e );
- }
- finally
- {
- closeAdminConnection( ld );
- }
+ this.createPermissionAttribute(pa, entity.getName());
}
//TODO: need to do anything to returned entity?
return entity;
}
+ //TODO: add documentation
+ PermissionAttribute createPermissionAttribute( PermissionAttribute entity, String attributeSetName ) throws CreateException
+ {
+ LdapConnection ld = null;
+ String dn = getPASetDn( attributeSetName, entity.getContextId() );
+
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+ mods.add( new DefaultModification(
+ ModificationOperation.ADD_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE, entity.toFtPAString()) );
+ ld = getAdminConnection();
+ modify( ld, dn, mods, entity );
+
+ //TODO: make sure not adding same attribute twice...???
+ }
+ catch ( LdapException e )
+ {
+ String error = "create perm attribute [" + entity.getAttributeName() + "] caught LdapException="
+ + e.getMessage();
+ throw new CreateException( GlobalErrIds.PERM_ATTR_ADD_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+
+ return entity;
+ }
+
/**
* @param entity
* @return
@@ -630,6 +640,66 @@ final class PermDAO extends ApacheDsDataProvider
}
}
+ /**
+ * @param entity
+ * @throws RemoveException
+ */
+ void deleteAttributeSet( PermissionAttributeSet entity ) throws RemoveException
+ {
+ LdapConnection ld = null;
+ String dn = getPASetDn( entity.getName(), entity.getContextId() );
+
+ try
+ {
+ ld = getAdminConnection();
+ deleteRecursive( ld, dn, entity );
+ }
+ catch ( LdapException e )
+ {
+ String error = "deleteAttributeSet name [" + entity.getName() + "]"
+ + " caught LdapException=" + e.getMessage();
+ throw new RemoveException( GlobalErrIds.PERM_ATTRIBUTE_SET_DELETE_FAILED, error, e );
+ }
+ catch ( CursorException e )
+ {
+ String error = "deleteAttributeSet name [" + entity.getName() + "] "
+ + " caught LdapException=" + e.getMessage();
+ throw new RemoveException( GlobalErrIds.PERM_ATTRIBUTE_SET_DELETE_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ }
+
+ /**
+ * @param entity
+ * @throws RemoveException
+ */
+ void deletePermissionAttribute( PermissionAttribute entity, String attributeSetName ) throws RemoveException
+ {
+ LdapConnection ld = null;
+ String dn = getPASetDn( attributeSetName, entity.getContextId() );
+
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+ mods.add( new DefaultModification(
+ ModificationOperation.REMOVE_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE, entity.toFtPAString() ) );
+ ld = getAdminConnection();
+ modify( ld, dn, mods, new PermissionAttributeSet(attributeSetName) );
+ }
+ catch ( LdapException e )
+ {
+ String error = "deletePermissionAttribute name [" + entity.getAttributeName() + "] set ["
+ + attributeSetName + "] caught LdapException=" + e.getMessage();
+ throw new RemoveException( GlobalErrIds.PERM_ATTRIBUTE_DELETE_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ }
/**
* @param pOp
@@ -1762,10 +1832,10 @@ final class PermDAO extends ApacheDsDataProvider
}
- private String getDn( PermissionAttributeSet paSet, String contextId )
+ private String getPASetDn( String name, String contextId )
{
//TODO: what ou to put this?
- return SchemaConstants.CN_AT + "=" + paSet.getName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
+ return SchemaConstants.CN_AT + "=" + name + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8dd536cd/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index 585323e..4284c47 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -33,6 +33,7 @@ import org.apache.directory.fortress.core.model.AdminRole;
import org.apache.directory.fortress.core.model.OrgUnit;
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.Session;
@@ -374,7 +375,20 @@ final class PermP
//TODO: add validation
return pDao.createPermissionAttributeSet( entity );
}
+
+ //TODO: add documentation
+ PermissionAttribute add( PermissionAttribute entity, String attributeSetName ) throws SecurityException
+ {
+ //TODO: add validation
+ return pDao.createPermissionAttribute( entity, attributeSetName );
+ }
+ //TODO: add documentation
+ void delete( PermissionAttribute entity, String attributeSetName ) throws SecurityException
+ {
+ //TODO: add validation
+ pDao.deletePermissionAttribute( entity, attributeSetName );
+ }
/**
* Update existing Permission Object attributes with the input entity. Null or empty attributes will be ignored.
@@ -476,7 +490,12 @@ final class PermP
pDao.deleteOperation( entity );
}
-
+ //TODO: add documentation
+ void delete( PermissionAttributeSet entity ) throws SecurityException
+ {
+ pDao.deleteAttributeSet( entity );
+ }
+
/**
* This command grants a role the permission to perform an operation on an object to a role.
* The command is implemented by granting permission by setting the access control list of
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/8dd536cd/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
index 46fb95a..070c278 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -28,6 +28,10 @@ public class PermissionAttributeSet extends FortEntity {
private String description;
private String dn;
+ public PermissionAttributeSet(String name){
+ this.name = name;
+ }
+
public PermissionAttributeSet(){
}
[43/43] directory-fortress-core git commit: ran tests for FC-116
Posted by cp...@apache.org.
ran tests for FC-116
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/33b49fe5
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/33b49fe5
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/33b49fe5
Branch: refs/heads/master
Commit: 33b49fe5f5a1018008ec213af160beb24699f5f0
Parents: 84e8271
Author: clp207 <cl...@psu.edu>
Authored: Thu Oct 6 13:48:22 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Thu Oct 6 13:48:22 2016 -0400
----------------------------------------------------------------------
----------------------------------------------------------------------
[25/43] directory-fortress-core git commit: updates to support perm
attrs
Posted by cp...@apache.org.
updates to support perm attrs
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/0403277b
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/0403277b
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/0403277b
Branch: refs/heads/master
Commit: 0403277bac6287549a060682bd0c34a1ad552285
Parents: e3a74de
Author: clp207 <cl...@psu.edu>
Authored: Fri Feb 5 15:07:00 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:23 2016 -0400
----------------------------------------------------------------------
src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java | 2 +-
.../apache/directory/fortress/core/model/PermissionAttribute.java | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/0403277b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index b1a0c9e..50aaec2 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -2575,7 +2575,7 @@ final class UserDAO extends ApacheDsDataProvider
for ( String raw : roles )
{
//get role name
- String roleName = raw.substring(0, raw.indexOf( GlobalIds.DELIMITER ));
+ String roleName = raw.substring(0, raw.indexOf( GlobalIds.DELIMITER )).toUpperCase();
//if already found, add to user role
if(uRoles.containsKey(roleName)){
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/0403277b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index c374df0..d585efd 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -18,8 +18,6 @@ import org.apache.commons.lang.StringUtils;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "permission", propOrder =
{
- "opName",
- "objName",
"required",
"operator",
"dataType",
[21/43] directory-fortress-core git commit: adding missing headers in
new files
Posted by cp...@apache.org.
adding missing headers in new files
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/d554bfde
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/d554bfde
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/d554bfde
Branch: refs/heads/master
Commit: d554bfde23f3e883ca3da4089c5f74434c89af3d
Parents: d161f41
Author: clp207 <cl...@psu.edu>
Authored: Tue Feb 9 14:01:23 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:23 2016 -0400
----------------------------------------------------------------------
.../fortress/core/model/PermissionAttribute.java | 19 +++++++++++++++++++
.../core/model/PermissionAttributeSet.java | 19 +++++++++++++++++++
.../fortress/core/model/RoleConstraint.java | 19 +++++++++++++++++++
.../fortress/core/model/RoleConstraintType.java | 19 +++++++++++++++++++
4 files changed, 76 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d554bfde/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index d585efd..56105cd 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -1,3 +1,22 @@
+/*
+ * 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.model;
import java.io.Serializable;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d554bfde/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
index 3bf25d1..90563ad 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -1,3 +1,22 @@
+/*
+ * 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.model;
import java.util.HashSet;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d554bfde/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
index e343223..96f9984 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraint.java
@@ -1,3 +1,22 @@
+/*
+ * 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.model;
import java.io.Serializable;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d554bfde/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
index 6eb4b57..4f79df0 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/RoleConstraintType.java
@@ -1,3 +1,22 @@
+/*
+ * 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.model;
public enum RoleConstraintType {
[16/43] directory-fortress-core git commit: started change to
ftAttributeSet
Posted by cp...@apache.org.
started change to ftAttributeSet
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/b6f3fef8
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/b6f3fef8
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/b6f3fef8
Branch: refs/heads/master
Commit: b6f3fef8b212e49664f2ee66ddd7fdfd8956e61c
Parents: d5a5d5a
Author: clp207 <cl...@psu.edu>
Authored: Thu Jan 28 17:25:37 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/AdminMgr.java | 6 +-
.../directory/fortress/core/GlobalIds.java | 14 ++-
.../fortress/core/impl/AdminMgrImpl.java | 16 +--
.../directory/fortress/core/impl/PermDAO.java | 113 ++++++++++++------
.../directory/fortress/core/impl/PermP.java | 6 +-
.../fortress/core/impl/ReviewMgrImpl.java | 3 +-
.../directory/fortress/core/impl/UserP.java | 2 +-
.../fortress/core/model/Permission.java | 44 +++----
.../core/model/PermissionAttribute.java | 55 ---------
.../core/model/PermissionAttributeSet.java | 117 +++++++++++++++++++
.../fortress/core/rest/AdminMgrRestImpl.java | 16 +--
11 files changed, 245 insertions(+), 147 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
index 4131d2b..30a77b4 100755
--- a/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
+++ b/src/main/java/org/apache/directory/fortress/core/AdminMgr.java
@@ -22,7 +22,7 @@ package org.apache.directory.fortress.core;
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;
@@ -521,9 +521,9 @@ public interface AdminMgr extends Manageable
//TODO: fill the documentation in
- PermissionAttribute addPermissionAttribute( PermissionAttribute permAttribute )
+ PermissionAttributeSet addPermissionAttributeSet( PermissionAttributeSet permAttributeSet )
throws SecurityException;
-
+
/**
* This method will update permission operation pre-existing in target directory under
* {@code ou=Permissions,ou=RBAC,dc=yourHostName,dc=com} container in directory information tree.
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index 4ca88fe..c6a0a66 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@ -345,8 +345,8 @@ public final class GlobalIds
/**
* Attribute name for storing Fortress permission object names.
*/
- public static final String POBJ_NAME = "ftObjNm";
-
+ public static final String POBJ_NAME = "ftObjNm";
+
/**
* Attribute name for storing Fortress permission object id.
*/
@@ -533,4 +533,14 @@ public final class GlobalIds
* The ftPA field contains attributes and associated metadata for permissions.
*/
public static final String FT_PERMISSION_ATTRIBUTE = "ftPA";
+
+ /**
+ * The ftPASet field contains the name of the ftPermissionAttributeSet for a permission
+ */
+ public static final String FT_PERMISSION_ATTRIBUTE_SET = "ftPASet";
+
+ /**
+ * Attribute name for storing Fortress permission attribute set object names.
+ */
+ public static final String PERMISSION_ATTRIBUTE_SET_NAME = "ftAttributeSet";
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
index ab4aea9..61f090d 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminMgrImpl.java
@@ -34,7 +34,7 @@ import org.apache.directory.fortress.core.model.ConstraintUtil;
import org.apache.directory.fortress.core.model.Hier;
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.Relationship;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.RoleConstraint;
@@ -399,14 +399,16 @@ public final class AdminMgrImpl extends Manageable implements AdminMgr, Serializ
* {@inheritDoc}
*/
@Override
- public PermissionAttribute addPermissionAttribute( PermissionAttribute permAttribute ) throws SecurityException
+ public PermissionAttributeSet addPermissionAttributeSet( PermissionAttributeSet permAttributeSet ) throws SecurityException
{
- String methodName = "addPermissionAttribute";
- assertContext( CLS_NM, methodName, permAttribute, GlobalErrIds.PERM_OPERATION_NULL );
- setEntitySession( CLS_NM, methodName, permAttribute );
- return permP.add( permAttribute );
+ String methodName = "addPermissionAttributeSet";
+ //TODO: add better global err ids
+ assertContext( CLS_NM, methodName, permAttributeSet, GlobalErrIds.PERM_OPERATION_NULL );
+ //TODO: set entity session...
+ //setEntitySession( CLS_NM, methodName, permAttribute );
+ return permP.add( permAttributeSet );
}
-
+
/**
* {@inheritDoc}
*/
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 67ed958..e4d334c 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -22,7 +22,6 @@ package org.apache.directory.fortress.core.impl;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -56,6 +55,7 @@ import org.apache.directory.fortress.core.model.OrgUnit;
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.PropUtil;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.Session;
@@ -162,7 +162,8 @@ final class PermDAO extends ApacheDsDataProvider
private static final String TYPE = "ftType";
private static final String PERM_OBJ_OBJECT_CLASS_NAME = "ftObject";
private static final String PERM_OP_OBJECT_CLASS_NAME = "ftOperation";
-
+ private static final String PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME = "ftAttributeSet";
+
private static final String PERM_OBJ_OBJ_CLASS[] =
{
SchemaConstants.TOP_OC,
@@ -184,7 +185,7 @@ final class PermDAO extends ApacheDsDataProvider
private static final String PERM_NAME = "ftPermName";
private static final String ROLES = "ftRoles";
private static final String USERS = "ftUsers";
- private static final String PERMISSION_ATTRIBUTE = "ftPA";
+ private static final String PERMISSION_ATTRIBUTE_SET = "ftPASet";
private static final String[] PERMISSION_OP_ATRS =
{
GlobalIds.FT_IID,
@@ -198,7 +199,7 @@ final class PermDAO extends ApacheDsDataProvider
ROLES,
USERS,
GlobalIds.PROPS,
- PERMISSION_ATTRIBUTE
+ PERMISSION_ATTRIBUTE_SET
};
private static final String[] PERMISION_OBJ_ATRS =
@@ -416,6 +417,11 @@ final class PermDAO extends ApacheDsDataProvider
{
entry.add( TYPE, entity.getType() );
}
+
+ if ( StringUtils.isNotEmpty( entity.getPaSetName() ) )
+ {
+ entry.add( PERMISSION_ATTRIBUTE_SET, entity.getPaSetName() );
+ }
// These are multi-valued attributes, use the util function to load:
// These items are optional as well. The utility function will return quietly if no items are loaded into collection:
@@ -450,33 +456,72 @@ final class PermDAO extends ApacheDsDataProvider
//TODO: add documentation
- PermissionAttribute createPermissionAttribute( PermissionAttribute entity ) throws CreateException
+ PermissionAttributeSet createPermissionAttributeSet( PermissionAttributeSet entity ) throws CreateException
{
LdapConnection ld = null;
- String dn = getDn( new Permission(entity.getObjName(), entity.getOpName()) , entity.getContextId() );
+ String dn = getDn( entity , entity.getContextId() );
try
{
- List<Modification> mods = new ArrayList<Modification>();
- mods.add( new DefaultModification(
- ModificationOperation.ADD_ATTRIBUTE, PERMISSION_ATTRIBUTE, entity.toFtPAString()) );
+ Entry entry = new DefaultEntry( dn );
+
+ entry.add( SchemaConstants.OBJECT_CLASS_AT, PERMISSION_ATTRIBUTE_OBJECT_CLASS_NAME );
+
+ // this will generate a new random, unique id on this entity:
+ entity.setInternalId();
+
+ // create the internal id:
+ entry.add( GlobalIds.FT_IID, entity.getInternalId() );
+
+ // description is optional:
+ if ( StringUtils.isNotEmpty( entity.getDescription() ) )
+ {
+ entry.add( SchemaConstants.DESCRIPTION_AT, entity.getDescription() );
+ }
+
+ // organizational name requires CN attribute:
+ entry.add( SchemaConstants.CN_AT, entity.getName() );
+
+ // now add the new entry to directory:
ld = getAdminConnection();
- modify( ld, dn, mods, entity );
-
- //TODO: make sure not adding same attribute twice...
+ add( ld, entry, entity );
+ entity.setDn( dn );
}
catch ( LdapException e )
{
- String error = "create perm attribute [" + entity.getObjName() + "] operation ["
- + entity.getOpName() + "] name [" + entity.getAttributeName() + "] caught LdapException="
- + e.getMessage();
- throw new CreateException( GlobalErrIds.PERM_ATTR_ADD_FAILED, error, e );
+ String error = "createPermissionAttributeSet name [" + entity.getName() + "] caught LdapException=" + e.getMessage();
+ throw new CreateException( GlobalErrIds.PERM_ADD_FAILED, error, e );
}
finally
{
closeAdminConnection( ld );
}
+
+ //add each ftPA
+ for(PermissionAttribute pa : entity.getAttributes()){
+ try
+ {
+ List<Modification> mods = new ArrayList<Modification>();
+ mods.add( new DefaultModification(
+ ModificationOperation.ADD_ATTRIBUTE, GlobalIds.FT_PERMISSION_ATTRIBUTE, pa.toFtPAString()) );
+ ld = getAdminConnection();
+ modify( ld, dn, mods, entity );
+
+ //TODO: make sure not adding same attribute twice...???
+ }
+ catch ( LdapException e )
+ {
+ String error = "create perm attribute [" + pa.getAttributeName() + "] caught LdapException="
+ + e.getMessage();
+ throw new CreateException( GlobalErrIds.PERM_ATTR_ADD_FAILED, error, e );
+ }
+ finally
+ {
+ closeAdminConnection( ld );
+ }
+ }
+
//TODO: need to do anything to returned entity?
return entity;
}
@@ -516,6 +561,13 @@ final class PermDAO extends ApacheDsDataProvider
mods.add( new DefaultModification(
ModificationOperation.REPLACE_ATTRIBUTE, TYPE, entity.getType() ) );
}
+
+ if ( StringUtils.isNotEmpty( entity.getPaSetName() ) )
+ {
+
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, PERMISSION_ATTRIBUTE_SET, entity.getPaSetName() ) );
+ }
// These are multi-valued attributes, use the util function to load:
loadAttrs( entity.getRoles(), mods, ROLES );
@@ -1061,7 +1113,7 @@ final class PermDAO extends ApacheDsDataProvider
entity.setDescription( getAttribute( le, SchemaConstants.DESCRIPTION_AT ) );
entity.addProperties( PropUtil.getProperties( getAttributes( le, GlobalIds.PROPS ) ) );
entity.setAdmin( isAdmin );
- entity.setAttributes( unloadPermissionAttributes(le) );
+ entity.setPaSetName( getAttribute(le, GlobalIds.FT_PERMISSION_ATTRIBUTE_SET ) );
if ( le != null )
{
@@ -1093,26 +1145,6 @@ final class PermDAO extends ApacheDsDataProvider
entity.setAdmin( isAdmin );
return entity;
}
-
- private Set<PermissionAttribute> unloadPermissionAttributes( Entry entry )
- {
- Set<PermissionAttribute> permAttributes = null;
- List<String> ftPAs = getAttributes( entry, GlobalIds.FT_PERMISSION_ATTRIBUTE );
-
- if ( ftPAs != null )
- {
- permAttributes = new HashSet<PermissionAttribute>();
-
- for ( String raw : ftPAs )
- {
- PermissionAttribute permAttribute = new ObjectFactory().createPermissionAttribute();
- permAttribute.load( raw );
- permAttributes.add( permAttribute );
- }
- }
-
- return permAttributes;
- }
/**
* @param permission
@@ -1728,6 +1760,13 @@ final class PermDAO extends ApacheDsDataProvider
{
return GlobalIds.POBJ_NAME + "=" + pObj.getObjName() + "," + getRootDn( pObj.isAdmin(), contextId );
}
+
+
+ private String getDn( PermissionAttributeSet paSet, String contextId )
+ {
+ //TODO: what ou to put this?
+ return SchemaConstants.CN_AT + "=" + paSet.getName() + "," + getRootDn( contextId, GlobalIds.SD_ROOT );
+ }
private String getRootDn( boolean isAdmin, String contextId )
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
index c1738c7..585323e 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermP.java
@@ -33,7 +33,7 @@ import org.apache.directory.fortress.core.model.AdminRole;
import org.apache.directory.fortress.core.model.OrgUnit;
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.Session;
import org.apache.directory.fortress.core.model.User;
@@ -369,10 +369,10 @@ final class PermP
}
//TODO: add documentation
- PermissionAttribute add( PermissionAttribute entity ) throws SecurityException
+ PermissionAttributeSet add( PermissionAttributeSet entity ) throws SecurityException
{
//TODO: add validation
- return pDao.createPermissionAttribute( entity );
+ return pDao.createPermissionAttributeSet( entity );
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
index 12190c7..463572c 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/ReviewMgrImpl.java
@@ -416,7 +416,8 @@ public class ReviewMgrImpl extends Manageable implements ReviewMgr, Serializable
List<Permission> permissions = this.rolePermissions(role, noInhertiance);
for(Permission perm : permissions){
- permAttributes.addAll(perm.getAttributes());
+ //TODO: need to get ftPA entries now...
+ //permAttributes.addAll(perm.getAttributes());
}
return permAttributes;
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
index 940ca63..dfe7b3c 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserP.java
@@ -639,7 +639,7 @@ final class UserP
//TODO: add documentation
void assign( UserRole uRole, RoleConstraint roleConstraint ) throws SecurityException
{
- //TODO: validate?
+ //TODO: validate role constraint points to actual ftAttributeSet?
uDao.assign( uRole, roleConstraint );
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/model/Permission.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/Permission.java b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
index 4974627..e96ba0d 100755
--- a/src/main/java/org/apache/directory/fortress/core/model/Permission.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/Permission.java
@@ -22,7 +22,6 @@ package org.apache.directory.fortress.core.model;
import java.io.Serializable;
import java.util.Enumeration;
-import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -258,7 +257,8 @@ import org.apache.commons.lang.StringUtils;
"roles",
"props",
"dn",
- "admin"
+ "admin",
+ "paSetName"
})
public class Permission extends FortEntity implements Serializable
{
@@ -280,9 +280,8 @@ public class Permission extends FortEntity implements Serializable
@XmlElement(nillable = true)
private Set<String> roles;
@XmlElement(nillable = true)
- private Set<String> users;
- @XmlElement(nillable = true)
- private Set<PermissionAttribute> attributes;
+ private Set<String> users;
+ private String paSetName;
/**
* This constructor is commonly used to create Permission that is a target for authorization API.
@@ -676,34 +675,9 @@ public class Permission extends FortEntity implements Serializable
this.props = value;
}
- /**
- * Return the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
- * attribute of ftPA entries on the 'ftOperation' object class.
- *
- * @return Set containing the roles which maps to 'ftRoles' attribute in 'ftOperation' object class.
- */
- public Set<PermissionAttribute> getAttributes()
- {
- if(this.attributes == null){
- attributes = new HashSet<PermissionAttribute>();
- }
-
- return this.attributes;
- }
/**
- * Set the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
- * attribute of ftPAs on the 'ftOperation' object class.
- *
- * @param attributes maps to 'ftPA' attribute in 'ftOperation' object class.
- */
- public void setAttributes( Set<PermissionAttribute> attributes )
- {
- this.attributes = attributes;
- }
-
- /**
* Add name/value pair to list of properties associated with Permission. These values are not constrained by Fortress.
* Properties are optional.
*
@@ -855,4 +829,14 @@ public class Permission extends FortEntity implements Serializable
", objId='" + objId + '\'' +
'}';
}
+
+
+ public String getPaSetName() {
+ return paSetName;
+ }
+
+
+ public void setPaSetName(String paSetName) {
+ this.paSetName = paSetName;
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index a69d92f..453a784 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -37,8 +37,6 @@ public class PermissionAttribute extends FortEntity implements Serializable {
private static final String VALID_VALUES_PARAM_NAME = "validValues";
private static final String DEFAULT_VALUE_PARAM_NAME = "defaultValue";
- private String opName;
- private String objName;
private String attributeName;
private Boolean required;
private ComparisonOperator operator;
@@ -48,12 +46,6 @@ public class PermissionAttribute extends FortEntity implements Serializable {
private List<String> validValues;
private String defaultValue;
- public PermissionAttribute(String objName, String opName )
- {
- this.objName = objName;
- this.opName = opName;
- }
-
public PermissionAttribute(){
}
@@ -114,18 +106,6 @@ public class PermissionAttribute extends FortEntity implements Serializable {
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
- public String getOpName() {
- return opName;
- }
- public void setOpName(String opName) {
- this.opName = opName;
- }
- public String getObjName() {
- return objName;
- }
- public void setObjName(String objName) {
- this.objName = objName;
- }
public String getAttributeName() {
return attributeName;
}
@@ -172,39 +152,4 @@ public class PermissionAttribute extends FortEntity implements Serializable {
}
}
- /**
- * Matches the objName, opName and attributeName from two Permission entities.
- *
- * @param o contains a PermissionAttribute entity.
- * @return boolean indicating both PermissionAttributes contain matching objName, opName, and attributeName attributes.
- */
- @Override
- public boolean equals(Object o)
- {
- if ( this == o )
- {
- return true;
- }
- if ( o == null || getClass() != o.getClass() )
- {
- return false;
- }
-
- PermissionAttribute that = ( PermissionAttribute ) o;
-
- if ( objName != null ? !objName.equalsIgnoreCase( that.objName ) : that.objName != null )
- {
- return false;
- }
- if ( opName != null ? !opName.equalsIgnoreCase( that.opName ) : that.opName != null )
- {
- return false;
- }
- if ( attributeName != null ? !attributeName.equalsIgnoreCase( that.attributeName ) : that.attributeName != null )
- {
- return false;
- }
-
- return true;
- }
}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
new file mode 100644
index 0000000..46fb95a
--- /dev/null
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttributeSet.java
@@ -0,0 +1,117 @@
+package org.apache.directory.fortress.core.model;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlRootElement(name = "ftPermissionAttributeSet")
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "permission", propOrder =
+ {
+ "name",
+ "attributes",
+ "internalId",
+ "description"
+})
+public class PermissionAttributeSet extends FortEntity {
+
+ private String name;
+ @XmlElement(nillable = true)
+ private Set<PermissionAttribute> attributes;
+ private String internalId;
+ private String description;
+ private String dn;
+
+ public PermissionAttributeSet(){
+
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Return the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
+ * attribute of ftPA entries on the 'ftAttributeSet' object class.
+ *
+ * @return Set containing the roles which maps to 'ftRoles' attribute in 'ftOperation' object class.
+ */
+ public Set<PermissionAttribute> getAttributes()
+ {
+ if(this.attributes == null){
+ attributes = new HashSet<PermissionAttribute>();
+ }
+
+ return this.attributes;
+ }
+
+
+ /**
+ * Set the collection of optional Attributes that have been loaded into this entity. This is stored as a multi-occurring
+ * attribute of ftPAs on the 'ftOperation' object class.
+ *
+ * @param attributes maps to 'ftPA' attribute in 'ftOperation' object class.
+ */
+ public void setAttributes( Set<PermissionAttribute> attributes )
+ {
+ this.attributes = attributes;
+ }
+
+ public String getInternalId() {
+ return internalId;
+ }
+
+ public void setInternalId() {
+ UUID uuid = UUID.randomUUID();
+ this.internalId = uuid.toString();
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getDn() {
+ return dn;
+ }
+
+ public void setDn(String dn) {
+ this.dn = dn;
+ }
+
+ /*
+ private Set<PermissionAttribute> unloadPermissionAttributes( Entry entry )
+ {
+ Set<PermissionAttribute> permAttributes = null;
+ List<String> ftPAs = getAttributes( entry, GlobalIds.FT_PERMISSION_ATTRIBUTE );
+
+ if ( ftPAs != null )
+ {
+ permAttributes = new HashSet<PermissionAttribute>();
+
+ for ( String raw : ftPAs )
+ {
+ PermissionAttribute permAttribute = new ObjectFactory().createPermissionAttribute();
+ permAttribute.load( raw );
+ permAttributes.add( permAttribute );
+ }
+ }
+
+ return permAttributes;
+ }
+ */
+
+}
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/b6f3fef8/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
index c3e61ac..eaa25be 100644
--- a/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/rest/AdminMgrRestImpl.java
@@ -29,7 +29,7 @@ import org.apache.directory.fortress.core.model.FortResponse;
import org.apache.directory.fortress.core.model.PermGrant;
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.RoleRelationship;
@@ -1244,25 +1244,25 @@ public final class AdminMgrRestImpl extends Manageable implements AdminMgr
@Override
- public PermissionAttribute addPermissionAttribute(
- PermissionAttribute permAttribute) throws SecurityException {
+ public RoleConstraint addRoleConstraint(UserRole uRole,
+ RoleConstraint roleConstraint) throws SecurityException {
// TODO Auto-generated method stub
return null;
}
@Override
- public RoleConstraint addRoleConstraint(UserRole uRole,
+ public void removeRoleConstraint(UserRole uRole,
RoleConstraint roleConstraint) throws SecurityException {
// TODO Auto-generated method stub
- return null;
+
}
@Override
- public void removeRoleConstraint(UserRole uRole,
- RoleConstraint roleConstraint) throws SecurityException {
+ public PermissionAttributeSet addPermissionAttributeSet(
+ PermissionAttributeSet permAttributeSet) throws SecurityException {
// TODO Auto-generated method stub
-
+ return null;
}
}
\ No newline at end of file
[09/43] directory-fortress-core git commit: added constructor with
attribute name
Posted by cp...@apache.org.
added constructor with attribute name
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/9d11f773
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/9d11f773
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/9d11f773
Branch: refs/heads/master
Commit: 9d11f773c6ea233dc5ce3cc28979e6c40bf47cbb
Parents: 074fa2a
Author: clp207 <cl...@psu.edu>
Authored: Mon Feb 1 10:01:18 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
.../directory/fortress/core/model/PermissionAttribute.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/9d11f773/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
index 62c27d8..c374df0 100644
--- a/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
+++ b/src/main/java/org/apache/directory/fortress/core/model/PermissionAttribute.java
@@ -46,10 +46,16 @@ public class PermissionAttribute extends FortEntity implements Serializable {
private List<String> validValues;
private String defaultValue;
- public PermissionAttribute(){
+ public PermissionAttribute()
+ {
}
+ public PermissionAttribute(String attributeName)
+ {
+ this.attributeName = attributeName;
+ }
+
public String toFtPAString(){
String ftPA = attributeName + "?";
[22/43] directory-fortress-core git commit: fixed schema version issue
Posted by cp...@apache.org.
fixed schema version issue
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/4db89025
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/4db89025
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/4db89025
Branch: refs/heads/master
Commit: 4db89025d6b6abd14a7e206c857af3df74e9340c
Parents: 1918048
Author: clp207 <cl...@psu.edu>
Authored: Fri Mar 18 11:32:23 2016 -0400
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:23 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/4db89025/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index 2776787..7b6a5ed 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -287,7 +287,7 @@ attributetype ( 1.3.6.1.4.1.1.38088.1.32
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# A33: User Role Constraints, type STRING, MULTI VALUE
-attributetype ( 1.3.6.1.4.1.1.38088.1.32
+attributetype ( 1.3.6.1.4.1.1.38088.1.33
NAME 'ftPADefaultOperator'
DESC 'Fortress Permission Attribute Set Default Operator'
EQUALITY caseIgnoreMatch
[18/43] directory-fortress-core git commit: fixed issue in schema
Posted by cp...@apache.org.
fixed issue in schema
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/d5a5d5aa
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/d5a5d5aa
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/d5a5d5aa
Branch: refs/heads/master
Commit: d5a5d5aa43cef3851feeee0e9a5eb5bc9da29c71
Parents: da6c893
Author: clp207 <cl...@psu.edu>
Authored: Thu Jan 28 15:26:39 2016 -0500
Committer: clp207 <cl...@psu.edu>
Committed: Wed Mar 30 15:44:22 2016 -0400
----------------------------------------------------------------------
ldap/schema/fortress.schema | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/d5a5d5aa/ldap/schema/fortress.schema
----------------------------------------------------------------------
diff --git a/ldap/schema/fortress.schema b/ldap/schema/fortress.schema
index db06620..16b6152 100644
--- a/ldap/schema/fortress.schema
+++ b/ldap/schema/fortress.schema
@@ -339,7 +339,7 @@ objectclass ( 1.3.6.1.4.1.38088.2.3
ftRoles $
ftUsers $
ftType $
- ftPA
+ ftPASet
)
)
@@ -418,7 +418,7 @@ objectClass ( 1.3.6.1.4.1.38088.2.8
## OC3: Fortress Permission Attribute Set Structural Object Class
objectclass ( 1.3.6.1.4.1.38088.2.9
NAME 'ftAttributeSet'
- DESC 'Fortress Permission Operation Structural Object Class'
+ DESC 'Fortress Attribute Set Structural Object Class'
SUP organizationalrole
STRUCTURAL
MUST (