Hi IAM Team, The UserStoreConfigAdminService has been documented in [1]. I have also added a tip under the addUserStore operation that links off to the relevant docs for a full list of properties including optional properties for each user store type.
However, the sample request given under the addUserStore() operation [2] only includes mandatory parameters which will not work as mentioned by Dilini and Godwin. Can we please have a working sample request that we can add to the doc? Which optional parameters need to be included in the request for it to work as expected? Please advise. [1] https://docs.wso2.com/display/IS5xx/Managing+User+Stores+with+APIs [2] https://docs.wso2.com/display/IS5xx/Managing+User+Stores+with+APIs#ManagingUserStoreswithAPIs-addUserStore() Thanks, Sherene On Thu, Dec 21, 2017 at 9:18 AM, Dilini Gunatilake <[email protected]> wrote: > Hi Tharindu/Godwin, > > I already checked the config file. The default regex were not added. > Following are the only configs available in the file (which are the ones I > configured). > > <?xml version="1.0" encoding="UTF-8"?><UserStoreManager > class="org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager"> > <Property name="url">jdbc:mysql://localhost:3306/is520user</ > Property> > <Property name="userName">wso2carbon</Property> > <Property encrypted="true" name="password">A1yNIeGmb1QZHDIk09yOyx/+ > PWDPNRfOk6tCiCnQWzhFiXFaVu5dSWfqah7AElOdKqjgl0BOFdk4sXRGtjdP > M3t8bODe9KzKrA3EJJ2mP16zbOah8JhFMJJDWOw0wkBy4TSnl7GBrGJMzQTazzYaxN/+ > nVpF25nbq1p7TzNytOJxagNMRjwnhgl08lFPNKs1VCJ1D4spQ4zjLp5oJBft > dzMdi5wPo8tdNWu/oRRPZjz4Y/mWy4cE7hHZlPul3kYzm1BP2kWX/ > rsUgRdaKeSKaQwqNVOOsZxCgWTCanUMmZKvHOxehVe3BypebciR58RQH5Vyk > 6l+JCrXNvBN1OBOoA==</Property> > <Property name="driverName">com.mysql.jdbc.Driver</Property> > <Property name="CountRetrieverClass">org.wso2.carbon.identity.user. > store.count.jdbc.JDBCUserStoreCountRetriever</Property> > <Property name="DomainName">PRIMARY-JDBC780-ATTRIBUTE-STORE</ > Property> > <Property name="Description">created with admin services</Property> > </UserStoreManager> > > > @Godwin - +1 for the approach. > > Thanks, > Dilini > > > On Wed, Dec 20, 2017 at 11:25 PM, Tharindu Edirisinghe <[email protected] > > wrote: > >> Hi Dilini, >> >> After adding the secondary userstore, you can find the config file >> related to that in *repository/deployment/server/userstores/* location. >> Although you have not added the regex parameters when you created the >> userstore from the admin service, I believe it should have added some >> default regex there. You need to check the following two properties in the >> file. >> >> >> >> *PasswordJavaRegExPasswordJavaScriptRegEx* >> >> You can find more information on the password pattern validation from [1]. >> >> [1] http://tharindue.blogspot.com/2016/08/user-password-pattern- >> regex-front-end.html >> >> Thanks, >> TharinduE >> >> On Wed, Dec 20, 2017 at 11:46 AM, Godwin Shrimal <[email protected]> wrote: >> >>> Hi Dilini, >>> >>> Please see my comments. >>> >>> >>> I think it makes sense to populate additional parameters in UI when >>>>>> adding user store from the management console. >>>>>> >>>>> Yes, this is handled correctly from the management console side as >>>>>> expected. >>>>>> >>>>>> >>>>>>> Yeah, when adding user store via admin services its bit hard to add >>>>>>> those number of optional parameters. So I propose following solutions. >>>>>>> >>>>>>> 1. Improve our documentation and describe required optional >>>>>>> parameters and add a sample request with optional parameters >>>>>>> >>>>>> In this case, every time the optional properties are changed the doc >>>>>> needs to be updated and the developer needs to update the request too. >>>>>> >>>>> I don't think optional parameters are changing frequently, it is >>>>> something changing rearely when we need to introudce some feature to >>>>> perticluar user store. And if optional parameters added newly, existing >>>>> request should work as expected without breaking and not MUST to add that >>>>> parameters to request. >>>>> >>>> But, in this case it is a must to add the optional parameters in the >>>> request which is wrong. This hinders the usability aspect from the user >>>> perspective. So, IMO we should document the full request as well as handle >>>> it as per solution 2. >>>> >>> >>> As an API its not wrong not to send optional parameters, But yes. Its >>> not working as expected if we not send them. Yes, we need to fully document >>> the request with optional parameters as suggested in solution1 as an >>> imidiate step. We may need implement the solution 2 in future. Lets wait >>> and see the feedback from IAM team. >>> >>> >>> Thanks >>> Godwin >>> >>> >>> >>>> >>>>> >>>>>>> 2. Change backend to add default parameters (same as what we do in >>>>>>> UI) if user is not sending additional parameters in request >>>>>>> >>>>>> +1 for this solution. Here, the developer does not need to worry >>>>>> about the 100 odd optional parameters at all. If he needs to change few >>>>>> parameters, he can change only the required ones. >>>>>> >>>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> Godwin >>>>>>> >>>>>>> On Wed, Dec 20, 2017 at 5:00 PM, Dilini Gunatilake <[email protected] >>>>>>> > wrote: >>>>>>> >>>>>>>> Hi IAM Team, >>>>>>>> >>>>>>>> I need to create a JDBC secondary user store via admin services and >>>>>>>> I configured only the mandatory parameters and sent the request. The >>>>>>>> request was successful and the user store was created. However, when I >>>>>>>> tried to add a user to that user store, it says the password length is >>>>>>>> invalid and did not let me create a user. >>>>>>>> >>>>>>>> Request: >>>>>>>> >>>>>>>> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >>>>>>>> xmlns:xsd="http://org.apache.axis2/xsd" >>>>>>>> xmlns:xsd1="http://dto.configuration.store.user.identity.carbon.wso2.org/xsd"> >>>>>>>> <soap:Header/> >>>>>>>> <soap:Body> >>>>>>>> <xsd:addUserStore> >>>>>>>> <!--Optional:--> >>>>>>>> <xsd:userStoreDTO> >>>>>>>> <!--Optional:--> >>>>>>>> >>>>>>>> <xsd1:className>org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager</xsd1:className> >>>>>>>> <!--Optional:--> >>>>>>>> <xsd1:description>created with admin >>>>>>>> services</xsd1:description> >>>>>>>> <!--Optional:--> >>>>>>>> <xsd1:disabled>false</xsd1:disabled> >>>>>>>> <!--Optional:--> >>>>>>>> >>>>>>>> <xsd1:domainId>PRIMARY-JDBC780-ATTRIBUTE-STORE</xsd1:domainId> >>>>>>>> <!--Zero or more repetitions:--> >>>>>>>> <xsd1:properties> >>>>>>>> <xsd1:name>url</xsd1:name> >>>>>>>> >>>>>>>> <xsd1:value>jdbc:mysql://localhost:3306/is520user</xsd1:value> >>>>>>>> </xsd1:properties> >>>>>>>> <xsd1:properties> >>>>>>>> <xsd1:name>userName</xsd1:name> >>>>>>>> <xsd1:value>wso2carbonxxx</xsd1:value> >>>>>>>> </xsd1:properties> >>>>>>>> <xsd1:properties> >>>>>>>> <xsd1:name>password</xsd1:name> >>>>>>>> <xsd1:value>wso2carbonxxx</xsd1:value> >>>>>>>> </xsd1:properties> >>>>>>>> <xsd1:properties> >>>>>>>> <xsd1:name>driverName</xsd1:name> >>>>>>>> <xsd1:value>com.mysql.jdbc.Driver</xsd1:value> >>>>>>>> </xsd1:properties> >>>>>>>> <xsd1:properties> >>>>>>>> <xsd1:name>CountRetrieverClass</xsd1:name> >>>>>>>> >>>>>>>> <xsd1:value>org.wso2.carbon.identity.user.store.count.jdbc.JDBCUserStoreCountRetriever</xsd1:value> >>>>>>>> </xsd1:properties> >>>>>>>> </xsd:userStoreDTO> >>>>>>>> </xsd:addUserStore> >>>>>>>> </soap:Body> >>>>>>>> </soap:Envelope> >>>>>>>> >>>>>>>> >>>>>>>> This may be because I haven't configured the optional parameters >>>>>>>> such as username/password regex etc. in the request. But, IMO the >>>>>>>> request >>>>>>>> should work successfully with only mandatory parameters. >>>>>>>> >>>>>>>> If I do the same via management console, the additional parameters >>>>>>>> will be populated in the UI and saved in the xml when we save the >>>>>>>> configuration. >>>>>>>> >>>>>>>> If a developer needs to create a user store via admin services, how >>>>>>>> can the developer achieve this? If the developer needs to configure >>>>>>>> optional parameters, there are around 100 parameters. What are the must >>>>>>>> have additional parameters the user needs to configure or what is the >>>>>>>> best >>>>>>>> way to handle this? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Dilini >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> *Dilini GunatilakeSoftware Engineer - QA Team* >>>>>>>> Mobile : +94771162518 <+94%2077%20116%202518> >>>>>>>> [email protected] >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Godwin Amila Shrimal* >>>>>>> Associate Technical Lead >>>>>>> WSO2 Inc.; http://wso2.com >>>>>>> lean.enterprise.middleware >>>>>>> >>>>>>> mobile: *+94772264165* >>>>>>> linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/ >>>>>>> <https://www.linkedin.com/in/godwin-amila-2ba26844/>* >>>>>>> twitter: https://twitter.com/godwinamila >>>>>>> <http://wso2.com/signature> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> *Dilini GunatilakeSoftware Engineer - QA Team* >>>>>> Mobile : +94771162518 <+94%2077%20116%202518> >>>>>> [email protected] >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Godwin Amila Shrimal* >>>>> Associate Technical Lead >>>>> WSO2 Inc.; http://wso2.com >>>>> lean.enterprise.middleware >>>>> >>>>> mobile: *+94772264165* >>>>> linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/ >>>>> <https://www.linkedin.com/in/godwin-amila-2ba26844/>* >>>>> twitter: https://twitter.com/godwinamila >>>>> <http://wso2.com/signature> >>>>> >>>> >>>> >>>> >>>> -- >>>> >>>> *Dilini GunatilakeSoftware Engineer - QA Team* >>>> Mobile : +94771162518 <+94%2077%20116%202518> >>>> [email protected] >>>> >>>> >>>> >>> >>> >>> -- >>> *Godwin Amila Shrimal* >>> Associate Technical Lead >>> WSO2 Inc.; http://wso2.com >>> lean.enterprise.middleware >>> >>> mobile: *+94772264165* >>> linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/ >>> <https://www.linkedin.com/in/godwin-amila-2ba26844/>* >>> twitter: https://twitter.com/godwinamila >>> <http://wso2.com/signature> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> >> Tharindu Edirisinghe >> Senior Software Engineer | WSO2 Inc >> Platform Security Team >> Blog : http://tharindue.blogspot.com >> mobile : +94 775181586 <+94%2077%20518%201586> >> > > > > -- > > *Dilini GunatilakeSoftware Engineer - QA Team* > Mobile : +94771162518 <+94%2077%20116%202518> > [email protected] > > > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- Sherene Mahanama Technical Writer WSO2 (pvt.) Ltd. Colombo, Sri Lanka Mobile: (+94) 777 <%28%2B94%29%20773131798> *994805*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
