ozeigermann 2004/03/01 03:16:12
Modified: src/share/org/apache/slide/security Tag:
SLIDE_2_0_RELEASE_BRANCH SecurityImplAllGrant.java
Log:
As a fix of bug #27018, gracefully ignore permissions having dangling subjects
Revision Changes Path
No revision
No revision
1.5.2.3 +32 -10
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.5.2.2
retrieving revision 1.5.2.3
diff -u -r1.5.2.2 -r1.5.2.3
--- SecurityImplAllGrant.java 5 Feb 2004 16:05:12 -0000 1.5.2.2
+++ SecurityImplAllGrant.java 1 Mar 2004 11:16:12 -0000 1.5.2.3
@@ -34,6 +34,7 @@
import org.apache.slide.structure.ObjectNode;
import org.apache.slide.structure.ObjectNotFoundException;
import org.apache.slide.structure.SubjectNode;
+import org.apache.slide.util.logger.Logger;
/**
* Security helper.
@@ -44,6 +45,8 @@
public final class SecurityImplAllGrant extends SecurityImpl implements Security {
+ protected static final String LOG_CHANNEL =
SecurityImplAllGrant.class.getName();
+
// ----------------------------------------------------------- Constructors
/**
@@ -166,9 +169,18 @@
// Permission group which needs to be expanded
Uri permissionSubjectUri =
namespace.getUri(permissionSubject.substring(1));
- ObjectNode group =
- permissionSubjectUri.getStore().retrieveObject
- (permissionSubjectUri);
+ ObjectNode group;
+ try {
+ group =
permissionSubjectUri.getStore().retrieveObject(permissionSubjectUri);
+ } catch (ObjectNotFoundException onfe) {
+ namespace.getLogger().log(
+ "Gracefully ignoring permission of dangling subject
" + permissionSubjectUri,
+ onfe,
+ LOG_CHANNEL,
+ Logger.WARNING);
+ // as a fix of bug #27018, gracefully ignore
permissions having dangling subjects
+ continue;
+ }
// if the node is a GroupNode, expand it out to
// normal permissions
if (group instanceof
@@ -186,9 +198,19 @@
Uri childUri =
namespace.getUri
((String) groupMembers.nextElement());
- ObjectNode childNode =
- childUri.getStore().retrieveObject
- (childUri);
+ ObjectNode childNode;
+ try {
+ childNode =
childUri.getStore().retrieveObject(childUri);
+ } catch (ObjectNotFoundException onfe) {
+ namespace.getLogger().log(
+ "Gracefully ignoring permission of
dangling subject "
+ + childUri,
+ onfe,
+ LOG_CHANNEL,
+ Logger.WARNING);
+ // as a fix of bug #27018, gracefully
ignore permissions having dangling subjects
+ continue;
+ }
String childSubjectUri = childNode
instanceof LinkNode ?
((LinkNode) childNode)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]