You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2012/08/20 17:54:46 UTC
svn commit: r1375079 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/core/
oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/
oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/
oak-core/src/mai...
Author: angela
Date: Mon Aug 20 15:54:45 2012
New Revision: 1375079
URL: http://svn.apache.org/viewvc?rev=1375079&view=rev
Log:
OAK-50 : Implement User Management (WIP)
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserConfig.java (contents, props changed)
- copied, changed from r1375014, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserManagerConfig.java
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserManagerConfig.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProviderImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidatorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/AuthorizableAction.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java Mon Aug 20 15:54:45 2012
@@ -36,7 +36,7 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
import org.apache.jackrabbit.oak.spi.security.authorization.AccessControlContext;
import org.apache.jackrabbit.oak.spi.security.authorization.CompiledPermissions;
-import org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfig;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
@@ -255,7 +255,7 @@ public class RootImpl implements Root {
providers.add(accessControlContext.getAccessControlValdatorProvider(valueFactory));
// TODO the following v-providers could be initialized at ContentRepo level
// FIXME: use proper configuration
- providers.add(new UserValidatorProvider(valueFactory, new UserManagerConfig("admin")));
+ providers.add(new UserValidatorProvider(valueFactory, new UserConfig("admin")));
providers.add(new PrivilegeValidatorProvider(valueFactory));
return new ValidatingEditor(new CompositeValidatorProvider(providers));
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProviderImpl.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProviderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProviderImpl.java Mon Aug 20 15:54:45 2012
@@ -40,6 +40,7 @@ import org.apache.jackrabbit.api.securit
import org.apache.jackrabbit.commons.iterator.RangeIteratorAdapter;
import org.apache.jackrabbit.oak.api.ContentSession;
import org.apache.jackrabbit.oak.api.CoreValue;
+import org.apache.jackrabbit.oak.api.CoreValueFactory;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Result;
import org.apache.jackrabbit.oak.api.Root;
@@ -50,7 +51,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.spi.security.principal.TreeBasedPrincipal;
import org.apache.jackrabbit.oak.spi.security.user.MembershipProvider;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
-import org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfig;
import org.apache.jackrabbit.oak.spi.security.user.UserProvider;
import org.apache.jackrabbit.oak.util.NodeUtil;
import org.apache.jackrabbit.util.Text;
@@ -68,10 +69,10 @@ import org.slf4j.LoggerFactory;
* authorizable ID with the following behavior:
* <ul>
* <li>Users are created below /rep:security/rep:authorizables/rep:users or
- * the path configured in the {@link org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig#PARAM_USER_PATH}
+ * the path configured in the {@link org.apache.jackrabbit.oak.spi.security.user.UserConfig#PARAM_USER_PATH}
* respectively.</li>
* <li>Groups are created below /rep:security/rep:authorizables/rep:groups or
- * the path configured in the {@link org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig#PARAM_GROUP_PATH}
+ * the path configured in the {@link org.apache.jackrabbit.oak.spi.security.user.UserConfig#PARAM_GROUP_PATH}
* respectively.</li>
* <li>Below each category authorizables are created within a human readable
* structure based on the defined intermediate path or some internal logic
@@ -119,13 +120,13 @@ import org.slf4j.LoggerFactory;
*
* <h3>Configuration Options</h3>
* <ul>
- * <li>{@link org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig#PARAM_USER_PATH}: Underneath this structure
+ * <li>{@link org.apache.jackrabbit.oak.spi.security.user.UserConfig#PARAM_USER_PATH}: Underneath this structure
* all user nodes are created. Default value is
* "/rep:security/rep:authorizables/rep:users"</li>
- * <li>{@link org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig#PARAM_GROUP_PATH}: Underneath this structure
+ * <li>{@link org.apache.jackrabbit.oak.spi.security.user.UserConfig#PARAM_GROUP_PATH}: Underneath this structure
* all group nodes are created. Default value is
* "/rep:security/rep:authorizables/rep:groups"</li>
- * <li>{@link org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig#PARAM_DEFAULT_DEPTH}: A positive {@code integer}
+ * <li>{@link org.apache.jackrabbit.oak.spi.security.user.UserConfig#PARAM_DEFAULT_DEPTH}: A positive {@code integer}
* greater than zero defining the depth of the default structure that is
* always created. Default value: 2</li>
* </ul>
@@ -161,7 +162,8 @@ public class UserProviderImpl implements
private static final String DELIMITER = "/";
private static final int DEFAULT_DEPTH = 2;
- private final ContentSession contentSession;
+ private final CoreValueFactory valueFactory;
+ private final SessionQueryEngine queryEngine;
private final Root root;
private final IdentifierManager identifierManager;
@@ -172,22 +174,27 @@ public class UserProviderImpl implements
private final String groupPath;
private final String userPath;
- public UserProviderImpl(ContentSession contentSession, Root root, UserManagerConfig config) {
- this.contentSession = contentSession;
+ public UserProviderImpl(ContentSession contentSession, Root root, UserConfig config) {
+ this(contentSession.getCoreValueFactory(), contentSession.getQueryEngine(), root, config);
+ }
+
+ public UserProviderImpl(CoreValueFactory valueFactory, SessionQueryEngine queryEngine, Root root, UserConfig config) {
+ this.valueFactory = valueFactory;
+ this.queryEngine = queryEngine;
this.root = root;
- this.identifierManager = new IdentifierManager(contentSession.getQueryEngine(), root);
+ this.identifierManager = new IdentifierManager(queryEngine, root);
- defaultDepth = config.getConfigValue(UserManagerConfig.PARAM_DEFAULT_DEPTH, DEFAULT_DEPTH);
- int splitValue = config.getConfigValue(UserManagerConfig.PARAM_GROUP_MEMBERSHIP_SPLIT_SIZE, 0);
+ defaultDepth = config.getConfigValue(UserConfig.PARAM_DEFAULT_DEPTH, DEFAULT_DEPTH);
+ int splitValue = config.getConfigValue(UserConfig.PARAM_GROUP_MEMBERSHIP_SPLIT_SIZE, 0);
if (splitValue != 0 && splitValue < 4) {
- log.warn("Invalid value {} for {}. Expected integer >= 4 or 0", splitValue, UserManagerConfig.PARAM_GROUP_MEMBERSHIP_SPLIT_SIZE);
+ log.warn("Invalid value {} for {}. Expected integer >= 4 or 0", splitValue, UserConfig.PARAM_GROUP_MEMBERSHIP_SPLIT_SIZE);
splitValue = 0;
}
this.splitSize = splitValue;
this.adminId = config.getAdminId();
- groupPath = config.getConfigValue(UserManagerConfig.PARAM_GROUP_PATH, DEFAULT_GROUP_PATH);
- userPath = config.getConfigValue(UserManagerConfig.PARAM_USER_PATH, DEFAULT_USER_PATH);
+ groupPath = config.getConfigValue(UserConfig.PARAM_GROUP_PATH, DEFAULT_GROUP_PATH);
+ userPath = config.getConfigValue(UserConfig.PARAM_USER_PATH, DEFAULT_USER_PATH);
}
//-------------------------------------------------------< UserProvider >---
@@ -240,12 +247,11 @@ public class UserProviderImpl implements
// NOTE: in contrast to JR2 the extra shortcut for ID==principalName
// can be omitted as principals names are stored in user defined
// index as well.
- SessionQueryEngine queryEngine = contentSession.getQueryEngine();
try {
- CoreValue bindValue = contentSession.getCoreValueFactory().createValue(principal.getName());
+ CoreValue bindValue = valueFactory.createValue(principal.getName());
Map<String, CoreValue> bindings = Collections.singletonMap("principalName", bindValue);
String stmt = "SELECT * FROM [rep:Authorizable] WHERE [rep:principalName] = $principalName";
- Result result = contentSession.getQueryEngine().executeQuery(stmt,
+ Result result = queryEngine.executeQuery(stmt,
Query.JCR_SQL2, 1, 0,
Collections.singletonMap("principalName", bindValue),
new NamePathMapper.Default());
@@ -383,7 +389,7 @@ public class UserProviderImpl implements
@Override
public boolean addMember(Tree groupTree, Tree newMemberTree) {
if (useMemberNode(groupTree)) {
- NodeUtil groupNode = new NodeUtil(groupTree, contentSession);
+ NodeUtil groupNode = new NodeUtil(groupTree, valueFactory);
NodeUtil membersNode = groupNode.getOrAddChild(REP_MEMBERS, NT_REP_MEMBERS);
//FIXME: replace usage of PropertySequence with oak-compatible utility
@@ -513,12 +519,12 @@ public class UserProviderImpl implements
NodeUtil folder;
Tree authTree = root.getTree(authRoot);
if (authTree == null) {
- folder = new NodeUtil(root.getTree("/"), contentSession);
+ folder = new NodeUtil(root.getTree("/"), valueFactory);
for (String name : Text.explode(authRoot, '/', false)) {
folder = folder.getOrAddChild(name, NT_REP_AUTHORIZABLE_FOLDER);
}
} else {
- folder = new NodeUtil(authTree, contentSession);
+ folder = new NodeUtil(authTree, valueFactory);
}
String folderPath = getFolderPath(authorizableId, intermediatePath);
String[] segmts = Text.explode(folderPath, '/', false);
@@ -576,7 +582,7 @@ public class UserProviderImpl implements
//-----------------------------------------< private MembershipProvider >---
private CoreValue createCoreValue(Tree authorizableTree) {
- return contentSession.getCoreValueFactory().createValue(getContentID(authorizableTree), PropertyType.WEAKREFERENCE);
+ return valueFactory.createValue(getContentID(authorizableTree), PropertyType.WEAKREFERENCE);
}
private boolean useMemberNode(Tree groupTree) {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java Mon Aug 20 15:54:45 2012
@@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.spi.commit.UniquePropertyValidator;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
-import org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfig;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.util.NodeUtil;
import org.apache.jackrabbit.util.Text;
@@ -34,10 +34,11 @@ import org.apache.jackrabbit.util.Text;
/**
* UserValidator... TODO
*/
-class UserValidator extends UniquePropertyValidator {
+class UserValidator extends UniquePropertyValidator implements UserConstants {
private final static Set<String> PROPERTY_NAMES = ImmutableSet.copyOf(new String[] {
- UserConstants.REP_AUTHORIZABLE_ID, UserConstants.REP_PRINCIPAL_NAME});
+ REP_AUTHORIZABLE_ID, REP_PRINCIPAL_NAME
+ });
private final UserValidatorProvider provider;
@@ -67,6 +68,11 @@ class UserValidator extends UniqueProper
@Override
public void propertyChanged(PropertyState before, PropertyState after) throws CommitFailedException {
super.propertyChanged(before, after);
+
+ String name = before.getName();
+ if (REP_PRINCIPAL_NAME.equals(name) || REP_AUTHORIZABLE_ID.equals(name)) {
+ throw new CommitFailedException("Authorizable property " + name + " may not be altered after user/group creation.");
+ }
}
@Override
@@ -78,10 +84,10 @@ class UserValidator extends UniqueProper
public Validator childNodeAdded(String name, NodeState after) throws CommitFailedException {
NodeUtil node = parentAfter.getChild(name);
String authRoot = null;
- if (node.hasPrimaryNodeTypeName(UserConstants.NT_REP_USER)) {
- authRoot = provider.getConfig().getConfigValue(UserManagerConfig.PARAM_USER_PATH, UserConstants.DEFAULT_USER_PATH);
+ if (node.hasPrimaryNodeTypeName(NT_REP_USER)) {
+ authRoot = provider.getConfig().getConfigValue(UserConfig.PARAM_USER_PATH, DEFAULT_USER_PATH);
} else if (node.hasPrimaryNodeTypeName(UserConstants.NT_REP_GROUP)) {
- authRoot = provider.getConfig().getConfigValue(UserManagerConfig.PARAM_GROUP_PATH, UserConstants.DEFAULT_GROUP_PATH);
+ authRoot = provider.getConfig().getConfigValue(UserConfig.PARAM_GROUP_PATH, DEFAULT_GROUP_PATH);
}
if (authRoot != null) {
assertHierarchy(node, authRoot);
@@ -119,7 +125,7 @@ class UserValidator extends UniqueProper
NodeUtil parent = userNode.getParent();
while (!parent.getTree().isRoot()) {
- if (!parent.hasPrimaryNodeTypeName(UserConstants.NT_REP_AUTHORIZABLE_FOLDER)) {
+ if (!parent.hasPrimaryNodeTypeName(NT_REP_AUTHORIZABLE_FOLDER)) {
String msg = "Cannot create user/group: Intermediate folders must be of type rep:AuthorizableFolder.";
Exception e = new ConstraintViolationException(msg);
throw new CommitFailedException(e);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidatorProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidatorProvider.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidatorProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidatorProvider.java Mon Aug 20 15:54:45 2012
@@ -23,7 +23,7 @@ import org.apache.jackrabbit.oak.core.Re
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
-import org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfig;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.util.NodeUtil;
@@ -33,9 +33,9 @@ import org.apache.jackrabbit.oak.util.No
public class UserValidatorProvider implements ValidatorProvider {
private final CoreValueFactory valueFactory;
- private final UserManagerConfig config;
+ private final UserConfig config;
- public UserValidatorProvider(CoreValueFactory valueFactory, UserManagerConfig config) {
+ public UserValidatorProvider(CoreValueFactory valueFactory, UserConfig config) {
assert valueFactory != null;
assert config != null;
@@ -55,7 +55,7 @@ public class UserValidatorProvider imple
//-----------------------------------------------------------< internal >---
@Nonnull
- UserManagerConfig getConfig() {
+ UserConfig getConfig() {
return config;
}
Copied: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserConfig.java (from r1375014, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserManagerConfig.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserConfig.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserConfig.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserManagerConfig.java&r1=1375014&r2=1375079&rev=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserManagerConfig.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserConfig.java Mon Aug 20 15:54:45 2012
@@ -16,23 +16,23 @@
*/
package org.apache.jackrabbit.oak.spi.security.user;
-import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableAction;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nonnull;
+import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableAction;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* UserManagerConfig provides utilities to retrieve configuration options
* related to user management. In addition it defines some constants that
* have been used in Jackrabbit 2.0 default user management implementation.
*/
-public class UserManagerConfig {
+public class UserConfig {
- private static final Logger log = LoggerFactory.getLogger(UserManagerConfig.class);
+ private static final Logger log = LoggerFactory.getLogger(UserConfig.class);
/**
* Configuration option to define the path underneath which user nodes
@@ -87,11 +87,11 @@ public class UserManagerConfig {
private final Map<String, Object> options;
private final Set<AuthorizableAction> actions;
- public UserManagerConfig(String adminId) {
+ public UserConfig(String adminId) {
this(adminId, null, null);
}
- public UserManagerConfig(String adminId, Map<String, Object> options, Set<AuthorizableAction> actions) {
+ public UserConfig(String adminId, Map<String, Object> options, Set<AuthorizableAction> actions) {
assert adminId != null;
this.adminId = adminId;
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/UserConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/AuthorizableAction.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/AuthorizableAction.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/AuthorizableAction.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/AuthorizableAction.java Mon Aug 20 15:54:45 2012
@@ -16,13 +16,13 @@
*/
package org.apache.jackrabbit.oak.spi.security.user.action;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.User;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
/**
* The {@code AuthorizableAction} interface provide an implementation
* specific way to execute additional validation or write tasks upon
@@ -34,7 +34,7 @@ import javax.jcr.Session;
* <li>{@link #onPasswordChange(org.apache.jackrabbit.api.security.user.User, String, javax.jcr.Session) User password modification}.</li>
* </ul>
*
- * @see org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig
+ * @see org.apache.jackrabbit.oak.spi.security.user.UserConfig
*/
public interface AuthorizableAction {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java Mon Aug 20 15:54:45 2012
@@ -57,12 +57,16 @@ public class NodeUtil {
this.tree = tree;
}
- public NodeUtil(Tree tree, ContentSession contentSession) {
+ public NodeUtil(Tree tree, CoreValueFactory factory) {
this.tree = tree;
- this.factory = contentSession.getCoreValueFactory();
+ this.factory = factory;
this.mapper = NamePathMapper.DEFAULT;
}
+ public NodeUtil(Tree tree, ContentSession contentSession) {
+ this(tree, contentSession.getCoreValueFactory());
+ }
+
@Nonnull
public Tree getTree() {
return tree;
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java?rev=1375079&r1=1375078&r2=1375079&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/UserManagerImpl.java Mon Aug 20 15:54:45 2012
@@ -47,7 +47,7 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.user.MembershipProvider;
import org.apache.jackrabbit.oak.spi.security.user.PasswordUtility;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
-import org.apache.jackrabbit.oak.spi.security.user.UserManagerConfig;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfig;
import org.apache.jackrabbit.oak.spi.security.user.UserProvider;
import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableAction;
import org.slf4j.Logger;
@@ -61,13 +61,13 @@ public class UserManagerImpl implements
private static final Logger log = LoggerFactory.getLogger(UserManagerImpl.class);
private final SessionDelegate sessionDelegate;
- private final UserManagerConfig config;
+ private final UserConfig config;
private final UserProviderImpl userProvider;
private final NodeTreeUtil util;
- public UserManagerImpl(SessionDelegate sessionDelegate, Root root, UserManagerConfig config) {
+ public UserManagerImpl(SessionDelegate sessionDelegate, Root root, UserConfig config) {
this.sessionDelegate = sessionDelegate;
- this.config = (config == null) ? new UserManagerConfig("admin") : config;
+ this.config = (config == null) ? new UserConfig("admin") : config;
userProvider = new UserProviderImpl(sessionDelegate.getContentSession(), root, this.config);
// FIXME: remove again. only tmp workaround
@@ -286,9 +286,9 @@ public class UserManagerImpl implements
String pwHash;
if (forceHash || PasswordUtility.isPlainTextPassword(password)) {
try {
- String algorithm = config.getConfigValue(UserManagerConfig.PARAM_PASSWORD_HASH_ALGORITHM, PasswordUtility.DEFAULT_ALGORITHM);
- int iterations = config.getConfigValue(UserManagerConfig.PARAM_PASSWORD_HASH_ITERATIONS, PasswordUtility.DEFAULT_ITERATIONS);
- int saltSize = config.getConfigValue(UserManagerConfig.PARAM_PASSWORD_SALT_SIZE, PasswordUtility.DEFAULT_SALT_SIZE);
+ String algorithm = config.getConfigValue(UserConfig.PARAM_PASSWORD_HASH_ALGORITHM, PasswordUtility.DEFAULT_ALGORITHM);
+ int iterations = config.getConfigValue(UserConfig.PARAM_PASSWORD_HASH_ITERATIONS, PasswordUtility.DEFAULT_ITERATIONS);
+ int saltSize = config.getConfigValue(UserConfig.PARAM_PASSWORD_SALT_SIZE, PasswordUtility.DEFAULT_SALT_SIZE);
pwHash = PasswordUtility.buildPasswordHash(password, algorithm, saltSize, iterations);
} catch (NoSuchAlgorithmException e) {
throw new RepositoryException(e);