]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1481] Ability to do user management through xmlrpc
authorOlivier Lamy <olamy@apache.org>
Wed, 10 Aug 2011 19:17:50 +0000 (19:17 +0000)
committerOlivier Lamy <olamy@apache.org>
Wed, 10 Aug 2011 19:17:50 +0000 (19:17 +0000)
Submitted by Maria Catherine Tan

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1156322 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp/pom.xml
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
pom.xml

index 30e2ab252c7c149370d1067a25165fe11445ce36..377bfdf98a24e0214a301805e1d0e3bafc45a9fe 100644 (file)
       <groupId>org.codehaus.redback</groupId>
       <artifactId>redback-common-integrations</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.redback</groupId>
+      <artifactId>redback-xmlrpc-services</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.redback</groupId>
+      <artifactId>redback-xmlrpc-security</artifactId>
+      <scope>runtime</scope>
+    </dependency>
     <!-- Other dependencies -->
     <dependency>
       <groupId>org.apache.archiva</groupId>
index 857c4d9ec06709b183013403f56bdb1e1ddf1e6f..6a2d98c394aae081ed095fd1e1dd6479f1b5d644 100644 (file)
     <constructor-arg ref="repositoryMerger#maven2"/>
     <constructor-arg ref="auditListener#logging"/>
     <constructor-arg ref="commons-configuration"/>
+  </bean>
+
+  <!-- Redback Web Services -->
+  <bean name="redbackRoleService" lazy-init="true" scope="singleton"
+        class="org.codehaus.redback.xmlrpc.service.RoleServiceImpl">
+    <constructor-arg ref="rBACManager#cached"/>
+    <constructor-arg ref="roleManager"/>
+  </bean>
+
+  <bean name="redbackOperationService" lazy-init="true" scope="singleton"
+        class="org.codehaus.redback.xmlrpc.service.OperationServiceImpl">
+    <constructor-arg ref="rBACManager#cached"/>
+  </bean>
+
+  <bean name="redbackPermissionService" lazy-init="true" scope="singleton"
+        class="org.codehaus.redback.xmlrpc.service.PermissionServiceImpl">
+    <constructor-arg ref="rBACManager#cached"/>
+  </bean>
+
+  <bean name="redbackResourceService" lazy-init="true" scope="singleton"
+        class="org.codehaus.redback.xmlrpc.service.ResourceServiceImpl">
+    <constructor-arg ref="rBACManager#cached"/>
+  </bean>
 
+  <bean name="redbackUserService" lazy-init="true" scope="singleton"
+        class="org.codehaus.redback.xmlrpc.service.UserServiceImpl">
+    <constructor-arg ref="userManager#cached"/>
   </bean>
 
   <bean name="xmlrpcServicesList" lazy-init="true" scope="singleton" class="java.util.ArrayList">
     <constructor-arg ref="userRepositories"/>
   </bean>
 
+  <bean name="redbackXmlrpcServicesList" class="java.util.ArrayList">
+    <constructor-arg>
+      <list>
+        <ref bean="redbackOperationService"/>
+        <ref bean="redbackPermissionService"/>
+        <ref bean="redbackResourceService"/>
+        <ref bean="redbackRoleService"/>
+        <ref bean="redbackUserService"/>
+      </list>
+    </constructor-arg>
+  </bean>
+
+  <bean name="redbackXmlRpcAuthenticator" class="org.codehaus.redback.xmlrpc.security.XmlRpcAuthenticator">
+    <constructor-arg ref="securitySystem"/>
+  </bean>
+
   <bean id="mailSession" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:comp/env/mail/Session">
     </property>
index 10ed5aaaf0399b8bbd6355dbc6b2dc4f59b65734..7d24f88c0840deaad3f5138f3320701fc73cbd7e 100644 (file)
                <load-on-startup>1</load-on-startup>
        </servlet>
 
+        <servlet>
+          <servlet-name>RedbackXmlRpcServlet</servlet-name>
+          <servlet-class>com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet</servlet-class>
+          <init-param>
+            <param-name>serviceListBeanName</param-name>
+            <param-value>redbackXmlrpcServicesList</param-value>
+          </init-param>
+          <init-param>
+            <param-name>authHandlerBeanName</param-name>
+            <param-value>redbackXmlRpcAuthenticator</param-value>
+          </init-param>
+          <init-param>
+            <param-name>enabledForExtensions</param-name>
+            <param-value>true</param-value>
+          </init-param>
+        </servlet>
+
        <servlet>
                <servlet-name>RssFeedServlet</servlet-name>
                <servlet-class>
                <url-pattern>/xmlrpc</url-pattern>
        </servlet-mapping>
 
+        <servlet-mapping>
+          <servlet-name>RedbackXmlRpcServlet</servlet-name>
+          <url-pattern>/redback-xmlrpc</url-pattern>
+        </servlet-mapping>
+
        <resource-ref>
                <res-ref-name>jdbc/users</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
diff --git a/pom.xml b/pom.xml
index 427460719a0f68f76e5dbbd7cbb39dc58cfe2978..f944fb2888184b2839204215bc988808d99b1f44 100644 (file)
--- a/pom.xml
+++ b/pom.xml
           </exclusion>
         </exclusions>
       </dependency>
+      <dependency>
+        <groupId>org.codehaus.redback</groupId>
+        <artifactId>redback-xmlrpc-services</artifactId>
+        <version>${redback.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.redback</groupId>
+        <artifactId>redback-xmlrpc-security</artifactId>
+        <version>${redback.version}</version>
+      </dependency>
 
       <!-- redback -->