]> source.dussan.org Git - archiva.git/commitdiff
fix name as it is related to Redback and not to Archiva
authorOlivier Lamy <olamy@apache.org>
Thu, 20 Dec 2012 20:33:35 +0000 (20:33 +0000)
committerOlivier Lamy <olamy@apache.org>
Thu, 20 Dec 2012 20:33:35 +0000 (20:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1424675 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java [deleted file]
archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java [new file with mode: 0644]
archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java [deleted file]
archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java [new file with mode: 0644]
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/runtime/ldap/ArchivaLdapConnectionFactory.java
archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaLockedAdminEnvironmentCheck.java
archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java

diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java
deleted file mode 100644 (file)
index 116ac30..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.archiva.admin.model.runtime;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.archiva.admin.model.RepositoryAdminException;
-import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
-
-/**
- * @author Olivier Lamy
- * @since 1.4-M4
- */
-public interface ArchivaRuntimeConfigurationAdmin
-{
-    RedbackRuntimeConfiguration getArchivaRuntimeConfiguration()
-        throws RepositoryAdminException;
-
-    void updateArchivaRuntimeConfiguration( RedbackRuntimeConfiguration redbackRuntimeConfiguration )
-        throws RepositoryAdminException;
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java
new file mode 100644 (file)
index 0000000..3bb9a11
--- /dev/null
@@ -0,0 +1,36 @@
+package org.apache.archiva.admin.model.runtime;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.archiva.admin.model.RepositoryAdminException;
+import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.4-M4
+ */
+public interface RedbackRuntimeConfigurationAdmin
+{
+    RedbackRuntimeConfiguration getRedbackRuntimeConfiguration()
+        throws RepositoryAdminException;
+
+    void updateRedbackRuntimeConfiguration( RedbackRuntimeConfiguration redbackRuntimeConfiguration )
+        throws RepositoryAdminException;
+
+}
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
deleted file mode 100644 (file)
index 302e7bb..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-package org.apache.archiva.admin.repository.runtime;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import net.sf.beanlib.provider.replicator.BeanReplicator;
-import org.apache.archiva.admin.model.RepositoryAdminException;
-import org.apache.archiva.admin.model.beans.LdapConfiguration;
-import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
-import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
-import org.apache.archiva.configuration.ArchivaConfiguration;
-import org.apache.archiva.configuration.Configuration;
-import org.apache.archiva.configuration.IndeterminateConfigurationException;
-import org.apache.archiva.redback.components.registry.RegistryException;
-import org.apache.archiva.redback.configuration.UserConfiguration;
-import org.apache.archiva.redback.configuration.UserConfigurationException;
-import org.apache.archiva.redback.configuration.UserConfigurationKeys;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.util.List;
-
-/**
- * @author Olivier Lamy
- * @since 1.4-M4
- */
-@Service( "userConfiguration#archiva" )
-public class DefaultArchivaRuntimeConfigurationAdmin
-    implements ArchivaRuntimeConfigurationAdmin, UserConfiguration
-{
-
-    protected Logger log = LoggerFactory.getLogger( getClass() );
-
-    @Inject
-    private ArchivaConfiguration archivaConfiguration;
-
-    @Inject
-    @Named( value = "userConfiguration#redback" )
-    UserConfiguration userConfiguration;
-
-    @PostConstruct
-    public void initialize()
-        throws UserConfigurationException
-    {
-        try
-        {
-            RedbackRuntimeConfiguration redbackRuntimeConfiguration = getArchivaRuntimeConfiguration();
-            // migrate or not data from redback
-            if ( !redbackRuntimeConfiguration.isMigratedFromRedbackConfiguration() )
-            {
-                // so migrate if available
-                String userManagerImpl = userConfiguration.getString( UserConfigurationKeys.USER_MANAGER_IMPL );
-                if ( StringUtils.isNotEmpty( userManagerImpl ) )
-                {
-                    redbackRuntimeConfiguration.getUserManagerImpls().add( userManagerImpl );
-                }
-
-                // now ldap
-
-                LdapConfiguration ldapConfiguration = redbackRuntimeConfiguration.getLdapConfiguration();
-                if ( ldapConfiguration == null )
-                {
-                    ldapConfiguration = new LdapConfiguration();
-                    redbackRuntimeConfiguration.setLdapConfiguration( ldapConfiguration );
-                }
-
-                ldapConfiguration.setHostName(
-                    userConfiguration.getString( UserConfigurationKeys.LDAP_HOSTNAME, null ) );
-                ldapConfiguration.setPort( userConfiguration.getInt( UserConfigurationKeys.LDAP_PORT, -1 ) );
-                ldapConfiguration.setSsl( userConfiguration.getBoolean( UserConfigurationKeys.LDAP_SSL, false ) );
-                ldapConfiguration.setBaseDn(
-                    userConfiguration.getConcatenatedList( UserConfigurationKeys.LDAP_BASEDN, null ) );
-                ldapConfiguration.setContextFactory(
-                    userConfiguration.getString( UserConfigurationKeys.LDAP_CONTEX_FACTORY, null ) );
-                ldapConfiguration.setBindDn(
-                    userConfiguration.getConcatenatedList( UserConfigurationKeys.LDAP_BINDDN, null ) );
-                ldapConfiguration.setPassword(
-                    userConfiguration.getString( UserConfigurationKeys.LDAP_PASSWORD, null ) );
-                ldapConfiguration.setAuthenticationMethod(
-                    userConfiguration.getString( UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD, null ) );
-
-                redbackRuntimeConfiguration.setMigratedFromRedbackConfiguration( true );
-
-                updateArchivaRuntimeConfiguration( redbackRuntimeConfiguration );
-
-            }
-
-            // we must ensure userManagerImpls list is not empty if so put at least jdo one !
-            if ( redbackRuntimeConfiguration.getUserManagerImpls().isEmpty() )
-            {
-                log.info(
-                    "redbackRuntimeConfiguration with empty userManagerImpls so force at least jdo implementation !" );
-                redbackRuntimeConfiguration.getUserManagerImpls().add( "jdo" );
-                updateArchivaRuntimeConfiguration( redbackRuntimeConfiguration );
-            }
-
-        }
-        catch ( RepositoryAdminException e )
-        {
-            throw new UserConfigurationException( e.getMessage(), e );
-        }
-    }
-
-    public RedbackRuntimeConfiguration getArchivaRuntimeConfiguration()
-    {
-        return build( archivaConfiguration.getConfiguration().getRedbackRuntimeConfiguration() );
-    }
-
-    public void updateArchivaRuntimeConfiguration( RedbackRuntimeConfiguration redbackRuntimeConfiguration )
-        throws RepositoryAdminException
-    {
-        org.apache.archiva.configuration.RedbackRuntimeConfiguration
-            runtimeConfiguration = build( redbackRuntimeConfiguration );
-        Configuration configuration = archivaConfiguration.getConfiguration();
-        configuration.setRedbackRuntimeConfiguration( runtimeConfiguration );
-        try
-        {
-            archivaConfiguration.save( configuration );
-        }
-        catch ( RegistryException e )
-        {
-            throw new RepositoryAdminException( e.getMessage(), e );
-        }
-        catch ( IndeterminateConfigurationException e )
-        {
-            throw new RepositoryAdminException( e.getMessage(), e );
-        }
-    }
-
-    private RedbackRuntimeConfiguration build( org.apache.archiva.configuration.RedbackRuntimeConfiguration runtimeConfiguration )
-    {
-        RedbackRuntimeConfiguration redbackRuntimeConfiguration =
-            new BeanReplicator().replicateBean( runtimeConfiguration, RedbackRuntimeConfiguration.class );
-
-        if ( runtimeConfiguration.getLdapConfiguration() != null )
-        {
-            redbackRuntimeConfiguration.setLdapConfiguration(
-                new BeanReplicator().replicateBean( runtimeConfiguration.getLdapConfiguration(),
-                                                    LdapConfiguration.class ) );
-        }
-
-        if ( redbackRuntimeConfiguration.getLdapConfiguration() == null )
-        {
-            // prevent NPE
-            redbackRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() );
-        }
-
-        return redbackRuntimeConfiguration;
-    }
-
-    private org.apache.archiva.configuration.RedbackRuntimeConfiguration build( RedbackRuntimeConfiguration archivaRuntimeConfiguration )
-    {
-        org.apache.archiva.configuration.RedbackRuntimeConfiguration redbackRuntimeConfiguration =
-            new BeanReplicator().replicateBean( archivaRuntimeConfiguration, org.apache.archiva.configuration.RedbackRuntimeConfiguration.class );
-
-        redbackRuntimeConfiguration.setLdapConfiguration(
-            new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getLdapConfiguration(),
-                                                org.apache.archiva.configuration.LdapConfiguration.class ) );
-
-        return redbackRuntimeConfiguration;
-    }
-
-    // wrapper for UserConfiguration to intercept values (and store it not yet migrated
-
-
-    public String getString( String key )
-    {
-        if ( UserConfigurationKeys.USER_MANAGER_IMPL.equals( key ) )
-        {
-            // possible false for others than archiva user manager
-            return getArchivaRuntimeConfiguration().getUserManagerImpls().get( 0 );
-        }
-
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-
-        if ( conf.getConfigurationProperties().containsKey( key ) )
-        {
-            return conf.getConfigurationProperties().get( key );
-        }
-
-        String value = userConfiguration.getString( key );
-        if ( value == null )
-        {
-            return null;
-        }
-        conf.getConfigurationProperties().put( key, value );
-
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public String getString( String key, String defaultValue )
-    {
-        if ( UserConfigurationKeys.LDAP_HOSTNAME.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getHostName();
-        }
-        if ( UserConfigurationKeys.LDAP_CONTEX_FACTORY.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getContextFactory();
-        }
-        if ( UserConfigurationKeys.LDAP_PASSWORD.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getPassword();
-        }
-        if ( UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getAuthenticationMethod();
-        }
-
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-
-        if ( conf.getConfigurationProperties().containsKey( key ) )
-        {
-            return conf.getConfigurationProperties().get( key );
-        }
-
-        String value = userConfiguration.getString( key, defaultValue );
-
-        if ( value == null )
-        {
-            return null;
-        }
-
-        conf.getConfigurationProperties().put( key, value );
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public int getInt( String key )
-    {
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-
-        if ( conf.getConfigurationProperties().containsKey( key ) )
-        {
-            return Integer.valueOf( conf.getConfigurationProperties().get( key ) );
-        }
-
-        int value = userConfiguration.getInt( key );
-
-        conf.getConfigurationProperties().put( key, Integer.toString( value ) );
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public int getInt( String key, int defaultValue )
-    {
-        if ( UserConfigurationKeys.LDAP_PORT.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getPort();
-        }
-
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-
-        if ( conf.getConfigurationProperties().containsKey( key ) )
-        {
-            return Integer.valueOf( conf.getConfigurationProperties().get( key ) );
-        }
-
-        int value = userConfiguration.getInt( key, defaultValue );
-
-        conf.getConfigurationProperties().put( key, Integer.toString( value ) );
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public boolean getBoolean( String key )
-    {
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-
-        if ( conf.getConfigurationProperties().containsKey( key ) )
-        {
-            return Boolean.valueOf( conf.getConfigurationProperties().get( key ) );
-        }
-
-        boolean value = userConfiguration.getBoolean( key );
-
-        conf.getConfigurationProperties().put( key, Boolean.toString( value ) );
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public boolean getBoolean( String key, boolean defaultValue )
-    {
-        if ( UserConfigurationKeys.LDAP_SSL.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().isSsl();
-        }
-
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-
-        if ( conf.getConfigurationProperties().containsKey( key ) )
-        {
-            return Boolean.valueOf( conf.getConfigurationProperties().get( key ) );
-        }
-
-        boolean value = userConfiguration.getBoolean( key, defaultValue );
-
-        conf.getConfigurationProperties().put( key, Boolean.toString( value ) );
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public List<String> getList( String key )
-    {
-        List<String> value = userConfiguration.getList( key );
-
-        RedbackRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
-        // TODO concat values
-        conf.getConfigurationProperties().put( key, "" );
-        try
-        {
-            updateArchivaRuntimeConfiguration( conf );
-        }
-        catch ( RepositoryAdminException e )
-        {
-            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
-            throw new RuntimeException( e.getMessage(), e );
-        }
-
-        return value;
-    }
-
-    public String getConcatenatedList( String key, String defaultValue )
-    {
-        if ( UserConfigurationKeys.LDAP_BASEDN.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getBaseDn();
-        }
-        if ( UserConfigurationKeys.LDAP_BINDDN.equals( key ) )
-        {
-            return getArchivaRuntimeConfiguration().getLdapConfiguration().getBindDn();
-        }
-        return userConfiguration.getConcatenatedList( key, defaultValue );
-    }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
new file mode 100644 (file)
index 0000000..d810273
--- /dev/null
@@ -0,0 +1,410 @@
+package org.apache.archiva.admin.repository.runtime;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import net.sf.beanlib.provider.replicator.BeanReplicator;
+import org.apache.archiva.admin.model.RepositoryAdminException;
+import org.apache.archiva.admin.model.beans.LdapConfiguration;
+import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
+import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin;
+import org.apache.archiva.configuration.ArchivaConfiguration;
+import org.apache.archiva.configuration.Configuration;
+import org.apache.archiva.configuration.IndeterminateConfigurationException;
+import org.apache.archiva.redback.components.registry.RegistryException;
+import org.apache.archiva.redback.configuration.UserConfiguration;
+import org.apache.archiva.redback.configuration.UserConfigurationException;
+import org.apache.archiva.redback.configuration.UserConfigurationKeys;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.util.List;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.4-M4
+ */
+@Service( "userConfiguration#archiva" )
+public class DefaultRedbackRuntimeConfigurationAdmin
+    implements RedbackRuntimeConfigurationAdmin, UserConfiguration
+{
+
+    protected Logger log = LoggerFactory.getLogger( getClass() );
+
+    @Inject
+    private ArchivaConfiguration archivaConfiguration;
+
+    @Inject
+    @Named( value = "userConfiguration#redback" )
+    UserConfiguration userConfiguration;
+
+    @PostConstruct
+    public void initialize()
+        throws UserConfigurationException
+    {
+        try
+        {
+            RedbackRuntimeConfiguration redbackRuntimeConfiguration = getRedbackRuntimeConfiguration();
+            // migrate or not data from redback
+            if ( !redbackRuntimeConfiguration.isMigratedFromRedbackConfiguration() )
+            {
+                // so migrate if available
+                String userManagerImpl = userConfiguration.getString( UserConfigurationKeys.USER_MANAGER_IMPL );
+                if ( StringUtils.isNotEmpty( userManagerImpl ) )
+                {
+                    redbackRuntimeConfiguration.getUserManagerImpls().add( userManagerImpl );
+                }
+
+                // now ldap
+
+                LdapConfiguration ldapConfiguration = redbackRuntimeConfiguration.getLdapConfiguration();
+                if ( ldapConfiguration == null )
+                {
+                    ldapConfiguration = new LdapConfiguration();
+                    redbackRuntimeConfiguration.setLdapConfiguration( ldapConfiguration );
+                }
+
+                ldapConfiguration.setHostName(
+                    userConfiguration.getString( UserConfigurationKeys.LDAP_HOSTNAME, null ) );
+                ldapConfiguration.setPort( userConfiguration.getInt( UserConfigurationKeys.LDAP_PORT, -1 ) );
+                ldapConfiguration.setSsl( userConfiguration.getBoolean( UserConfigurationKeys.LDAP_SSL, false ) );
+                ldapConfiguration.setBaseDn(
+                    userConfiguration.getConcatenatedList( UserConfigurationKeys.LDAP_BASEDN, null ) );
+                ldapConfiguration.setContextFactory(
+                    userConfiguration.getString( UserConfigurationKeys.LDAP_CONTEX_FACTORY, null ) );
+                ldapConfiguration.setBindDn(
+                    userConfiguration.getConcatenatedList( UserConfigurationKeys.LDAP_BINDDN, null ) );
+                ldapConfiguration.setPassword(
+                    userConfiguration.getString( UserConfigurationKeys.LDAP_PASSWORD, null ) );
+                ldapConfiguration.setAuthenticationMethod(
+                    userConfiguration.getString( UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD, null ) );
+
+                redbackRuntimeConfiguration.setMigratedFromRedbackConfiguration( true );
+
+                updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration );
+
+            }
+
+            // we must ensure userManagerImpls list is not empty if so put at least jdo one !
+            if ( redbackRuntimeConfiguration.getUserManagerImpls().isEmpty() )
+            {
+                log.info(
+                    "redbackRuntimeConfiguration with empty userManagerImpls so force at least jdo implementation !" );
+                redbackRuntimeConfiguration.getUserManagerImpls().add( "jdo" );
+                updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration );
+            }
+
+        }
+        catch ( RepositoryAdminException e )
+        {
+            throw new UserConfigurationException( e.getMessage(), e );
+        }
+    }
+
+    public RedbackRuntimeConfiguration getRedbackRuntimeConfiguration()
+    {
+        return build( archivaConfiguration.getConfiguration().getRedbackRuntimeConfiguration() );
+    }
+
+    public void updateRedbackRuntimeConfiguration( RedbackRuntimeConfiguration redbackRuntimeConfiguration )
+        throws RepositoryAdminException
+    {
+        org.apache.archiva.configuration.RedbackRuntimeConfiguration
+            runtimeConfiguration = build( redbackRuntimeConfiguration );
+        Configuration configuration = archivaConfiguration.getConfiguration();
+        configuration.setRedbackRuntimeConfiguration( runtimeConfiguration );
+        try
+        {
+            archivaConfiguration.save( configuration );
+        }
+        catch ( RegistryException e )
+        {
+            throw new RepositoryAdminException( e.getMessage(), e );
+        }
+        catch ( IndeterminateConfigurationException e )
+        {
+            throw new RepositoryAdminException( e.getMessage(), e );
+        }
+    }
+
+    private RedbackRuntimeConfiguration build( org.apache.archiva.configuration.RedbackRuntimeConfiguration runtimeConfiguration )
+    {
+        RedbackRuntimeConfiguration redbackRuntimeConfiguration =
+            new BeanReplicator().replicateBean( runtimeConfiguration, RedbackRuntimeConfiguration.class );
+
+        if ( runtimeConfiguration.getLdapConfiguration() != null )
+        {
+            redbackRuntimeConfiguration.setLdapConfiguration(
+                new BeanReplicator().replicateBean( runtimeConfiguration.getLdapConfiguration(),
+                                                    LdapConfiguration.class ) );
+        }
+
+        if ( redbackRuntimeConfiguration.getLdapConfiguration() == null )
+        {
+            // prevent NPE
+            redbackRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() );
+        }
+
+        return redbackRuntimeConfiguration;
+    }
+
+    private org.apache.archiva.configuration.RedbackRuntimeConfiguration build( RedbackRuntimeConfiguration archivaRuntimeConfiguration )
+    {
+        org.apache.archiva.configuration.RedbackRuntimeConfiguration redbackRuntimeConfiguration =
+            new BeanReplicator().replicateBean( archivaRuntimeConfiguration, org.apache.archiva.configuration.RedbackRuntimeConfiguration.class );
+
+        redbackRuntimeConfiguration.setLdapConfiguration(
+            new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getLdapConfiguration(),
+                                                org.apache.archiva.configuration.LdapConfiguration.class ) );
+
+        return redbackRuntimeConfiguration;
+    }
+
+    // wrapper for UserConfiguration to intercept values (and store it not yet migrated
+
+
+    public String getString( String key )
+    {
+        if ( UserConfigurationKeys.USER_MANAGER_IMPL.equals( key ) )
+        {
+            // possible false for others than archiva user manager
+            return getRedbackRuntimeConfiguration().getUserManagerImpls().get( 0 );
+        }
+
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+
+        if ( conf.getConfigurationProperties().containsKey( key ) )
+        {
+            return conf.getConfigurationProperties().get( key );
+        }
+
+        String value = userConfiguration.getString( key );
+        if ( value == null )
+        {
+            return null;
+        }
+        conf.getConfigurationProperties().put( key, value );
+
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public String getString( String key, String defaultValue )
+    {
+        if ( UserConfigurationKeys.LDAP_HOSTNAME.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getHostName();
+        }
+        if ( UserConfigurationKeys.LDAP_CONTEX_FACTORY.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getContextFactory();
+        }
+        if ( UserConfigurationKeys.LDAP_PASSWORD.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getPassword();
+        }
+        if ( UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getAuthenticationMethod();
+        }
+
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+
+        if ( conf.getConfigurationProperties().containsKey( key ) )
+        {
+            return conf.getConfigurationProperties().get( key );
+        }
+
+        String value = userConfiguration.getString( key, defaultValue );
+
+        if ( value == null )
+        {
+            return null;
+        }
+
+        conf.getConfigurationProperties().put( key, value );
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public int getInt( String key )
+    {
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+
+        if ( conf.getConfigurationProperties().containsKey( key ) )
+        {
+            return Integer.valueOf( conf.getConfigurationProperties().get( key ) );
+        }
+
+        int value = userConfiguration.getInt( key );
+
+        conf.getConfigurationProperties().put( key, Integer.toString( value ) );
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public int getInt( String key, int defaultValue )
+    {
+        if ( UserConfigurationKeys.LDAP_PORT.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getPort();
+        }
+
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+
+        if ( conf.getConfigurationProperties().containsKey( key ) )
+        {
+            return Integer.valueOf( conf.getConfigurationProperties().get( key ) );
+        }
+
+        int value = userConfiguration.getInt( key, defaultValue );
+
+        conf.getConfigurationProperties().put( key, Integer.toString( value ) );
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public boolean getBoolean( String key )
+    {
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+
+        if ( conf.getConfigurationProperties().containsKey( key ) )
+        {
+            return Boolean.valueOf( conf.getConfigurationProperties().get( key ) );
+        }
+
+        boolean value = userConfiguration.getBoolean( key );
+
+        conf.getConfigurationProperties().put( key, Boolean.toString( value ) );
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public boolean getBoolean( String key, boolean defaultValue )
+    {
+        if ( UserConfigurationKeys.LDAP_SSL.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().isSsl();
+        }
+
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+
+        if ( conf.getConfigurationProperties().containsKey( key ) )
+        {
+            return Boolean.valueOf( conf.getConfigurationProperties().get( key ) );
+        }
+
+        boolean value = userConfiguration.getBoolean( key, defaultValue );
+
+        conf.getConfigurationProperties().put( key, Boolean.toString( value ) );
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public List<String> getList( String key )
+    {
+        List<String> value = userConfiguration.getList( key );
+
+        RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration();
+        // TODO concat values
+        conf.getConfigurationProperties().put( key, "" );
+        try
+        {
+            updateRedbackRuntimeConfiguration( conf );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e );
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
+        return value;
+    }
+
+    public String getConcatenatedList( String key, String defaultValue )
+    {
+        if ( UserConfigurationKeys.LDAP_BASEDN.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getBaseDn();
+        }
+        if ( UserConfigurationKeys.LDAP_BINDDN.equals( key ) )
+        {
+            return getRedbackRuntimeConfiguration().getLdapConfiguration().getBindDn();
+        }
+        return userConfiguration.getConcatenatedList( key, defaultValue );
+    }
+}
index b62d59b35fcbbc86edd3b2841bac4b9710450043..46dbae3fd68751beb522d9861db65cac58347dfb 100644 (file)
@@ -21,7 +21,7 @@ package org.apache.archiva.rest.services;
 import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
 import org.apache.archiva.admin.model.beans.LdapConfiguration;
-import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin;
 import org.apache.archiva.redback.authentication.AuthenticationException;
 import org.apache.archiva.redback.authentication.Authenticator;
 import org.apache.archiva.redback.common.ldap.connection.LdapConnection;
@@ -58,7 +58,7 @@ public class DefaultArchivaRuntimeConfigurationService
     implements ArchivaRuntimeConfigurationService
 {
     @Inject
-    private ArchivaRuntimeConfigurationAdmin archivaRuntimeConfigurationAdmin;
+    private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     @Inject
     @Named(value = "userManager#configurable")
@@ -76,7 +76,7 @@ public class DefaultArchivaRuntimeConfigurationService
     {
         try
         {
-            return archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration();
+            return redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration();
         }
         catch ( RepositoryAdminException e )
         {
@@ -91,13 +91,13 @@ public class DefaultArchivaRuntimeConfigurationService
         {
             // has user manager impl changed ?
             boolean userManagerChanged = redbackRuntimeConfiguration.getUserManagerImpls().size()
-                != archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls().size();
+                != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().size();
 
             userManagerChanged =
                 userManagerChanged || ( redbackRuntimeConfiguration.getUserManagerImpls().toString().hashCode()
-                    != archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls().toString().hashCode() );
+                    != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().toString().hashCode() );
 
-            archivaRuntimeConfigurationAdmin.updateArchivaRuntimeConfiguration( redbackRuntimeConfiguration );
+            redbackRuntimeConfigurationAdmin.updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration );
 
             if ( userManagerChanged )
             {
index 6efdeea4cfbb16f8b3ea29502a7eb04e6b8388ae..43607e9bffa7bcd9e671f149319f277fd79ba095 100644 (file)
@@ -20,7 +20,7 @@ package org.apache.archiva.web.runtime.ldap;
 
 import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.LdapConfiguration;
-import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin;
 import org.apache.archiva.redback.common.ldap.connection.ConfigurableLdapConnectionFactory;
 import org.apache.archiva.redback.common.ldap.connection.LdapConnectionConfiguration;
 import org.springframework.stereotype.Service;
@@ -41,7 +41,7 @@ public class ArchivaLdapConnectionFactory
 {
 
     @Inject
-    private ArchivaRuntimeConfigurationAdmin archivaRuntimeConfigurationAdmin;
+    private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     private LdapConnectionConfiguration ldapConnectionConfiguration;
 
@@ -51,7 +51,7 @@ public class ArchivaLdapConnectionFactory
         try
         {
             LdapConfiguration ldapConfiguration =
-                archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getLdapConfiguration();
+                redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getLdapConfiguration();
             ldapConnectionConfiguration = new LdapConnectionConfiguration();
             ldapConnectionConfiguration.setHostname( ldapConfiguration.getHostName() );
             ldapConnectionConfiguration.setPort( ldapConfiguration.getPort() );
index 49a50a80cb19cf60d719dc234a2dbabe3ebc9fa5..f73785d7fc3890999890c9904d172b894afe8dcd 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.archiva.web.security;
  */
 
 import org.apache.archiva.admin.model.RepositoryAdminException;
-import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin;
 import org.apache.archiva.redback.components.cache.Cache;
 import org.apache.archiva.redback.users.User;
 import org.apache.archiva.redback.users.UserManager;
@@ -48,7 +48,7 @@ public class ArchivaConfigurableUsersManager
 {
 
     @Inject
-    private ArchivaRuntimeConfigurationAdmin archivaRuntimeConfigurationAdmin;
+    private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     @Inject
     private ApplicationContext applicationContext;
@@ -67,7 +67,7 @@ public class ArchivaConfigurableUsersManager
         try
         {
             List<String> userManagerImpls =
-                archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls();
+                redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls();
             log.info( "use userManagerImpls: '{}'", userManagerImpls );
 
             userManagerPerId = new LinkedHashMap<String, UserManager>( userManagerImpls.size() );
@@ -90,7 +90,7 @@ public class ArchivaConfigurableUsersManager
     {
         try
         {
-            return archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().isUseUsersCache();
+            return redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().isUseUsersCache();
         }
         catch ( RepositoryAdminException e )
         {
index 8f6137b8730e60e1d49d2ddb13f08258eb794f4a..14284cb2384b2047623a801a061d43dd8ecd6f45 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.archiva.web.security;
  */
 
 import org.apache.archiva.admin.model.RepositoryAdminException;
-import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin;
 import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
 import org.apache.archiva.redback.rbac.RBACManager;
 import org.apache.archiva.redback.rbac.RbacManagerException;
@@ -64,7 +64,7 @@ public class ArchivaLockedAdminEnvironmentCheck
     private ApplicationContext applicationContext;
 
     @Inject
-    private ArchivaRuntimeConfigurationAdmin archivaRuntimeConfigurationAdmin;
+    private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     private List<UserManager> userManagers;
 
@@ -73,7 +73,7 @@ public class ArchivaLockedAdminEnvironmentCheck
         throws RepositoryAdminException
     {
         List<String> userManagerImpls =
-            archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls();
+            redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls();
 
         userManagers = new ArrayList<UserManager>( userManagerImpls.size() );
 
index f937ec8faa56bbfd61e995c74e634a7d837cee87..da249dd54b7cf9224d45cdbbc25d6a88545bcf12 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.archiva.web.security;
  */
 
 import org.apache.archiva.admin.model.RepositoryAdminException;
-import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin;
 import org.apache.archiva.redback.authentication.AbstractAuthenticator;
 import org.apache.archiva.redback.authentication.AuthenticationConstants;
 import org.apache.archiva.redback.authentication.AuthenticationDataSource;
@@ -28,7 +28,6 @@ import org.apache.archiva.redback.authentication.AuthenticationFailureCause;
 import org.apache.archiva.redback.authentication.AuthenticationResult;
 import org.apache.archiva.redback.authentication.Authenticator;
 import org.apache.archiva.redback.authentication.PasswordBasedAuthenticationDataSource;
-import org.apache.archiva.redback.authentication.users.UserManagerAuthenticator;
 import org.apache.archiva.redback.policy.AccountLockedException;
 import org.apache.archiva.redback.policy.MustChangePasswordException;
 import org.apache.archiva.redback.policy.PasswordEncoder;
@@ -44,11 +43,8 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
-import javax.inject.Named;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author Olivier Lamy
@@ -68,7 +64,7 @@ public class ArchivaUserManagerAuthenticator
     private ApplicationContext applicationContext;
 
     @Inject
-    private ArchivaRuntimeConfigurationAdmin archivaRuntimeConfigurationAdmin;
+    private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     private List<UserManager> userManagers;
 
@@ -80,7 +76,7 @@ public class ArchivaUserManagerAuthenticator
         try
         {
             List<String> userManagerImpls =
-                archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls();
+                redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls();
 
             userManagers = new ArrayList<UserManager>( userManagerImpls.size() );