You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/09/13 04:57:10 UTC
svn commit: r280473 - in
/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl: ./
userclass/
Author: trustin
Date: Mon Sep 12 19:57:02 2005
New Revision: 280473
URL: http://svn.apache.org/viewcvs?rev=280473&view=rev
Log:
Implemented all X.500 ACI data model.
Added:
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/GrantAndDenial.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemPermission.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ProtectedItem.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserClass.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java (with props)
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserPermission.java (with props)
Removed:
directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/userclass/
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,67 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.io.Serializable;
+
+public abstract class ACIItem implements Serializable
+{
+ private String identificationTag;
+ /* 0 ~ 255 */
+ private int precedence = 0;
+ private AuthenticationLevel authenticationLevel;
+
+ protected ACIItem(
+ String identificationTag,
+ int precedence,
+ AuthenticationLevel authenticationLevel )
+ {
+ if( identificationTag == null )
+ {
+ throw new NullPointerException( "identificationTag" );
+ }
+ if( precedence < 0 || precedence > 255 )
+ {
+ throw new IllegalArgumentException( "precedence: " + precedence );
+ }
+ if( authenticationLevel == null )
+ {
+ throw new NullPointerException( "authenticationLevel" );
+ }
+
+ this.identificationTag = identificationTag;
+ this.precedence = precedence;
+ this.authenticationLevel = authenticationLevel;
+ }
+
+ public String getIdentificationTag()
+ {
+ return identificationTag;
+ }
+
+ public int getPrecedence()
+ {
+ return precedence;
+ }
+
+ public AuthenticationLevel getAuthenticationLevel()
+ {
+ return authenticationLevel;
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/GrantAndDenial.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/GrantAndDenial.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/GrantAndDenial.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/GrantAndDenial.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,87 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+public class GrantAndDenial
+{
+ // Permissions that may be used in conjunction with any component of
+ // <tt>ProtectedItem</tt>s.
+ public static final GrantAndDenial GRANT_ADD = new GrantAndDenial( 0, "grantAdd", true );
+ public static final GrantAndDenial DENY_ADD = new GrantAndDenial( 1, "denyAdd", false );
+ public static final GrantAndDenial GRANT_DISCLOSE_ON_ERROR = new GrantAndDenial( 2, "grantDiscloseOnError", true );
+ public static final GrantAndDenial DENY_DISCLOSE_ON_ERROR = new GrantAndDenial( 3, "denyDiscloseOnError", false );
+ public static final GrantAndDenial GRANT_READ = new GrantAndDenial( 4, "grantRead", true );
+ public static final GrantAndDenial DENY_READ = new GrantAndDenial( 5, "denyRead", false );
+ public static final GrantAndDenial GRANT_REMOVE = new GrantAndDenial( 6, "grantRemove", true );
+ public static final GrantAndDenial DENY_REMOVE = new GrantAndDenial( 7, "denyRemove", false );
+
+ // Permissions that may be used only in conjunction with the entry componentï¾
+ public static final GrantAndDenial GRANT_BROWSE = new GrantAndDenial( 8, "grantBrowse", true );
+ public static final GrantAndDenial DENY_BROWSE = new GrantAndDenial( 9, "denyBrowse", false );
+ public static final GrantAndDenial GRANT_EXPORT = new GrantAndDenial( 10, "grantExport", true );
+ public static final GrantAndDenial DENY_EXPORT = new GrantAndDenial( 11, "denyExport", false );
+ public static final GrantAndDenial GRANT_IMPORT = new GrantAndDenial( 12, "grantImport", true );
+ public static final GrantAndDenial DENY_IMPORT = new GrantAndDenial( 13, "denyImport", false );
+ public static final GrantAndDenial GRANT_MODIFY = new GrantAndDenial( 14, "grantModify", true );
+ public static final GrantAndDenial DENY_MODIFY = new GrantAndDenial( 15, "denyModify", false );
+ public static final GrantAndDenial GRANT_RENAME = new GrantAndDenial( 16, "grantRename", true );
+ public static final GrantAndDenial DENY_RENAME = new GrantAndDenial( 17, "denyRename", false );
+ public static final GrantAndDenial GRANT_RETURN_DN = new GrantAndDenial( 18, "grantReturnDN", true );
+ public static final GrantAndDenial DENY_RETURN_DN = new GrantAndDenial( 19, "denyReturnDN", false );
+
+ // Permissions that may be used in conjunction with any component,
+ // except entry, of <tt>ProtectedItem</tt>sï¾
+ public static final GrantAndDenial GRANT_COMPARE = new GrantAndDenial( 20, "grantCompare", true );
+ public static final GrantAndDenial DENY_COMPARE = new GrantAndDenial( 21, "denyCompare", false );
+ public static final GrantAndDenial GRANT_FILTER_MATCH = new GrantAndDenial( 22, "grantFilterMatch", true );
+ public static final GrantAndDenial DENY_FILTER_MATCH = new GrantAndDenial( 23, "denyFilterMatch", false );
+ public static final GrantAndDenial GRANT_INVOKE = new GrantAndDenial( 24, "grantInvoke", true );
+ public static final GrantAndDenial DENY_INVOKE = new GrantAndDenial( 25, "denyInvoke", false );
+
+ private final int code;
+ private final String description;
+ private final boolean grant;
+
+ private GrantAndDenial( int code, String description, boolean grant )
+ {
+ this.code = code;
+ this.description = description;
+ this.grant = grant;
+ }
+
+ public int getCode()
+ {
+ return code;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public boolean isGrant()
+ {
+ return grant;
+ }
+
+ public String toString()
+ {
+ return description + '[' + code + ']';
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/GrantAndDenial.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,78 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class ItemFirstACIItem extends ACIItem
+{
+ private static final long serialVersionUID = -8199453391060356463L;
+
+ private final Set protectedItems = new HashSet();
+ private final Set itemPermissions = new HashSet();
+
+ public ItemFirstACIItem(
+ String identificationTag,
+ int precedence,
+ AuthenticationLevel authenticationLevel )
+ {
+ super( identificationTag, precedence, authenticationLevel );
+ }
+
+ public boolean add( ProtectedItem protectedItem )
+ {
+ return protectedItems.add( protectedItem );
+ }
+
+ public boolean remove( ProtectedItem protectedItem )
+ {
+ return protectedItems.remove( protectedItem );
+ }
+
+ public Set getProtectedItems()
+ {
+ return new HashSet( protectedItems );
+ }
+
+ public boolean add( ItemPermission itemPermission )
+ {
+ return itemPermissions.add( itemPermission );
+ }
+
+ public boolean remove( ItemPermission itemPermission )
+ {
+ return itemPermissions.remove( itemPermission );
+ }
+
+ public Set getItemPermissions()
+ {
+ return new HashSet( itemPermissions );
+ }
+
+ public String toString()
+ {
+ return "itemFirstACIItem: " +
+ "identificationTag=" + getIdentificationTag() + ", " +
+ "precedence=" + getPrecedence() + ", " +
+ "authenticationLevel=" + getAuthenticationLevel() + ", " +
+ "protectedItems=" + protectedItems + ", " +
+ "itemPermissions=" + itemPermissions;
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemPermission.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemPermission.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemPermission.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemPermission.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,55 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class ItemPermission extends Permission
+{
+ private static final long serialVersionUID = 3940100745409337694L;
+
+ private final Set userClasses = new HashSet();
+
+ public ItemPermission()
+ {
+ }
+
+ public boolean add( UserClass userClass )
+ {
+ return userClasses.add( userClass );
+ }
+
+ public boolean remove( UserClass userClass )
+ {
+ return userClasses.remove( userClass );
+ }
+
+ public Set getUserClasses()
+ {
+ return new HashSet( userClasses );
+ }
+
+ public String toString()
+ {
+ return "itemPermission: precedence=" + getPrecedence() + ", " +
+ "userClasses=" + userClasses + ", " +
+ "grantsAndDenials=" + getGrantsAndDenials();
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemPermission.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,62 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+public abstract class Permission implements Serializable
+{
+ private int precedence = -1;
+ private Set grantsAndDenials = new HashSet();
+
+ protected Permission()
+ {
+ }
+
+ public int getPrecedence()
+ {
+ return precedence;
+ }
+
+ public void setPrecedence( int precedence )
+ {
+ if( precedence < -1 || precedence > 255 )
+ {
+ throw new IllegalArgumentException( "precedence: " + precedence );
+ }
+ this.precedence = precedence;
+ }
+
+ public boolean add( GrantAndDenial gad )
+ {
+ return grantsAndDenials.add( gad );
+ }
+
+ public boolean remove( GrantAndDenial gad )
+ {
+ return grantsAndDenials.remove( gad );
+ }
+
+ public Set getGrantsAndDenials()
+ {
+ return new HashSet( grantsAndDenials );
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ProtectedItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ProtectedItem.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ProtectedItem.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ProtectedItem.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,375 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.io.Serializable;
+
+import org.apache.ldap.common.filter.ExprNode;
+
+public abstract class ProtectedItem implements Serializable
+{
+ public static final Entry ENTRY = new Entry();
+ public static final AllUserAttributeTypes ALL_USER_ATTRIBUTE_TYPES = new AllUserAttributeTypes();
+ public static final AllUserAttributeTypesAndValues ALL_USER_ATTRIBUTE_TYPES_AND_VALUES = new AllUserAttributeTypesAndValues();
+
+
+ protected ProtectedItem()
+ {
+ }
+
+ public static class Entry extends ProtectedItem
+ {
+ private static final long serialVersionUID = -6971482229815999874L;
+
+ private Entry()
+ {
+ }
+
+ public String toString()
+ {
+ return "entry";
+ }
+ }
+
+ public static class AllUserAttributeTypes extends ProtectedItem
+ {
+ private static final long serialVersionUID = 3728652941148931359L;
+
+ private AllUserAttributeTypes()
+ {
+ }
+
+ public String toString()
+ {
+ return "allUserAttributeTypes";
+ }
+ }
+
+ public static class AllUserAttributeTypesAndValues extends ProtectedItem
+ {
+ private static final long serialVersionUID = 7250988885983604442L;
+
+ private AllUserAttributeTypesAndValues()
+ {
+ }
+
+ public String toString()
+ {
+ return "allUserAttributeTypesAndValues";
+ }
+ }
+
+ private abstract static class AttributeTypeProtectedItem extends ProtectedItem
+ {
+ private final String type;
+
+ protected AttributeTypeProtectedItem( String type )
+ {
+ if( type == null )
+ {
+ throw new NullPointerException( "type" );
+ }
+
+ this.type = type;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( this == o )
+ {
+ return true;
+ }
+
+ if( o == null )
+ {
+ return false;
+ }
+
+ if( getClass().isAssignableFrom( o.getClass() ) )
+ {
+ AttributeTypeProtectedItem that = ( AttributeTypeProtectedItem ) o;
+ return this.type.equalsIgnoreCase( that.type );
+ }
+
+ return false;
+ }
+ }
+
+ public static class AttributeType extends AttributeTypeProtectedItem
+ {
+ private static final long serialVersionUID = -9039274739078220203L;
+
+ public AttributeType( String type )
+ {
+ super( type );
+ }
+
+ public String toString()
+ {
+ return "attributType: " + getType();
+ }
+ }
+
+ public static class AllAttributeValues extends AttributeTypeProtectedItem
+ {
+ private static final long serialVersionUID = -9039274739078220203L;
+
+ public AllAttributeValues( String type )
+ {
+ super( type );
+ }
+
+ public String toString()
+ {
+ return "allAttributeValues: " + getType();
+ }
+ }
+
+ public static class SelfValue extends AttributeTypeProtectedItem
+ {
+ private static final long serialVersionUID = -7788463918070206609L;
+
+ public SelfValue( String type )
+ {
+ super( type );
+ }
+
+ public String toString()
+ {
+ return "selfValue: " + getType();
+ }
+ }
+
+ public static class AttributeValue extends AttributeTypeProtectedItem
+ {
+ private static final long serialVersionUID = -258318397837951363L;
+
+ private final Object value;
+
+ public AttributeValue( String type, Object value )
+ {
+ super( type );
+ if( value == null )
+ {
+ throw new NullPointerException( "value" );
+ }
+
+ this.value = value;
+ }
+
+ public Object getValue()
+ {
+ return value;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( !super.equals( o ) )
+ {
+ return false;
+ }
+
+ if( o instanceof AttributeValue )
+ {
+ AttributeValue that = ( AttributeValue ) o;
+ return this.value.equals( that.value );
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ return "attributeValue: " + getType() + "=" + value.toString();
+ }
+ }
+
+ public static class MaxValueCount extends AttributeTypeProtectedItem
+ {
+ private static final long serialVersionUID = 5261651541488944572L;
+
+ private final int maxCount;
+
+ public MaxValueCount( String type, int maxCount )
+ {
+ super( type );
+ this.maxCount = maxCount;
+ }
+
+ public int getMaxCount()
+ {
+ return maxCount;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( !super.equals( o ) )
+ {
+ return false;
+ }
+
+ if( o instanceof MaxValueCount )
+ {
+ MaxValueCount that = ( MaxValueCount ) o;
+ return this.maxCount == that.maxCount;
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ return "maxValueCount: " + getType() + ", " + maxCount;
+ }
+ }
+
+ public static class RangeOfValues extends ProtectedItem
+ {
+ private static final long serialVersionUID = -8553151906617285325L;
+
+ private final ExprNode filter;
+
+ public RangeOfValues( ExprNode filter )
+ {
+ if( filter == null )
+ {
+ throw new NullPointerException( "filter" );
+ }
+
+ this.filter = filter;
+ }
+
+ public ExprNode getFilter()
+ {
+ return filter;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( this == o )
+ {
+ return true;
+ }
+
+ if( o instanceof RangeOfValues )
+ {
+ RangeOfValues that = ( RangeOfValues ) o;
+ return this.filter.equals( that.filter );
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ StringBuffer buf = new StringBuffer();
+ buf.append( "rangeOfValues: " );
+ filter.printToBuffer( buf );
+ return buf.toString();
+ }
+ }
+
+ public static class MaxImmSub extends ProtectedItem
+ {
+ private static final long serialVersionUID = -8553151906617285325L;
+
+ private final int value;
+
+ public MaxImmSub( int value )
+ {
+ this.value = value;
+ }
+
+ public int getValue()
+ {
+ return value;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( this == o )
+ {
+ return true;
+ }
+
+ if( o instanceof MaxImmSub )
+ {
+ MaxImmSub that = ( MaxImmSub ) o;
+ return this.value == that.value;
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ return "maxImmSub: " + value;
+ }
+ }
+
+ public static class RestrictedBy extends AttributeTypeProtectedItem
+ {
+ private static final long serialVersionUID = -8157637446588058799L;
+
+ private final String valuesIn;
+
+ public RestrictedBy( String type, String valuesIn )
+ {
+ super( type );
+ if( valuesIn == null )
+ {
+ throw new NullPointerException( "valuesIn" );
+ }
+ this.valuesIn = valuesIn;
+ }
+
+ public String getValuesIn()
+ {
+ return valuesIn;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( !super.equals( o ) )
+ {
+ return false;
+ }
+
+ if( o instanceof RestrictedBy )
+ {
+ RestrictedBy that = ( RestrictedBy ) o;
+ return this.valuesIn.equalsIgnoreCase( that.valuesIn );
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ return "restrictedBy: " + getType() + ", " + valuesIn;
+ }
+ }
+
+ // TODO: Contexts and Classes
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ProtectedItem.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserClass.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserClass.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserClass.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserClass.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,175 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.io.Serializable;
+
+import org.apache.ldap.common.name.LdapName;
+import org.apache.ldap.common.subtree.SubtreeSpecification;
+
+public abstract class UserClass implements Serializable
+{
+ public static final AllUsers ALL_USERS = new AllUsers();
+ public static final ThisEntry THIS_ENTRY = new ThisEntry();
+
+ protected UserClass()
+ {
+ }
+
+ public static class AllUsers extends UserClass
+ {
+ private static final long serialVersionUID = 8967984720792510292L;
+
+ private AllUsers()
+ {
+ }
+
+ public String toString()
+ {
+ return "allUsers";
+ }
+ }
+
+ public static class ThisEntry extends UserClass
+ {
+ private static final long serialVersionUID = -8189325270233754470L;
+
+ private ThisEntry()
+ {
+ }
+
+ public String toString()
+ {
+ return "thisEntry";
+ }
+ }
+
+ private static abstract class NamedUserClass extends UserClass
+ {
+ protected final LdapName name;
+
+ protected NamedUserClass( LdapName name )
+ {
+ this.name = ( LdapName ) name.clone();
+ }
+
+ public LdapName getName()
+ {
+ return ( LdapName ) name.clone();
+ }
+
+ public boolean equals( Object o )
+ {
+ if( this == o )
+ {
+ return true;
+ }
+
+ if( o == null )
+ {
+ return false;
+ }
+
+ if( getClass().isAssignableFrom( o.getClass() ) )
+ {
+ Name that = ( Name ) o;
+ return this.name.equals( that.name );
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ return name.toString();
+ }
+ }
+
+ public static class Name extends NamedUserClass
+ {
+ private static final long serialVersionUID = -4168412030168359882L;
+
+ public Name( LdapName username )
+ {
+ super( username );
+ }
+
+ public String toString()
+ {
+ return "name: " + super.toString();
+ }
+ }
+
+ public static class UserGroup extends NamedUserClass
+ {
+ private static final long serialVersionUID = 8887107815072965807L;
+
+ public UserGroup( LdapName groupName )
+ {
+ super( groupName );
+ }
+
+ public String toString()
+ {
+ return "userGroup: " + super.toString();
+ }
+ }
+
+ public static class Subtree extends UserClass
+ {
+ private static final long serialVersionUID = 3949337699049701332L;
+
+ protected final SubtreeSpecification subtreeSpecification;
+
+ protected Subtree( SubtreeSpecification subtreeSpec )
+ {
+ if( subtreeSpec == null )
+ {
+ throw new NullPointerException( "subtreeSpec" );
+ }
+ this.subtreeSpecification = subtreeSpec;
+ }
+
+ public SubtreeSpecification getSubtreeSpecification()
+ {
+ return subtreeSpecification;
+ }
+
+ public boolean equals( Object o )
+ {
+ if( this == o )
+ {
+ return true;
+ }
+
+ if( o instanceof Subtree )
+ {
+ Subtree that = ( Subtree ) o;
+ return this.subtreeSpecification.equals( that.subtreeSpecification );
+ }
+
+ return false;
+ }
+
+ public String toString()
+ {
+ return "subtree: " + subtreeSpecification;
+ }
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserClass.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,78 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class UserFirstACIItem extends ACIItem
+{
+ private static final long serialVersionUID = 5587483838404246148L;
+
+ private final Set userClasses = new HashSet();
+ private final Set userPermissions = new HashSet();
+
+ public UserFirstACIItem(
+ String identificationTag,
+ int precedence,
+ AuthenticationLevel authenticationLevel )
+ {
+ super( identificationTag, precedence, authenticationLevel );
+ }
+
+ public boolean add( UserClass userClass )
+ {
+ return userClasses.add( userClass );
+ }
+
+ public boolean remove( UserClass userClass )
+ {
+ return userClasses.remove( userClass );
+ }
+
+ public Set getUserClass()
+ {
+ return new HashSet( userClasses );
+ }
+
+ public boolean add( UserPermission userPermission )
+ {
+ return userPermissions.add( userPermission );
+ }
+
+ public boolean remove( UserPermission userPermission )
+ {
+ return userPermissions.remove( userPermission );
+ }
+
+ public Set getUserPermission()
+ {
+ return new HashSet( userPermissions );
+ }
+
+ public String toString()
+ {
+ return "userFirstACIItem: " +
+ "identificationTag=" + getIdentificationTag() + ", " +
+ "precedence=" + getPrecedence() + ", " +
+ "authenticationLevel=" + getAuthenticationLevel() + ", " +
+ "userClasses=" + userClasses + ", " +
+ "userPermissions=" + userPermissions;
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Added: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserPermission.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserPermission.java?rev=280473&view=auto
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserPermission.java (added)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserPermission.java Mon Sep 12 19:57:02 2005
@@ -0,0 +1,55 @@
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.ldap.common.acl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class UserPermission extends Permission
+{
+ private static final long serialVersionUID = 3940100745409337694L;
+
+ private final Set protectedItems = new HashSet();
+
+ public UserPermission()
+ {
+ }
+
+ public boolean add( ProtectedItem protectedItem )
+ {
+ return protectedItems.add( protectedItem );
+ }
+
+ public boolean remove( ProtectedItem protectedItem )
+ {
+ return protectedItems.remove( protectedItem );
+ }
+
+ public Set getProtectedItems()
+ {
+ return new HashSet( protectedItems );
+ }
+
+ public String toString()
+ {
+ return "itemPermission: precedence=" + getPrecedence() + ", " +
+ "protectedItems=" + protectedItems + ", " +
+ "grantsAndDenials=" + getGrantsAndDenials();
+ }
+}
Propchange: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserPermission.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision