Author: mir
Date: Thu Sep 30 16:45:04 2010
New Revision: 1003150
URL: http://svn.apache.org/viewvc?rev=1003150&view=rev
Log:
CLEREZZA-312: instead of adding the whole system graph to the context, only the
triples needed are added
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java?rev=1003150&r1=1003149&r2=1003150&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
Thu Sep 30 16:45:04 2010
@@ -21,15 +21,19 @@ package org.apache.clerezza.platform.use
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.util.Iterator;
import org.apache.clerezza.platform.security.UserUtil;
-import org.apache.clerezza.rdf.core.NonLiteral;
import org.apache.clerezza.rdf.utils.GraphNode;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.clerezza.platform.typerendering.UserContextProvider;
-import org.apache.clerezza.rdf.core.Resource;
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.Triple;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.ontologies.PERMISSION;
import org.apache.clerezza.rdf.ontologies.PLATFORM;
/**
@@ -62,14 +66,20 @@ public class UserLoginNode implements Us
}
});
if (agent != null) {
- if (!(node.getObjects(PLATFORM.user).hasNext())) {
- node.addProperty(PLATFORM.user,
agent.getNode());
- } else {
- Resource user =
node.getObjects(PLATFORM.user).next();
- agent.replaceWith((NonLiteral) user);
- }
- node.getGraph().addAll(agent.getGraph());
+ node.addProperty(PLATFORM.user, agent.getNode());
+ MGraph userContext = new
SimpleMGraph(agent.getNodeContext());
+ removeTripleWithProperty(userContext,
PERMISSION.password);
+ removeTripleWithProperty(userContext,
PERMISSION.passwordSha1);
+ node.getGraph().addAll(userContext);
}
return node;
}
+
+ private void removeTripleWithProperty(MGraph userContext, UriRef
property) {
+ Iterator<Triple> propertyTriples = userContext.filter(null,
property, null);
+ while (propertyTriples.hasNext()) {
+ propertyTriples.next();
+ propertyTriples.remove();
+ }
+ }
}