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 2013/05/10 16:17:14 UTC
svn commit: r1481020 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
security/principal/PrincipalConfigurationImpl.java
spi/security/principal/PrincipalConfiguration.java
Author: angela
Date: Fri May 10 14:17:14 2013
New Revision: 1481020
URL: http://svn.apache.org/r1481020
Log:
OAK-90 : Implement Principal Management (javadoc)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalConfiguration.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java?rev=1481020&r1=1481019&r2=1481020&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java Fri May 10 14:17:14 2013
@@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalProvider;
/**
- * PrincipalConfigurationImpl... TODO
+ * Default implementation of the {@code PrincipalConfiguration}
*/
public class PrincipalConfigurationImpl extends SecurityConfiguration.Default implements PrincipalConfiguration {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalConfiguration.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalConfiguration.java?rev=1481020&r1=1481019&r2=1481020&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalConfiguration.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalConfiguration.java Fri May 10 14:17:14 2013
@@ -24,13 +24,48 @@ import org.apache.jackrabbit.oak.namepat
import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
/**
- * PrincipalConfig... TODO
+ * Configuration interface for principal management.
*/
public interface PrincipalConfiguration extends SecurityConfiguration {
+ /**
+ * Returns an instance of {@link PrincipalManager} that can be used
+ * to query and retrieve principals such as needed for JCR access control
+ * management.
+ *
+ * @param root The target root.
+ * @param namePathMapper The {@code NamePathMapper} to be used.
+ * @return An instance of {@link PrincipalManager}.
+ * @see {@link org.apache.jackrabbit.api.JackrabbitSession#getPrincipalManager()}
+ */
@Nonnull
PrincipalManager getPrincipalManager(Root root, NamePathMapper namePathMapper);
+ /**
+ * Returns an instance of the OAK {@link PrincipalProvider}.
+ *
+ * <h3>Backwards compatibility with Jackrabbit 2.x</h3>
+ * <h4>Configuration of Principal Providers</h4>
+ * In Jackrabbit 2.x the configuration of principal providers was tied to
+ * the LoginModule configuration and thus mixing authentication concerns
+ * with the principal management. Since OAK makes the {@code PrincipalProvider}
+ * a public interface of the SPI, it's configuration goes along with the
+ * configuration of the JCR level {@link PrincipalManager}. The authentication
+ * setup may have access to the principal configuration if the
+ * {@link org.apache.jackrabbit.oak.spi.security.SecurityProvider} is
+ * made available in the {@link org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration}.
+ *
+ * <h4>Multiple Sources for Principals</h4>
+ * In Jackrabbit 2.x it was possible to configure multiple principal providers.
+ * As of OAK there is only one single principal provider implementation
+ * responsible for a given workspace. If principals originate from different
+ * sources it is recommended to use the {@link CompositePrincipalProvider}
+ * to combine the different sources.
+ *
+ * @param root The target {@code Root}.
+ * @param namePathMapper The {@code NamePathMapper} to be used.
+ * @return An instance of {@link PrincipalProvider}.
+ */
@Nonnull
PrincipalProvider getPrincipalProvider(Root root, NamePathMapper namePathMapper);
}
\ No newline at end of file