You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/02/18 15:41:47 UTC
svn commit: r911422 -
/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
Author: mir
Date: Thu Feb 18 14:41:47 2010
New Revision: 911422
URL: http://svn.apache.org/viewvc?rev=911422&view=rev
Log:
CLEREZZA-107: UserLoginNode.java wasn't merged before.
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=911422&r1=911421&r2=911422&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 Feb 18 14:41:47 2010
@@ -18,6 +18,9 @@
*/
package org.apache.clerezza.platform.usermanager;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import org.apache.clerezza.platform.security.UserUtil;
import org.apache.clerezza.rdf.core.NonLiteral;
@@ -31,7 +34,7 @@
/**
* The login name is added to the user context node. The name is accessable via
- * ssp template by using the context node
+ * ssp template by using the context node
* (e.g. context/platform("user")/platform("userName")).
*
* @author tio
@@ -46,8 +49,15 @@
@Override
public GraphNode addUserContext(GraphNode node) {
- GraphNode agent = userManager.getUserGraphNode(UserUtil.getCurrentUserName());
- if(!(node.getObjects(PLATFORM.user).hasNext())) {
+
+ final AccessControlContext context = AccessController.getContext();
+ GraphNode agent = AccessController.doPrivileged(new PrivilegedAction<GraphNode>() {
+ @Override
+ public GraphNode run() {
+ return userManager.getUserGraphNode(UserUtil.getUserName(context));
+ }
+ });
+ if (!(node.getObjects(PLATFORM.user).hasNext())) {
node.addProperty(PLATFORM.user, agent.getNode());
} else {
Resource user = node.getObjects(PLATFORM.user).next();