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 ba...@apache.org on 2013/03/08 23:54:16 UTC
svn commit: r1454615 [1/2] - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ oak-jcr/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/
Author: baedke
Date: Fri Mar 8 22:54:15 2013
New Revision: 1454615
URL: http://svn.apache.org/r1454615
Log:
OAK-414: added tests
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
jackrabbit/oak/trunk/oak-jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/SessionImporter.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/UserImportTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java?rev=1454615&r1=1454614&r2=1454615&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java Fri Mar 8 22:54:15 2013
@@ -66,9 +66,7 @@ abstract class AuthorizableImpl implemen
} else {
String msg = "Authorizable without principal name " + id;
log.warn(msg);
- //FIXME OAK-414 UserImport needs this workaround
- //throw new RepositoryException(msg);
- principalName = id;
+ throw new RepositoryException(msg);
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1454615&r1=1454614&r2=1454615&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java Fri Mar 8 22:54:15 2013
@@ -219,13 +219,16 @@ public class UserImporter implements Pro
public boolean handlePropInfo(Tree parent, PropInfo propInfo, PropertyDefinition def) throws RepositoryException {
checkInitialized();
- Authorizable a = userManager.getAuthorizable(parent);
- if (a == null) {
+ //TODO remove hack that processes principal name first
+ String propName = propInfo.getName();
+ Authorizable a = null;
+ try {
+ a = userManager.getAuthorizable(parent);
+ } catch (RepositoryException ignore) {}
+ if (a == null && !REP_PRINCIPAL_NAME.equals(propName)) {
log.warn("Cannot handle protected PropInfo " + propInfo + ". Node " + parent + " doesn't represent a valid Authorizable.");
return false;
}
-
- String propName = propInfo.getName();
if (REP_PRINCIPAL_NAME.equals(propName)) {
if (!isValid(def, NT_REP_AUTHORIZABLE, false)) {
return false;
@@ -240,6 +243,11 @@ public class UserImporter implements Pro
In case of a NEW user the actions are executed if the password
has been imported before.
*/
+ a = userManager.getAuthorizable(parent);
+ if (a == null) {
+ log.warn("Cannot handle protected PropInfo " + propInfo + ". Node " + parent + " doesn't represent a valid Authorizable.");
+ return false;
+ }
if (parent.getStatus() == Tree.Status.NEW) {
if (a.isGroup()) {
userManager.onCreate((Group) a);
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1454615&r1=1454614&r2=1454615&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Fri Mar 8 22:54:15 2013
@@ -249,6 +249,13 @@
org.apache.jackrabbit.oak.jcr.security.user.GroupTest#testCyclicGroups2 <!-- OAK-615 -->
org.apache.jackrabbit.oak.jcr.security.authorization.AccessControlImporterTest#testImportACLRemoveACE <!-- OAK-414 -->
org.apache.jackrabbit.oak.jcr.security.authorization.AccessControlImporterTest#testImportACLUnknown <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testImportGroupIntoUsersTree <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testExistingPrincipal <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testConflictingPrincipalsWithinImport <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testMultiValuedPrincipalName <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testMultiValuedPassword <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testIncompleteUser <!-- OAK-414 -->
+ org.apache.jackrabbit.oak.jcr.security.user.UserImportTest#testImportImpersonation <!-- OAK-414 -->
org.apache.jackrabbit.oak.jcr.version.VersionHistoryTest#testGetVersionHistoryFromNode <!-- OAK-601 -->
org.apache.jackrabbit.oak.jcr.version.VersionHistoryTest#testGetVersionHistory <!-- OAK-602 -->
org.apache.jackrabbit.oak.jcr.version.VersionHistoryTest#testGetVersionHistoryAfterMove <!-- OAK-602 -->
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/SessionImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/SessionImporter.java?rev=1454615&r1=1454614&r2=1454615&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/SessionImporter.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/SessionImporter.java Fri Mar 8 22:54:15 2013
@@ -420,6 +420,18 @@ public class SessionImporter implements
// process properties
+ //TODO remove hack that processes principal name first
+ int principalNameIndex = -1;
+ for (int k = 0; k < propInfos.size(); k++) {
+ PropInfo propInfo = propInfos.get(k);
+ if ("rep:principalName".equals(propInfo.getName())) {
+ principalNameIndex = k;
+ break;
+ }
+ }
+ if (principalNameIndex >= 0) {
+ propInfos.add(0, propInfos.remove(principalNameIndex));
+ }
for (PropInfo pi : propInfos) {
// find applicable definition
//TODO find a proper way to get the EffectiveNodeTypeProvider