import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.apache.log4j.Logger;
public class BootstrapAuthorityCreator {
private AuthorityService authorityService;
private PersonService personService;
private TransactionService transactionService;
private AuthenticationService authenticationService;
private UserTransaction tx;
private static Logger logger = Logger.getLogger(BootstrapAuthorityCreator.class);
public void init() throws Exception {
String salesGroup;
String marketingGroup;
tx = transactionService.getUserTransaction();
tx.begin();
// create tuser1, tuser2, tuser3, tuser4
if(!authenticationService.authenticationExists("tuser1")) {
authenticationService.createAuthentication("tuser1", "password".toCharArray());
if (logger.isDebugEnabled()) logger.debug("Created tuser1 auth");
}
if (!personService.personExists("tuser1")) {
personService.createPerson(createDefaultProperties("tuser1", "Test", "User1", "tuser1@localhost", "password"));
if (logger.isDebugEnabled()) logger.debug("Created tuser1 person");
}
if(!authenticationService.authenticationExists("tuser2")) {
authenticationService.createAuthentication("tuser2", "password".toCharArray());
if (logger.isDebugEnabled()) logger.debug("Created tuser2 auth");
}
if (!personService.personExists("tuser2")) {
personService.createPerson(createDefaultProperties("tuser2", "Test", "User2", "tuser2@localhost", "password"));
if (logger.isDebugEnabled()) logger.debug("Created tuser2 person");
}
if(!authenticationService.authenticationExists("tuser3")) {
authenticationService.createAuthentication("tuser3", "password".toCharArray());
if (logger.isDebugEnabled()) logger.debug("Created tuser3 auth");
}
if (!personService.personExists("tuser3")) {
personService.createPerson(createDefaultProperties("tuser3", "Test", "User3", "tuser3@localhost", "password"));
if (logger.isDebugEnabled()) logger.debug("Created tuser3 person");
}
if(!authenticationService.authenticationExists("tuser4")) {
authenticationService.createAuthentication("tuser4", "password".toCharArray());
if (logger.isDebugEnabled()) logger.debug("Created tuser4 auth");
}
if (!personService.personExists("tuser4")) {
personService.createPerson(createDefaultProperties("tuser4", "Test", "User4", "tuser4@localhost", "password"));
if (logger.isDebugEnabled()) logger.debug("Created tuser4 person");
}
if (authorityService.authorityExists(authorityService.getName(AuthorityType.GROUP, "sales"))) {
salesGroup = authorityService.getName(AuthorityType.GROUP, "sales");
} else {
// create the sales group
salesGroup = authorityService.createAuthority(AuthorityType.GROUP, null, "sales");
}
//add tuser1 and tuser2 to the sales group
authorityService.addAuthority(salesGroup, "tuser1");
authorityService.addAuthority(salesGroup, "tuser2");
if (authorityService.authorityExists(authorityService.getName(AuthorityType.GROUP, "marketing"))) {
marketingGroup = authorityService.getName(AuthorityType.GROUP, "marketing");
} else {
// create the marketing group
marketingGroup = authorityService.createAuthority(AuthorityType.GROUP, null, "marketing");
}
//add tuser3 and tuser4 to the marketing group
authorityService.addAuthority(marketingGroup, "tuser3");
authorityService.addAuthority(marketingGroup, "tuser4");
tx.commit();
}
private Map<QName, Serializable> createDefaultProperties(String userName, String firstName, String lastName,
String email, String password) {
HashMap<QName, Serializable> properties = new HashMap<QName, Serializable>();
properties.put(ContentModel.PROP_USERNAME, userName);
properties.put(ContentModel.PROP_FIRSTNAME, firstName);
properties.put(ContentModel.PROP_LASTNAME, lastName);
properties.put(ContentModel.PROP_EMAIL, email);
properties.put(ContentModel.PROP_PASSWORD, password);
return properties;
}
public void setAuthorityService(AuthorityService authorityService) {
this.authorityService = authorityService;
}
public void setPersonService(PersonService personService) {
this.personService = personService;
}
public void setTransactionService(TransactionService transactionService) {
this.transactionService = transactionService;
}
public void setAuthenticationService(AuthenticationService authenticationService) {
this.authenticationService = authenticationService;
}
}
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!– A simple class that is initialized by Spring –>
<bean id="sdk.createUsers.createUsersBean" class="org.alfresco.module.sdkcreateusers.BootstrapAuthorityCreator" init-method="init">
<property name="personService">
<ref bean="personService" />
</property>
<property name="authorityService">
<ref bean="authorityService" />
</property>
<property name="transactionService">
<ref bean="transactionService" />
</property>
<property name="authenticationService">
<ref bean="authenticationService" />
</property>
</bean>
</beans>
(…)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sdk.createUsers.createUsersBean' defined in file [/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/module/sdkCreateUsers/module-context.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
Caused by: java.lang.NullPointerException
at org.alfresco.repo.search.IndexerComponent.createNode(IndexerComponent.java:72)
at org.alfresco.repo.node.index.NodeIndexer.indexCreateNode(NodeIndexer.java:91)
at org.alfresco.repo.node.db.DbNodeServiceImpl.createNode(DbNodeServiceImpl.java:345)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.alfresco.repo.transaction.SingleEntryTransactionResourceInterceptor.invokeInternal(SingleEntryTransactionResourceInterceptor.java:163)
at org.alfresco.repo.transaction.SingleEntryTransactionResourceInterceptor.invoke(SingleEntryTransactionResourceInterceptor.java:138)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNode(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.alfresco.repo.tenant.MultiTNodeServiceInterceptor.invoke(MultiTNodeServiceInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNode(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.alfresco.repo.service.StoreRedirectorProxyFactory$RedirectorInvocationHandler.invoke(StoreRedirectorProxyFactory.java:221)
at $Proxy10.createNode(Unknown Source)
at org.alfresco.repo.node.MLPropertyInterceptor.invoke(MLPropertyInterceptor.java:279)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.alfresco.repo.node.NodeRefPropertyMethodInterceptor.invoke(NodeRefPropertyMethodInterceptor.java:188)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.alfresco.repo.node.NodeRefPropertyMethodInterceptor.invoke(NodeRefPropertyMethodInterceptor.java:188)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNode(Unknown Source)
at org.alfresco.repo.security.authentication.RepositoryAuthenticationDao.createUser(RepositoryAuthenticationDao.java:254)
at org.alfresco.repo.security.authentication.AuthenticationServiceImpl.createAuthentication(AuthenticationServiceImpl.java:82)
at org.alfresco.repo.security.authentication.AbstractChainingAuthenticationService.createAuthentication(AbstractChainingAuthenticationService.java:76)
at org.alfresco.module.sdkcreateusers.BootstrapAuthorityCreator.init(BootstrapAuthorityCreator.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:69)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
15:50:19,065 INFO [org.alfresco.web.site.FrameworkHelper] Successfully Initialized Web Framework
(…)
<?xml version="1.0"?>
<project name="SDK Create Users AMP Project" default="package-amp" basedir=".">
<property name="project.dir" value="."/>
<property name="build.dir" value="${project.dir}/build"/>
<property name="config.dir" value="${project.dir}/config"/>
<property name="jar.file" value="${build.dir}/lib/alfresco-sdk-create-users.jar"/>
<property name="amp.file" value="${build.dir}/dist/alfresco-sdk-create-users.amp"/>
<target name="mkdirs">
<mkdir dir="${build.dir}/dist" />
<mkdir dir="${build.dir}/lib" />
</target>
<path id="class.path">
<dirset dir="${build.dir}" />
<fileset dir="../../lib/server" includes="**/*.jar"/>
</path>
<target name="compile">
<mkdir dir="${build.dir}/classes" />
<javac classpathref="class.path" srcdir="${project.dir}/source/java" destdir="${build.dir}/classes" />
</target>
<target name="package-jar" depends="compile">
<jar destfile="${jar.file}" >
<fileset dir="${build.dir}/classes" excludes="**/custom*,**/*Test*" includes="**/*.class" />
</jar>
</target>
<target name="package-amp" depends="mkdirs, package-jar" description="Package the Module" >
<zip destfile="${amp.file}" >
<fileset dir="${project.dir}/build" includes="lib/*.jar" />
<fileset dir="${project.dir}" includes="config/**/*.*" excludes="**/module.properties" />
<fileset dir="${project.dir}/config/alfresco/module/sdkCreateUsers" includes="module.properties" />
</zip>
</target>
<target name="update-war" depends="package-amp" description="Update the WAR file. Set -Dwar.file=…" >
<echo>Installing SDK Create Users AMP into WAR</echo>
<java dir="." fork="true" classname="org.alfresco.repo.module.tool.ModuleManagementTool">
<classpath refid="class.path" />
<arg line="install ${amp.file} ${war.file} -force -verbose"/>
</java>
</target>
</project>
Estoy usando Eclipse para crear alfresco-sdk-create-users.amp (Run As -> Ant Build).java -jar ../bin/alfresco-mmt.jar install alfresco-sdk-create-users.amp ../tomcat/webapps/alfresco.war
Para confirmar la instalacion del .amp:java -jar ../bin/alfresco-mmt.jar list ../tomcat/webapps/alfresco.war
Respuesta:
Module 'sdkCreateUsers' installed in '../tomcat/webapps/alfresco.war'
- Title: SDK Create Users AMP Project
- Version: 1.0
- Install Date: Wed Jul 29 10:51:06 WEST 2009
- Desription: Create Users with an AMP Project
Muchas gracias de nuevo!Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.