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/09/11 16:51:54 UTC
svn commit: r1521884 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
security/authentication/ security/principal/ security/privilege/
spi/security/
Author: angela
Date: Wed Sep 11 14:51:54 2013
New Revision: 1521884
URL: http://svn.apache.org/r1521884
Log:
OAK-754 : Pluggable Security Setup (WIP)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
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/security/privilege/PrivilegeConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java?rev=1521884&r1=1521883&r2=1521884&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java Wed Sep 11 14:51:54 2013
@@ -19,11 +19,14 @@ package org.apache.jackrabbit.oak.securi
import javax.annotation.Nonnull;
import javax.security.auth.login.Configuration;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.ContentRepository;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.security.authentication.token.TokenProviderImpl;
import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
import org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration;
import org.apache.jackrabbit.oak.spi.security.authentication.ConfigurationUtil;
@@ -49,10 +52,16 @@ import org.slf4j.LoggerFactory;
* </ul>
*
*/
+@Component()
+@Service({AuthenticationConfiguration.class, SecurityConfiguration.class})
public class AuthenticationConfigurationImpl extends ConfigurationBase implements AuthenticationConfiguration {
private static final Logger log = LoggerFactory.getLogger(AuthenticationConfigurationImpl.class);
+ public AuthenticationConfigurationImpl() {
+ super();
+ }
+
public AuthenticationConfigurationImpl(SecurityProvider securityProvider) {
super(securityProvider);
}
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=1521884&r1=1521883&r2=1521884&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 Wed Sep 11 14:51:54 2013
@@ -18,10 +18,13 @@ package org.apache.jackrabbit.oak.securi
import javax.annotation.Nonnull;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
+import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration;
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalProvider;
@@ -30,8 +33,14 @@ import org.apache.jackrabbit.oak.spi.sec
/**
* Default implementation of the {@code PrincipalConfiguration}
*/
+@Component()
+@Service({PrincipalConfiguration.class, SecurityConfiguration.class})
public class PrincipalConfigurationImpl extends ConfigurationBase implements PrincipalConfiguration {
+ public PrincipalConfigurationImpl() {
+ super();
+ }
+
public PrincipalConfigurationImpl(SecurityProvider securityProvider) {
super(securityProvider);
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java?rev=1521884&r1=1521883&r2=1521884&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java Wed Sep 11 14:51:54 2013
@@ -20,6 +20,8 @@ import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
@@ -28,11 +30,14 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
import org.apache.jackrabbit.oak.spi.security.Context;
+import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConfiguration;
/**
* Configuration for the privilege management component.
*/
+@Component()
+@Service({PrivilegeConfiguration.class, SecurityConfiguration.class})
public class PrivilegeConfigurationImpl extends ConfigurationBase implements PrivilegeConfiguration {
//---------------------------------------------< PrivilegeConfiguration >---
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java?rev=1521884&r1=1521883&r2=1521884&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java Wed Sep 11 14:51:54 2013
@@ -18,17 +18,18 @@ package org.apache.jackrabbit.oak.spi.se
import javax.annotation.Nonnull;
+import org.apache.felix.scr.annotations.Activate;
+import org.osgi.service.component.ComponentContext;
+
/**
* Abstract base implementation for the various security configurations.
*/
public abstract class ConfigurationBase extends SecurityConfiguration.Default {
- private final SecurityProvider securityProvider;
- private final ConfigurationParameters config;
+ private SecurityProvider securityProvider;
+ private ConfigurationParameters config = ConfigurationParameters.EMPTY;
public ConfigurationBase() {
- securityProvider = null;
- config = ConfigurationParameters.EMPTY;
}
public ConfigurationBase(SecurityProvider securityProvider) {
@@ -37,17 +38,28 @@ public abstract class ConfigurationBase
}
@Nonnull
- protected SecurityProvider getSecurityProvider() {
+ public SecurityProvider getSecurityProvider() {
if (securityProvider == null) {
throw new IllegalStateException();
}
return securityProvider;
}
+ public void setSecurityProvider(@Nonnull SecurityProvider securityProvider) {
+ this.securityProvider = securityProvider;
+ config = securityProvider.getParameters(getName());
+ }
+
//----------------------------------------------< SecurityConfiguration >---
@Nonnull
@Override
public ConfigurationParameters getParameters() {
return config;
}
+
+ //----------------------------------------------------< SCR Integration >---
+ @Activate
+ protected void activate(ComponentContext context) {
+ config = ConfigurationParameters.newInstance(context.getProperties());
+ }
}