Workflow Name: amset12createuser#

Constituent Services: AuthenticationService, AdministrationService, InitCreateUserWS, DateTimeWS#

Technical Notes#

Platform: GlassFishESB V2.1, NetBeans IDE 6.5.1 (including BPEL Designer, implementing WS-BPEL 2.0)
Java: 1.6.0_12; Java HotSpot(TM) Client VM 11.0-b15
System: Windows XP version 5.1 running on x86; Cp1252; en_GB (nb).

Alfresco Labs 3.1 Final running on remote server, 64-bit Java 1.6.0_13, Tomcat 6 on Red Hat Enterprise Linux 5.

Workflow Description#

User provisioning in Alfresco is dealt with by the AdministrationService. The WSDL-generated AdministrationService.createUsers() SOAP request (Code snippet 12.1) specifies only the username and password. Other user properties are submitted as an array of name-value pair properties.

Code snippet 12.1. Generated AdministrationService.createUsers() SOAP request.

      
<adm:createUsers>
  <adm:newUsers>
    <adm:userName></adm:userName>
    <adm:password></adm:password>
    <adm:properties>
      <ns:name></ns:name>
      <ns:isMultiValue></ns:isMultiValue>
      <ns:value></ns:value>
      <ns:values></ns:values>
    </adm:properties>
  </adm:newUsers>
</adm:createUsers>

The property options can be seen by looking at org.alfresco.webservice.utils.Constant.java in the source code.

Code snippet 12.2. User-related constants from Constants.java.

public static final String NAMESPACE_CONTENT_MODEL  = "http://www.alfresco.org/model/content/1.0";


public static final String PROP_USERNAME =          createQNameString(NAMESPACE_CONTENT_MODEL, "userName");
public static final String PROP_USER_HOMEFOLDER =   createQNameString(NAMESPACE_CONTENT_MODEL, "homeFolder");
public static final String PROP_USER_FIRSTNAME =    createQNameString(NAMESPACE_CONTENT_MODEL, "firstName");
public static final String PROP_USER_MIDDLENAME =   createQNameString(NAMESPACE_CONTENT_MODEL, "middleName");
public static final String PROP_USER_LASTNAME =     createQNameString(NAMESPACE_CONTENT_MODEL, "lastName");
public static final String PROP_USER_EMAIL =        createQNameString(NAMESPACE_CONTENT_MODEL, "email");
public static final String PROP_USER_ORGID =        createQNameString(NAMESPACE_CONTENT_MODEL, "organizationId");

Code snippet 12.3. createUsers element.

