pnever 2003/10/18 09:30:29
Modified: src/webdav/server/org/apache/slide/webdav/method
AclMethod.java
src/conf/webapp Domain.xml
src/share/org/apache/slide/lock LockImpl.java
src/share/org/apache/slide/common Namespace.java
NamespaceConfig.java
src/share/org/apache/slide/security SecurityImpl.java
SecurityImplAllGrant.java
Log:
Preparing for ACL draft-12:
- using generic object NamespaceConfig.DEFAULT_ACTION
- removed creation of /tempaction
- added NamespaceConfig.getActionsPath()
Revision Changes Path
1.34 +4 -4
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AclMethod.java
Index: AclMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AclMethod.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- AclMethod.java 16 Oct 2003 10:01:15 -0000 1.33
+++ AclMethod.java 18 Oct 2003 16:30:29 -0000 1.34
@@ -342,7 +342,7 @@
ListIterator iter = privileges.listIterator();
Element userPriv = (Element) iter.next();
String value = userPriv.getName();
- addPermission (principal,
config.getDefaultAction().getUri() + "/" + value, negative, inheritable);
+ addPermission (principal,
config.getActionsPath()+"/"+value, negative, inheritable);
break;
default:
int statusCode = WebdavStatus.SC_INTERNAL_SERVER_ERROR;
1.42 +1 -1 jakarta-slide/src/conf/webapp/Domain.xml
Index: Domain.xml
===================================================================
RCS file: /home/cvs/jakarta-slide/src/conf/webapp/Domain.xml,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- Domain.xml 17 Oct 2003 16:47:26 -0000 1.41
+++ Domain.xml 18 Oct 2003 16:30:29 -0000 1.42
@@ -103,7 +103,6 @@
-->
<configuration>
<!-- Actions mapping -->
- <default-action>/actions</default-action>
<read-object>/actions/read</read-object>
<create-object>/actions/write</create-object>
<remove-object>/actions/write</remove-object>
@@ -127,6 +126,7 @@
<userspath>/users</userspath>
<guestpath>guest</guestpath>
<filespath>/files</filespath>
+ <actionspath>/actions</actionspath>
<parameter name="dav">true</parameter>
<parameter name="standalone">true</parameter>
<!-- Roles definition -->
1.34 +9 -5 jakarta-slide/src/share/org/apache/slide/lock/LockImpl.java
Index: LockImpl.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/lock/LockImpl.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- LockImpl.java 8 Sep 2003 15:46:40 -0000 1.33
+++ LockImpl.java 18 Oct 2003 16:30:29 -0000 1.34
@@ -451,12 +451,16 @@
throws ServiceAccessException, ObjectNotFoundException,
ObjectLockedException {
+ // no check for default action (server intitialization)
+ if (action == namespaceConfig.DEFAULT_ACTION) {
+ return;
+ }
+
if (Configuration.useIntegratedLocking()) {
if (isLocked(slideToken, subject, user, action, false)) {
throw new ObjectLockedException(subject.getUri());
}
}
-
}
1.51 +4 -12 jakarta-slide/src/share/org/apache/slide/common/Namespace.java
Index: Namespace.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/Namespace.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- Namespace.java 8 Oct 2002 13:12:35 -0000 1.50
+++ Namespace.java 18 Oct 2003 16:30:29 -0000 1.51
@@ -798,11 +798,6 @@
}
rootUri.getStore().grantPermission(rootUri, allAccess);
- // Create a dummy action
- Uri tempActionUri = getUri("/tempaction");
- ActionNode tempAction = new ActionNode("/tempaction");
- tempActionUri.getStore().createObject(tempActionUri, tempAction);
-
// end transaction for temp object creation
getTransactionManager().commit();
@@ -829,9 +824,6 @@
getTransactionManager().begin();
getLogger().log("Finish init namespace " + getName() + "
configuration",LOG_CHANNEL,Logger.INFO);
-
- // Then, destroy the temp action
- tempActionUri.getStore().removeObject(tempActionUri, tempAction);
// And remove the all permission from the root node
rootNode =
1.29 +72 -68
jakarta-slide/src/share/org/apache/slide/common/NamespaceConfig.java
Index: NamespaceConfig.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceConfig.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- NamespaceConfig.java 17 Oct 2003 16:47:26 -0000 1.28
+++ NamespaceConfig.java 18 Oct 2003 16:30:29 -0000 1.29
@@ -99,6 +99,10 @@
public static final String LINK_ROLE = LinkNode.class.getName();
+ /** generic action nodes */
+ public static final ActionNode DEFAULT_ACTION = new ActionNode();
+
+
// ----------------------------------------------------- Instance Variables
@@ -109,12 +113,6 @@
/**
- * Default action.
- */
- protected ActionNode defaultAction;
-
-
- /**
* Read object action.
*/
protected ActionNode readObjectAction;
@@ -242,6 +240,12 @@
/**
+ * File path.
+ */
+ protected String actionsPath = null;
+
+
+ /**
* Additional parameters.
*/
protected Hashtable parameters;
@@ -302,7 +306,7 @@
* @return ActionNode Default action
*/
public ActionNode getDefaultAction() {
- return defaultAction;
+ return DEFAULT_ACTION;
}
@@ -521,6 +525,16 @@
/**
+ * Actions path accessor.
+ *
+ * @return String Action path
+ */
+ public String getActionsPath() {
+ return actionsPath;
+ }
+
+
+ /**
* Get default properties for a given role.
*
* @return Enumeration of properties
@@ -613,11 +627,6 @@
name = namespace.getName();
- defaultAction = null;
- defaultAction = getConfiguredNode(namespace, config, "default-action");
- if (defaultAction == null)
- throw new InvalidNamespaceConfigurationException(namespace, "Default
action could not be set");
-
readObjectAction = getConfiguredNode(namespace, config, "read-object");
createObjectAction = getConfiguredNode(namespace, config, "create-object");
removeObjectAction = getConfiguredNode(namespace, config, "remove-object");
@@ -749,7 +758,7 @@
try {
result = getActionNode(namespace, config.getConfiguration(
nodeName).getValue());
} catch (ConfigurationException e) {
- result = defaultAction;
+ result = getDefaultAction();
}
return result;
}
@@ -774,6 +783,12 @@
}
try {
+ actionsPath = config.getConfiguration("actionspath").getValue();
+ } catch (ConfigurationException e) {
+ actionsPath = "";
+ }
+
+ try {
autoCreateUsers = Boolean.valueOf
(config.getConfiguration("auto-create-users").getValue())
.booleanValue();
@@ -849,29 +864,25 @@
name = namespace.getName();
try {
-
- Uri tempActionUri = namespace.getUri("/tempaction");
- defaultAction = (ActionNode) tempActionUri.getStore()
- .retrieveObject(tempActionUri);
- readObjectAction = defaultAction;
- createObjectAction = defaultAction;
- removeObjectAction = defaultAction;
- grantPermissionAction = defaultAction;
- revokePermissionAction = defaultAction;
- readPermissionsAction = defaultAction;
- lockObjectAction = defaultAction;
- killLockAction = defaultAction;
- readLocksAction = defaultAction;
- readRevisionMetadataAction = defaultAction;
- createRevisionMetadataAction = defaultAction;
- modifyRevisionMetadataAction = defaultAction;
- removeRevisionMetadataAction = defaultAction;
- readRevisionContentAction = defaultAction;
- createRevisionContentAction = defaultAction;
- modifyRevisionContentAction = defaultAction;
- removeRevisionContentAction = defaultAction;
- bindMemberAction = defaultAction;
- unbindMemberAction = defaultAction;
+ readObjectAction = getDefaultAction();
+ createObjectAction = getDefaultAction();
+ removeObjectAction = getDefaultAction();
+ grantPermissionAction = getDefaultAction();
+ revokePermissionAction = getDefaultAction();
+ readPermissionsAction = getDefaultAction();
+ lockObjectAction = getDefaultAction();
+ killLockAction = getDefaultAction();
+ readLocksAction = getDefaultAction();
+ readRevisionMetadataAction = getDefaultAction();
+ createRevisionMetadataAction = getDefaultAction();
+ modifyRevisionMetadataAction = getDefaultAction();
+ removeRevisionMetadataAction = getDefaultAction();
+ readRevisionContentAction = getDefaultAction();
+ createRevisionContentAction = getDefaultAction();
+ modifyRevisionContentAction = getDefaultAction();
+ removeRevisionContentAction = getDefaultAction();
+ bindMemberAction = getDefaultAction();
+ unbindMemberAction = getDefaultAction();
usersPath = "";
filesPath = "";
@@ -899,28 +910,25 @@
name = "slide";
try {
-// Uri tempActionUri = namespace.getUri("/tempaction");
-// defaultAction = (ActionNode) tempActionUri.getStore()
-// .retrieveObject(tempActionUri);
- readObjectAction = defaultAction;
- createObjectAction = defaultAction;
- removeObjectAction = defaultAction;
- grantPermissionAction = defaultAction;
- revokePermissionAction = defaultAction;
- readPermissionsAction = defaultAction;
- lockObjectAction = defaultAction;
- killLockAction = defaultAction;
- readLocksAction = defaultAction;
- readRevisionMetadataAction = defaultAction;
- createRevisionMetadataAction = defaultAction;
- modifyRevisionMetadataAction = defaultAction;
- removeRevisionMetadataAction = defaultAction;
- readRevisionContentAction = defaultAction;
- createRevisionContentAction = defaultAction;
- modifyRevisionContentAction = defaultAction;
- removeRevisionContentAction = defaultAction;
- bindMemberAction = defaultAction;
- unbindMemberAction = defaultAction;
+ readObjectAction = getDefaultAction();
+ createObjectAction = getDefaultAction();
+ removeObjectAction = getDefaultAction();
+ grantPermissionAction = getDefaultAction();
+ revokePermissionAction = getDefaultAction();
+ readPermissionsAction = getDefaultAction();
+ lockObjectAction = getDefaultAction();
+ killLockAction = getDefaultAction();
+ readLocksAction = getDefaultAction();
+ readRevisionMetadataAction = getDefaultAction();
+ createRevisionMetadataAction = getDefaultAction();
+ modifyRevisionMetadataAction = getDefaultAction();
+ removeRevisionMetadataAction = getDefaultAction();
+ readRevisionContentAction = getDefaultAction();
+ createRevisionContentAction = getDefaultAction();
+ modifyRevisionContentAction = getDefaultAction();
+ removeRevisionContentAction = getDefaultAction();
+ bindMemberAction = getDefaultAction();
+ unbindMemberAction = getDefaultAction();
usersPath = "";
filesPath = "";
@@ -1001,13 +1009,9 @@
Uri actionUri = namespace.getUri(actionPath);
result = (ActionNode) actionUri.getStore()
.retrieveObject(actionUri);
- } else {
- if (defaultAction != null) {
- result = defaultAction;
- } else {
- throw new InvalidNamespaceConfigurationException
- (namespace, "Needed default action is not defined");
}
+ else {
+ result = getDefaultAction();
}
return result;
1.38 +9 -4
jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java
Index: SecurityImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- SecurityImpl.java 13 Oct 2003 17:07:31 -0000 1.37
+++ SecurityImpl.java 18 Oct 2003 16:30:29 -0000 1.38
@@ -489,6 +489,11 @@
ActionNode action)
throws ServiceAccessException, ObjectNotFoundException {
+ // no check for default action (server intitialization)
+ if (action == namespaceConfig.DEFAULT_ACTION) {
+ return true;
+ }
+
boolean granted = false;
boolean denied = false;
boolean rootObjectReached = false;
1.3 +9 -4
jakarta-slide/src/share/org/apache/slide/security/SecurityImplAllGrant.java
Index: SecurityImplAllGrant.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImplAllGrant.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SecurityImplAllGrant.java 5 Aug 2003 08:51:00 -0000 1.2
+++ SecurityImplAllGrant.java 18 Oct 2003 16:30:29 -0000 1.3
@@ -120,6 +120,11 @@
public boolean hasPermission(ObjectNode object, SubjectNode subject,
ActionNode action)
throws ServiceAccessException, ObjectNotFoundException {
+
+ // no check for default action (server intitialization)
+ if (action == namespaceConfig.DEFAULT_ACTION) {
+ return true;
+ }
boolean granted = false;
boolean denied = false;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]