juergen 01/07/12 05:13:49
Modified: src/webdav/server/org/apache/slide/webdav/method
GetMethod.java OptionsMethod.java
PropFindMethod.java
src/webdav/server/org/apache/slide/webdav WebdavServlet.java
Log:
if security is switched off in slide.properties then no acl specific data is created
at e.g. propFind. This will solve the ugly directory dupplication at WebDrive. They
are working to get a version working with ACL.
Revision Changes Path
1.11 +7 -5
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/GetMethod.java
Index: GetMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/GetMethod.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- GetMethod.java 2001/06/13 04:34:09 1.10
+++ GetMethod.java 2001/07/12 12:13:21 1.11
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/GetMethod.java,v
1.10 2001/06/13 04:34:09 remm Exp $
- * $Revision: 1.10 $
- * $Date: 2001/06/13 04:34:09 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/GetMethod.java,v
1.11 2001/07/12 12:13:21 juergen Exp $
+ * $Revision: 1.11 $
+ * $Date: 2001/07/12 12:13:21 $
*
* ====================================================================
*
@@ -418,7 +418,8 @@
}
// Displaying ACL info
- displayPermissions(permissionsList, writer, false);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity() )
+ displayPermissions(permissionsList, writer, false);
// Displaying lock info
displayLocks(locksList, writer, false);
@@ -531,7 +532,8 @@
writer.print("</tr>\r\n");
// Displaying ACL info
- displayPermissions(permissionsList, writer, shade);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity() )
+ displayPermissions(permissionsList, writer, shade);
// Displaying lock info
displayLocks(locksList, writer, shade);
1.6 +29 -25
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java
Index: OptionsMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- OptionsMethod.java 2001/03/23 05:08:30 1.5
+++ OptionsMethod.java 2001/07/12 12:13:24 1.6
@@ -1,13 +1,13 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java,v
1.5 2001/03/23 05:08:30 remm Exp $
- * $Revision: 1.5 $
- * $Date: 2001/03/23 05:08:30 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java,v
1.6 2001/07/12 12:13:24 juergen Exp $
+ * $Revision: 1.6 $
+ * $Date: 2001/07/12 12:13:24 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -15,7 +15,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -23,15 +23,15 @@
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
+ * any, must include the following acknowlegement:
+ * "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
+ * from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
@@ -59,7 +59,7 @@
*
* [Additional notices, if required by prior licensing conditions]
*
- */
+ */
package org.apache.slide.webdav.method;
@@ -79,7 +79,7 @@
/**
* OPTIONS Method.
- *
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
*/
public class OptionsMethod extends WebdavMethod {
@@ -88,40 +88,44 @@
// ----------------------------------------------------------- Constructors
- public OptionsMethod(GenericServlet servlet, NamespaceAccessToken token,
+ public OptionsMethod(GenericServlet servlet, NamespaceAccessToken token,
HttpServletRequest req, HttpServletResponse resp) {
- super(servlet, token, req, resp);
+ super(servlet, token, req, resp);
}
- protected void parseRequest()
- throws WebdavException {
+ protected void parseRequest()
+ throws WebdavException {
}
- protected void executeRequest()
- throws WebdavException {
- resp.addHeader("DAV", "1, 2, slide, access-control");
+ protected void executeRequest()
+ throws WebdavException {
- String resourceUri = requestUri;
- if (resourceUri == null) {
- resourceUri = "/";
- }
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity() )
+ resp.addHeader("DAV", "1, 2, slide, access-control");
+ else
+ resp.addHeader("DAV", "1, 2, slide");
+
+ String resourceUri = requestUri;
+ if (resourceUri == null) {
+ resourceUri = "/";
+ }
String methodsAllowed = null;
try {
- NodeRevisionDescriptors revisionDescriptors =
+ NodeRevisionDescriptors revisionDescriptors =
content.retrieve(slideToken, resourceUri);
- NodeRevisionDescriptor revisionDescriptor =
+ NodeRevisionDescriptor revisionDescriptor =
content.retrieve(slideToken, revisionDescriptors);
boolean isCollection = isCollection(revisionDescriptor);
- methodsAllowed = "OPTIONS, GET, HEAD, POST, DELETE, TRACE, "
+ methodsAllowed = "OPTIONS, GET, HEAD, POST, DELETE, TRACE, "
+ "PROPFIND, PROPPATCH, COPY, MOVE, LOCK, UNLOCK";
if (!isCollection) {
methodsAllowed = methodsAllowed + ", PUT";
}
} catch (SlideException e) {
if (resourceUri.equals("/")) {
- methodsAllowed = "OPTIONS, GET, HEAD, POST, DELETE, TRACE, "
+ methodsAllowed = "OPTIONS, GET, HEAD, POST, DELETE, TRACE, "
+ "PROPFIND, PROPPATCH, COPY, MOVE, LOCK, UNLOCK";
} else {
methodsAllowed = "OPTIONS, MKCOL, PUT, LOCK";
1.27 +63 -55
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java
Index: PropFindMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- PropFindMethod.java 2001/07/11 21:07:52 1.26
+++ PropFindMethod.java 2001/07/12 12:13:27 1.27
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
1.26 2001/07/11 21:07:52 dirkv Exp $
- * $Revision: 1.26 $
- * $Date: 2001/07/11 21:07:52 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
1.27 2001/07/12 12:13:27 juergen Exp $
+ * $Revision: 1.27 $
+ * $Date: 2001/07/12 12:13:27 $
*
* ====================================================================
*
@@ -663,11 +663,13 @@
XMLPrinter.CLOSING);
// WebDAV ACL
- showSupportedPrivilegeSet(generatedXML);
- showCurrentUserPrivilegeSet(object, generatedXML);
- showAcl(object, generatedXML);
- showAclSemantics(generatedXML);
- showPrincipalCollectionSet(generatedXML);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity() ) {
+ showSupportedPrivilegeSet(generatedXML);
+ showCurrentUserPrivilegeSet(object, generatedXML);
+ showAcl(object, generatedXML);
+ showAclSemantics(generatedXML);
+ showPrincipalCollectionSet(generatedXML);
+ }
// Other properties
Enumeration propertyList =
@@ -727,18 +729,19 @@
XMLPrinter.NO_CONTENT);
// WebDAV ACL
-
- generatedXML.writeElement(null, "owner", XMLPrinter.NO_CONTENT);
- generatedXML.writeElement(null, "supported-privilege-set",
- XMLPrinter.NO_CONTENT);
- generatedXML.writeElement(null, "current-user-privilege-set",
- XMLPrinter.NO_CONTENT);
- generatedXML.writeElement(null, "acl",
- XMLPrinter.NO_CONTENT);
- generatedXML.writeElement(null, ACL_SEMANTICS,
- XMLPrinter.NO_CONTENT);
- generatedXML.writeElement(null, PRINCIPAL_COLLECTION_SET,
- XMLPrinter.NO_CONTENT);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity() ) {
+ generatedXML.writeElement(null, "owner", XMLPrinter.NO_CONTENT);
+ generatedXML.writeElement(null, "supported-privilege-set",
+ XMLPrinter.NO_CONTENT);
+ generatedXML.writeElement(null, "current-user-privilege-set",
+ XMLPrinter.NO_CONTENT);
+ generatedXML.writeElement(null, "acl",
+ XMLPrinter.NO_CONTENT);
+ generatedXML.writeElement(null, ACL_SEMANTICS,
+ XMLPrinter.NO_CONTENT);
+ generatedXML.writeElement(null, PRINCIPAL_COLLECTION_SET,
+ XMLPrinter.NO_CONTENT);
+ }
// Then, add this resource's custom properties
propertyList = revisionDescriptor.enumerateProperties();
@@ -805,23 +808,28 @@
(propertyNamespace.equals
(NodeProperty.DEFAULT_NAMESPACE))) {
// WebDAV ACL
- showSupportedPrivilegeSet(generatedXML);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity()
)
+ showSupportedPrivilegeSet(generatedXML);
} else if ((propertyName.equals(CURRENT_USER_PRIVILEGE_SET)) &&
(propertyNamespace.equals
(NodeProperty.DEFAULT_NAMESPACE))) {
- showCurrentUserPrivilegeSet(object, generatedXML);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity()
)
+ showCurrentUserPrivilegeSet(object, generatedXML);
} else if ((propertyName.equals("acl")) &&
(propertyNamespace.equals
(NodeProperty.DEFAULT_NAMESPACE))) {
- showAcl(object, generatedXML);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity()
)
+ showAcl(object, generatedXML);
} else if ((propertyName.equals(ACL_SEMANTICS)) &&
(propertyNamespace.equals
(NodeProperty.DEFAULT_NAMESPACE))) {
- showAclSemantics(generatedXML);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity()
)
+ showAclSemantics(generatedXML);
} else if ((propertyName.equals(PRINCIPAL_COLLECTION_SET)) &&
(propertyNamespace.equals
(NodeProperty.DEFAULT_NAMESPACE))) {
- showPrincipalCollectionSet(generatedXML);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity()
)
+ showPrincipalCollectionSet(generatedXML);
} else {
// Search in the custom properties
@@ -1259,17 +1267,17 @@
String removeObjectUri = config.getRemoveObjectAction().getUri();
String lockObjectUri = config.getLockObjectAction().getUri();
String readLocksUri = config.getReadLocksAction().getUri();
- String createRevisionMetadataUri =
+ String createRevisionMetadataUri =
config.getCreateRevisionMetadataAction().getUri();
- String modifyRevisionMetadataUri =
+ String modifyRevisionMetadataUri =
config.getModifyRevisionMetadataAction().getUri();
- String removeRevisionMetadataUri =
+ String removeRevisionMetadataUri =
config.getRemoveRevisionMetadataAction().getUri();
- String createRevisionContentUri =
+ String createRevisionContentUri =
config.getCreateRevisionContentAction().getUri();
- String modifyRevisionContentUri =
+ String modifyRevisionContentUri =
config.getModifyRevisionContentAction().getUri();
- String removeRevisionContentUri =
+ String removeRevisionContentUri =
config.getRemoveRevisionContentAction().getUri();
// read-acl
@@ -1277,7 +1285,7 @@
// write-acl
String grantPermissionUri = config.getGrantPermissionAction().getUri();
- String revokePermissionUri =
+ String revokePermissionUri =
config.getRevokePermissionAction().getUri();
ObjectNode current = object;
@@ -1308,18 +1316,18 @@
// read
boolean isReadObject = readObjectUri.startsWith(action);
- boolean isReadRevisionMetadata =
+ boolean isReadRevisionMetadata =
readRevisionMetadataUri.startsWith(action);
- boolean isReadRevisionContent =
+ boolean isReadRevisionContent =
readRevisionContentUri.startsWith(action);
boolean isRead = isReadObject && isReadRevisionMetadata
&& isReadRevisionContent;
// write
- boolean isCreateObject =
+ boolean isCreateObject =
createObjectUri.startsWith(action);
- boolean isRemoveObject =
+ boolean isRemoveObject =
removeObjectUri.startsWith(action);
boolean isLockObject = lockObjectUri.startsWith(action);
boolean isReadLocks = readLocksUri.startsWith(action);
@@ -1344,18 +1352,18 @@
&& isRemoveRevisionContent;
//read-acl
- boolean isReadPermissions =
+ boolean isReadPermissions =
readPermissionsUri.startsWith(action);
boolean isReadAcl = isReadPermissions;
// write-acl
- boolean isGrantPermission =
+ boolean isGrantPermission =
grantPermissionUri.startsWith(action);
boolean isRevokePermission =
revokePermissionUri.startsWith(action);
- boolean isWriteAcl =
+ boolean isWriteAcl =
isGrantPermission && isRevokePermission;
boolean isAll = isRead && isWrite && isReadAcl
@@ -1366,10 +1374,10 @@
writePrincipal(generatedXML, principal);
if (permission.isNegative()) {
- generatedXML.writeElement(null, DENY,
+ generatedXML.writeElement(null, DENY,
XMLPrinter.OPENING);
} else {
- generatedXML.writeElement(null, GRANT,
+ generatedXML.writeElement(null, GRANT,
XMLPrinter.OPENING);
}
@@ -1400,10 +1408,10 @@
writePrivilege(generatedXML,
"remove-object", false);
if (isLockObject)
- writePrivilege(generatedXML,
+ writePrivilege(generatedXML,
"lock-object", false);
if (isReadLocks)
- writePrivilege(generatedXML,
+ writePrivilege(generatedXML,
"read-locks", false);
if (isCreateRevisionMetadata)
writePrivilege(generatedXML,
@@ -1437,33 +1445,33 @@
writePrivilege(generatedXML, "write-acl", true);
} else {
if (isGrantPermission)
- writePrivilege(generatedXML,
+ writePrivilege(generatedXML,
"grant-permission", false);
if (isRevokePermission)
- writePrivilege(generatedXML,
+ writePrivilege(generatedXML,
"revoke-permission", false);
}
}
if (permission.isNegative()) {
- generatedXML.writeElement(null, DENY,
+ generatedXML.writeElement(null, DENY,
XMLPrinter.CLOSING);
} else {
- generatedXML.writeElement(null, GRANT,
+ generatedXML.writeElement(null, GRANT,
XMLPrinter.CLOSING);
}
if (inheritedPermissions) {
generatedXML.writeElement(null, "protected",
XMLPrinter.NO_CONTENT);
- generatedXML.writeElement(null, INHERITED,
+ generatedXML.writeElement(null, INHERITED,
XMLPrinter.OPENING);
- generatedXML.writeElement(null, "href",
+ generatedXML.writeElement(null, "href",
XMLPrinter.OPENING);
generatedXML.writeText(getFullPath(current.getUri()));
- generatedXML.writeElement(null, "href",
+ generatedXML.writeElement(null, "href",
XMLPrinter.CLOSING);
- generatedXML.writeElement(null, INHERITED,
+ generatedXML.writeElement(null, INHERITED,
XMLPrinter.CLOSING);
}
@@ -1498,7 +1506,7 @@
if (principal.equals("~")) {
generatedXML.writeElement(null, "self", XMLPrinter.NO_CONTENT);
} if (principal.equals("nobody")) {
- generatedXML.writeElement(null, "all",
+ generatedXML.writeElement(null, "all",
XMLPrinter.NO_CONTENT);
} else {
generatedXML.writeElement(null, "href", XMLPrinter.OPENING);
@@ -1518,7 +1526,7 @@
if (standard) {
generatedXML.writeElement(null, name, XMLPrinter.NO_CONTENT);
} else {
- generatedXML.writeElement(SLIDE_NAMESPACE_ABBREV, name,
+ generatedXML.writeElement(SLIDE_NAMESPACE_ABBREV, name,
XMLPrinter.NO_CONTENT);
}
generatedXML.writeElement(null, PRIVILEGE, XMLPrinter.CLOSING);
@@ -1540,12 +1548,12 @@
*/
protected void showPrincipalCollectionSet(XMLPrinter generatedXML) {
NamespaceConfig config = token.getNamespaceConfig();
- generatedXML.writeElement(null, PRINCIPAL_COLLECTION_SET,
+ generatedXML.writeElement(null, PRINCIPAL_COLLECTION_SET,
XMLPrinter.OPENING);
generatedXML.writeElement(null, "href", XMLPrinter.OPENING);
generatedXML.writeText(getFullPath(config.getUsersPath()));
generatedXML.writeElement(null, "href", XMLPrinter.CLOSING);
- generatedXML.writeElement(null, PRINCIPAL_COLLECTION_SET,
+ generatedXML.writeElement(null, PRINCIPAL_COLLECTION_SET,
XMLPrinter.CLOSING);
}
1.17 +3 -2
jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- WebdavServlet.java 2001/07/10 22:32:17 1.16
+++ WebdavServlet.java 2001/07/12 12:13:43 1.17
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
1.16 2001/07/10 22:32:17 remm Exp $
- * $Revision: 1.16 $
- * $Date: 2001/07/10 22:32:17 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
1.17 2001/07/12 12:13:43 juergen Exp $
+ * $Revision: 1.17 $
+ * $Date: 2001/07/12 12:13:43 $
*
* ====================================================================
*
@@ -173,7 +173,8 @@
} else if (methodName.equalsIgnoreCase("PROPPATCH")) {
resultMethod = new PropPatchMethod(this, token, req, resp);
} else if (methodName.equalsIgnoreCase("ACL")) {
- resultMethod = new AclMethod(this, token, req, resp);
+ if( org.apache.slide.util.Configuration.useIntegratedSecurity() )
+ resultMethod = new AclMethod(this, token, req, resp);
}
if (resultMethod == null) {