<adm:newUsers>
  <adm:userName>magneto</adm:userName>
  <adm:password>magnetopw</adm:password>
  <adm:properties>
    <ns:name>{http://www.alfresco.org/model/content/1.0}email</ns:name>
    <ns:isMultiValue>false</ns:isMultiValue>
    <ns:value>magneto@badmutants.com</ns:value>
    <ns:values></ns:values>
  </adm:properties>
</adm:newUsers>

Input/Output#

Code snippet 12.4. AdministrationService.createUsers() SOAP request.

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header>
        <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                <wsu:Created>2009-08-29T01:15:32.93+00:00</wsu:Created>
                <wsu:Expires>2009-08-29T01:19:32.00+00:00</wsu:Expires>
            </wsu:Timestamp>
            <UsernameToken>
                <Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">TICKET_3330d4ddff3693a3a2d94f2ca389c7a849e21662</Password>
                <Username>admin</Username>
            </UsernameToken>
        </Security>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <createUsers
            xmlns="http://www.alfresco.org/ws/service/administration/1.0" xmlns:msgns="http://www.alfresco.org/ws/service/administration/1.0">
            <msgns:newUsers>
                <msgns:userName>magneto</msgns:userName>
                <msgns:password>magnetopw</msgns:password>
                <ns0:properties
                    xmlns:adm="http://xml.netbeans.org/schema/administration"
                    xmlns:init="http://j2ee.netbeans.org/wsdl/amset12createuser/InitCreateUserWS"
                    xmlns:msgns="http://j2ee.netbeans.org/wsdl/amset12createuser/InitCreateUserWS"
                    xmlns:ns="http://www.alfresco.org/ws/model/content/1.0" xmlns:ns0="http://www.alfresco.org/ws/service/administration/1.0">
                    <ns:name>{http://www.alfresco.org/model/content/1.0}email</ns:name>
                    <ns:isMultiValue>false</ns:isMultiValue>
                    <ns:value>magneto@badmutants.com</ns:value>
                    <ns:values/>
                </ns0:properties>
            </msgns:newUsers>
        </createUsers>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Code snippet 12.5. AdministrationService.createUsers() SOAP response.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <createUsersResponse xmlns="http://www.alfresco.org/ws/service/administration/1.0">
            <result>
                <userName>magneto</userName>
                <properties>
                    <ns1:name xmlns:ns1="http://www.alfresco.org/ws/model/content/1.0">{http://www.alfresco.org/model/content/1.0}name</ns1:name>
                    <ns2:isMultiValue xmlns:ns2="http://www.alfresco.org/ws/model/content/1.0">false</ns2:isMultiValue>
                    <ns3:value xmlns:ns3="http://www.alfresco.org/ws/model/content/1.0">0c6db7c2-fd31-48bc-9cf3-3c7af1b5214c</ns3:value>
                </properties>
                <properties>
                    <ns4:name xmlns:ns4="http://www.alfresco.org/ws/model/content/1.0">{http://www.alfresco.org/model/content/1.0}email</ns4:name>
                    <ns5:isMultiValue xmlns:ns5="http://www.alfresco.org/ws/model/content/1.0">false</ns5:isMultiValue>
                    <ns6:value xmlns:ns6="http://www.alfresco.org/ws/model/content/1.0">magneto@badmutants.com</ns6:value>
                </properties>
                <properties>
                    <ns7:name xmlns:ns7="http://www.alfresco.org/ws/model/content/1.0">{http://www.alfresco.org/model/system/1.0}node-dbid</ns7:name>
                    <ns8:isMultiValue xmlns:ns8="http://www.alfresco.org/ws/model/content/1.0">false</ns8:isMultiValue>
                    <ns9:value xmlns:ns9="http://www.alfresco.org/ws/model/content/1.0">537</ns9:value>
                </properties>
                <properties>
                    <ns10:name xmlns:ns10="http://www.alfresco.org/ws/model/content/1.0">{http://www.alfresco.org/model/content/1.0}sizeCurrent</ns10:name>
                    <ns11:isMultiValue xmlns:ns11="http://www.alfresco.org/ws/model/content/1.0">false</ns11:isMultiValue>
                    <ns12:value xmlns:ns12="http://www.alfresco.org/ws/model/content/1.0">0</ns12:value>
                </properties>
                <properties>
                    <ns13:name xmlns:ns13="http://www.alfresco.org/ws/model/content/1.0">{http://www.alfresco.org/model/content/1.0}userName</ns13:name>
                    <ns14:isMultiValue xmlns:ns14="http://www.alfresco.org/ws/model/content/1.0">false</ns14:isMultiValue>
                    <ns15:value xmlns:ns15="http://www.alfresco.org/ws/model/content/1.0">magneto</ns15:value>
                </properties>
                <properties>
                    <ns16:name xmlns:ns16="http://www.alfresco.org/ws/model/content/1.0">{http://www.alfresco.org/model/content/1.0}homeFolder</ns16:name>
                    <ns17:isMultiValue xmlns:ns17="http://www.alfresco.org/ws/model/content/1.0">false</ns17:isMultiValue>
                    <ns18:value xmlns:ns18="http://www.alfresco.org/ws/model/content/1.0">workspace://SpacesStore/7044de04-0334-4504-881e-0f82c5818e33</ns18:value>
                </properties>
            </result>
        </createUsersResponse>
    </soapenv:Body>
</soapenv:Envelope>

Note the various bits of info you get back on creating a user.


Figure 12.1. Magneto appears.


An example is given below of creating a user with several properties.

Code snippet 12.6. Multiple properties SOAP request.

<soapenv:Envelope xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:init="http://j2ee.netbeans.org/wsdl/amset12createuser/InitCreateUserWS" xmlns:adm="http://xml.netbeans.org/schema/administration" xmlns:ns="http://www.alfresco.org/ws/model/content/1.0">
  <soapenv:Body>
    <init:InitCreateUserWSOperation>
      <username>admin</username>
      <password>adminPassword</password>
      <createUsers>
        <adm:createUsers>
          <adm:newUsers>
            <adm:userName>hawkman</adm:userName>
            <adm:password>hawkmanpw</adm:password>
            <adm:properties>
              <ns:name>{http://www.alfresco.org/model/content/1.0}email</ns:name>
              <ns:isMultiValue>false</ns:isMultiValue>
              <ns:value>hawkman@thanagar.com</ns:value>
              <ns:values></ns:values>
            </adm:properties>
            <adm:properties>
              <ns:name>{http://www.alfresco.org/model/content/1.0}firstName</ns:name>
              <ns:isMultiValue>false</ns:isMultiValue>
              <ns:value>carter</ns:value>
              <ns:values></ns:values>
            </adm:properties>
            <adm:properties>
              <ns:name>{http://www.alfresco.org/model/content/1.0}lastName</ns:name>
              <ns:isMultiValue>false</ns:isMultiValue>
              <ns:value>hall</ns:value>
              <ns:values></ns:values>
            </adm:properties>
          </adm:newUsers>
        </adm:createUsers>
      </createUsers>
    </init:InitCreateUserWSOperation>
  </soapenv:Body>
</soapenv:Envelope>

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
png
magneto.png 14.5 kB 1 29-Aug-2009 02:13 clayton
« This page (revision-) was last changed on 06-Sep-2009 13:40 by clayton