Wednesday, July 13, 2016

WSO2 ESB API to create user in WSO2 IS RemoteUserStoreManagerService

The below sample expalains how to create a user in WSO2 IS with multiple claims using WSO2 ESB API.

The sample ESB API:

<api xmlns="http://ws.apache.org/ns/synapse" name="AdminServiceCall" context="/v8">
   <resource methods="POST" url-mapping="/addUser3" protocol="http">
      <inSequence>
         <log level="custom">
            <property name="STATUS" value="---------------------------AdminServiceCall IN Invoked------------"/>
         </log>
         <payloadFactory media-type="xml">
            <format>
               <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://common.mgt.user.carbon.wso2.org/xsd" xmlns:ser="http://service.ws.um.carbon.wso2.org">
                  <soapenv:Header/>
                  <soapenv:Body>
                     <ser:addUser>
                        <ser:userName>$1</ser:userName>
                        <ser:credential>$2</ser:credential>
                        <ser:roleList>$3</ser:roleList>
                        <ser:claims>
                           <xsd:claimURI>$4</xsd:claimURI>
                           <xsd:value>$5</xsd:value>
                        </ser:claims>
                        <ser:claims>
                           <xsd:claimURI>$6</xsd:claimURI>
                           <xsd:value>$7</xsd:value>
                        </ser:claims>
                        <ser:claims>
                           <xsd:claimURI>$8</xsd:claimURI>
                           <xsd:value>$9</xsd:value>
                        </ser:claims>
                        <ser:claims>
                           <xsd:claimURI>$10</xsd:claimURI>
                           <xsd:value>$11</xsd:value>
                        </ser:claims>
                        <ser:profileName>$12</ser:profileName>
                        <ser:requirePasswordChange>false</ser:requirePasswordChange>
                     </ser:addUser>
                  </soapenv:Body>
               </soapenv:Envelope>
            </format>
            <args>
               <arg evaluator="json" expression="$.userName"/>
               <arg evaluator="json" expression="$.password"/>
               <arg evaluator="json" expression="$.roles"/>
               <arg evaluator="json" expression="$.claims.claimURIAddress"/>
               <arg evaluator="json" expression="$.claims.claimValueAddress"/>
               <arg evaluator="json" expression="$.claims.claimURICountry"/>
               <arg evaluator="json" expression="$.claims.claimURIValueCountry"/>
               <arg evaluator="json" expression="$.claims.claimURIName"/>
               <arg evaluator="json" expression="$.claims.claimURIValueName"/>
               <arg evaluator="json" expression="$.claims.claimURIEmail"/>
               <arg evaluator="json" expression="$.claims.claimValueEmail"/>
               <arg evaluator="json" expression="$.profileName"/>
            </args>
         </payloadFactory>
         <property xmlns:ns="http://org.apache.synapse/xsd" name="Authorization" expression="fn:concat('Basic ', base64Encode('admin:admin'))" scope="transport"/>
         <send>
            <endpoint>
               <address uri="https://localhost:9446/services/RemoteUserStoreManagerService" trace="disable" format="soap12"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <log level="custom">
            <property name="STATUS" value="---------------------------AdminServiceCall Out Sequence Invoked------------"/>
         </log>
         <send/>
      </outSequence>
   </resource>
</api>  

Sample Request:
{
    "userName": "ajanthan_15",
    "password": "batticaloa",
    "roles": "Internal/everyone",
    "claims": {
        "claimURIAddress": "http://wso2.org/claims/streetaddress",
        "claimValueAddress": "15 Colombo Srilanka",
        "claimURICountry": "http://wso2.org/claims/country",
        "claimURIValueCountry": "Srilanka",
        "claimURIName": "http://wso2.org/claims/displayName",
        "claimURIValueName": "Ajanthan",
        "claimURIEmail": "http://wso2.org/claims/emailaddress",
        "claimValueEmail": "aja00@yahoo.com"
    },
    "profileName": "default"
}

No comments:

Post a Comment