Hi Asantha,

We might not need implementing the HybridRoleManager... I'll provide you
the exact details after trying out the functionality you have implemented
up to now.

Can you please write a basic document with the steps for creating the
mongodb database and adding a userstore in IS pointing to the created
mongodb database and include in the ReadMe of github repo.

Also if mongodb server is running in a different port other than the
default port, can we still connect to that ? I didn't see a place to define
the port in the configuration.. should it be added as a connection string ?
(didn't go through the code to find what is going wrong)

Thanks,
TharinduE

On Sun, Jun 5, 2016 at 11:55 PM, Asantha Thilina <asanthathil...@gmail.com>
wrote:

> Hi Tharindu,
>
> As we discussed on hangout i doing the changes in UM_USER_ATTRIBUTE
> collection and also changing the hybrid role to master datasource but when
> i try to add user to hybrid role i facing a small issue i can't grab the
> datasource ,in HybridRoleManager class it need to give java.sql.DataSource
> but in my current user store manager class i have never used a sql
> datasource(since it nosql) so i think i need to grab the master datasource
> of IS which is h2 database datasource, is there a way to get the primary
> datasource?
>
> Thanks,
> Asantha
>
> On Sat, Jun 4, 2016 at 1:59 PM, Tharindu Edirisinghe <tharin...@wso2.com>
> wrote:
>
>> The call details are as following.
>>
>> 1. Demonstrated how to use WSO2 admin services.
>>
>> 2. All the user operations in *RemoteUserStoreManagerService *[1] should
>> be tested (using SOAP UI) for the mongodb userstore.
>>
>> 3. When the user profile is saved in a JDBC userstore, for each attribute
>> of the user, it will add a new entry in *UM_USER_ATTRIBUTE **(Refer [2]
>> for more information) *like below.
>>
>>
>> +-------+----------------------+-----------------+---------------+------------+--------------+
>> | UM_ID | UM_ATTR_NAME         | UM_ATTR_VALUE   | UM_PROFILE_ID |
>> UM_USER_ID | UM_TENANT_ID |
>>
>> +-------+----------------------+-----------------+---------------+------------+--------------+
>> |     1 | im                   |                 | default
>> |          1 |        -1234 |
>> |     2 | region               | Western         | default
>> |          1 |        -1234 |
>> |     3 | streetAddress        |                 | default
>> |          1 |        -1234 |
>> |     4 | country              |                 | default
>> |          1 |        -1234 |
>> |     5 | mobile               |                 | default
>> |          1 |        -1234 |
>> |     6 | sn                   | NewLastname     | default
>> |          1 |        -1234 |
>> |     7 | profileConfiguration | default         | default
>> |          1 |        -1234 |
>> |     8 | dateOfBirth          |                 | default
>> |          1 |        -1234 |
>> |     9 | mail                 | newu...@new.com | default
>> |          1 |        -1234 |
>> |    10 | organizationName     | WSO2            | default
>> |          1 |        -1234 |
>> |    11 | givenName            | NewUser         | default
>> |          1 |        -1234 |
>> |    12 | province             | western         | default
>> |          1 |        -1234 |
>>
>> +-------+----------------------+-----------------+---------------+------------+--------------+
>>
>> Performance wise this is not a good design. For mongodb userstore, I
>> suggested to add a new document in *UM_USER_ATTRIBUTE *collection for
>> each user. If the attribute value is empty in the profile, an empty string
>> can be stored.
>>
>> {
>>    "im": "",
>>    " region": "Western",
>>    "street": "Address",
>>    "country": "",
>>    "mobile": "",
>>    "sn": "NewLastname",
>>    "profileConfiguration": "default",
>>    "dateOfBirth": "",
>>    "mail": "newu...@new.com",
>>    "organizationName": "WSO2",
>>    "givenName": "NewUser",
>>    "province": "western"
>>
>> }
>>
>> 3. Profile saving is having some issues currently and we need to further
>> investigate what is going wrong. Until the issue is figured out, asked to
>> manually create json documents in *UM_USER_ATTRIBUTE *collection and
>> implement the retrieval of user attributes.
>>
>> *(can test getUserClaimValues method in the admin service using SOAP UI)*
>> 4. For the analytics part of the project, suggested to extend the 
>> *AbstractUserOperationEventListener
>> *class [1] and override the methods for publishing events.
>>
>> 5. Developer documentation, Administration Guide and Testing Guide *(sample
>> SOAP requests and responses in RemoteUserStoreManagerService API) *should
>> be written as deliverables. For all actions related to the mongodb
>> userstore manager *(i.e add user, delete user, add role ...) *, Selenium
>> scripts should be provided *(can use firefox selenium addon and record
>> each operation and provide the scripts)*.
>>
>> So far the progress is satisfactory. Keep on the good work !
>>
>> [1] https://localhost:9443/services/RemoteUserStoreManagerService?wsdl
>> [2]
>> http://tharindue.blogspot.com/2015/04/wso2-identity-server-data-dictionary.html
>> [3]
>> https://github.com/wso2/carbon-kernel/blob/v4.4.3/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/common/AbstractUserOperationEventListener.java
>>
>> Thank you,
>> TharinduE
>>
>> On Sat, Jun 4, 2016 at 9:48 AM, Asantha Thilina <asanthathil...@gmail.com
>> > wrote:
>>
>>> Hi Tharindu,
>>>
>>> ok sure i will look forward for that
>>>
>>> Thanks,
>>> Asantha
>>>
>>> On Fri, Jun 3, 2016 at 2:44 PM, Tharindu Edirisinghe <tharin...@wso2.com
>>> > wrote:
>>>
>>>> Hi Asantha,
>>>>
>>>> Shall we have a google hangout tomorrow (Saturday) at 9.00 p.m ? So we
>>>> can discuss about the issues you are facing and get them resolved.
>>>>
>>>> Regards,
>>>> TharinduE
>>>>
>>>> On Fri, Jun 3, 2016 at 11:43 PM, Asantha Thilina <
>>>> asanthathil...@gmail.com> wrote:
>>>>
>>>>> Hi Tharindu,
>>>>>
>>>>> i fixed the most of the errors appeared in my user store in user
>>>>> management side now it's almost done in user management side now i can add
>>>>> new users ,roles and search roles of users and users of roles only issue i
>>>>> having now is i can't update a user profile of user in user store i 
>>>>> getting
>>>>> a exception ,i want to get some advice from you to resolve that error and
>>>>> to implement a logic to commit transaction in mongodb and also another
>>>>> small problem is when i added a new claim where will it save in primary
>>>>> user store ? is there any feature to change the user store  where claims
>>>>> going to save. like it giving an option to select userstore in a dropdown
>>>>> when adding newusers and roles.
>>>>>
>>>>> all the works i have done so far in my repo[1]
>>>>>
>>>>> [1] . https://github.com/asanthamax/mongodbuserstore
>>>>>
>>>>> Thanks,
>>>>> Asantha
>>>>>
>>>>> On Wed, Jun 1, 2016 at 3:00 AM, Asantha Thilina <
>>>>> asanthathil...@gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: Asantha Thilina <asanthathil...@gmail.com>
>>>>>> Date: Wed, Jun 1, 2016 at 2:59 AM
>>>>>> Subject: Fwd: GSOC 2016 - Project 21 : MongoDB Userstore Development
>>>>>> To: WSO2 Developers' List <dev@wso2.org>, Tharindu Edirisinghe <
>>>>>> tharin...@wso2.com>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: Asantha Thilina <asanthathil...@gmail.com>
>>>>>> Date: Wed, Jun 1, 2016 at 2:51 AM
>>>>>> Subject: Re: GSOC 2016 - Project 21 : MongoDB Userstore Development
>>>>>> To: Tharindu Edirisinghe <tharin...@wso2.com>
>>>>>> Cc: WSO2 Developers' List <dev@wso2.org>, Lakmal Rupasinghe <
>>>>>> lakma...@sliit.lk>
>>>>>>
>>>>>>
>>>>>> Hi Tharindu,
>>>>>>
>>>>>> I fixed the most of the errors i got now my user store working it is
>>>>>> successfully registered and can add users and roles to user store as well
>>>>>> still there are some issues in other functions those are query errors i
>>>>>> still fixing those as well ,i having some issues  about database
>>>>>> transaction point of view and i need some advice from you, in mongodb 
>>>>>> there
>>>>>> is no option to rollback transaction if error occurred how can i manage 
>>>>>> it?
>>>>>> can we arrange a hangout meeting today or any comfortable day for you ? 
>>>>>> i'm
>>>>>> ok with any time
>>>>>> all the updates up to now i pushed to my repository[1]
>>>>>>
>>>>>> [1] https://github.com/asanthamax/mongodbuserstore
>>>>>>
>>>>>> Thanks,
>>>>>> Asantha
>>>>>>
>>>>>> On Fri, May 27, 2016 at 1:56 AM, Asantha Thilina <
>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>
>>>>>>> Hi Tharindu,
>>>>>>>
>>>>>>> sure i'll be look forward for that
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Asantha
>>>>>>>
>>>>>>> On Thu, May 26, 2016 at 9:37 PM, Tharindu Edirisinghe <
>>>>>>> tharin...@wso2.com> wrote:
>>>>>>>
>>>>>>>> Hi Asantha,
>>>>>>>>
>>>>>>>> Glad to hear the progress... Sure I'll review over the weekend and
>>>>>>>> provide feedback. By next week we'll have a hangout to discuss on how 
>>>>>>>> to
>>>>>>>> move forward and the difficulties you have faced.  Keep the momentum 
>>>>>>>> going !
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> TharinduE
>>>>>>>>
>>>>>>>> On Fri, May 27, 2016 at 12:17 AM, Asantha Thilina <
>>>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Tharindu,
>>>>>>>>>
>>>>>>>>> i been able to fix the mongodb user store intitalizing error now
>>>>>>>>> it working successfully it will be registered as a secondary user 
>>>>>>>>> store in
>>>>>>>>> IS and when going to add a new users and roles it will show the 
>>>>>>>>> domain of
>>>>>>>>> mongodb userstore still i having small issues in my json query 
>>>>>>>>> formats for
>>>>>>>>> mongodb i fixing those issues at the moment all the progress so far i 
>>>>>>>>> made
>>>>>>>>> updated to my github repository[1] and i recently updated my blog[2] 
>>>>>>>>> as
>>>>>>>>> well,can you review my code and give me a feedback?
>>>>>>>>>
>>>>>>>>> [1]https://github.com/asanthamax/mongodbuserstore
>>>>>>>>> [2]http://asanthamax.blogspot.com/
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Asantha
>>>>>>>>>
>>>>>>>>> On Sun, May 22, 2016 at 3:38 PM, Asantha Thilina <
>>>>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Tharindu,
>>>>>>>>>>
>>>>>>>>>> I have override all the methods in AbstractUserStoreManager in my
>>>>>>>>>> MongoDBUserStoreManager class after that when i try to add new 
>>>>>>>>>> secondary
>>>>>>>>>> user store in management console i got following error i attached the
>>>>>>>>>> screen shot of the error with this mail
>>>>>>>>>> i have pushed all the progress upto now to my github repository[1]
>>>>>>>>>> can you give me some tips to solve this issue?
>>>>>>>>>> any suggestion would be grateful
>>>>>>>>>> [1] https://github.com/asanthamax/mongodbuserstore
>>>>>>>>>> Thanks,
>>>>>>>>>> Asantha
>>>>>>>>>>
>>>>>>>>>> On Thu, May 19, 2016 at 11:47 PM, Asantha Thilina <
>>>>>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Tharindu,
>>>>>>>>>>>
>>>>>>>>>>> sorry for the late reply ,as you advised i remove the scr
>>>>>>>>>>> reference and its corresponding methods from user store now it's 
>>>>>>>>>>> works fine
>>>>>>>>>>> but i having another small issue if i wanted to run my mongodb user 
>>>>>>>>>>> store
>>>>>>>>>>> as as my primary user store how would i do that?
>>>>>>>>>>> i added my user store configurations to user-mgt.xml file and
>>>>>>>>>>> comented the ldap userstore properties and i added MongoDBUserStore 
>>>>>>>>>>> to
>>>>>>>>>>> tenant-mgt.xml as well but then i get error as datasource cannot be 
>>>>>>>>>>> casted
>>>>>>>>>>> to MongoDB db source while deploying thats mean its still referring 
>>>>>>>>>>> to
>>>>>>>>>>> Default Activator inside carbon core module how would i set it to my
>>>>>>>>>>> activator to reffer?
>>>>>>>>>>> any suggestion or help would be grateful
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Asantha
>>>>>>>>>>>
>>>>>>>>>>> On Wed, May 18, 2016 at 10:29 PM, Tharindu Edirisinghe <
>>>>>>>>>>> tharin...@wso2.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Asantha,
>>>>>>>>>>>>
>>>>>>>>>>>> Great progress so far !
>>>>>>>>>>>>
>>>>>>>>>>>> Since the reference is given to realm service in the bundle
>>>>>>>>>>>> activator, you should be facing the issue. Can you remove the 
>>>>>>>>>>>> service
>>>>>>>>>>>> reference from the bundle activator class. (You can delete the 
>>>>>>>>>>>> following
>>>>>>>>>>>> from the class).
>>>>>>>>>>>>
>>>>>>>>>>>> * @scr.reference name="user.realmservice.default"
>>>>>>>>>>>>  * interface="org.wso2.carbon.user.core.service.RealmService"
>>>>>>>>>>>> cardinality="1..1"
>>>>>>>>>>>>  * policy="dynamic" bind="setRealmService"
>>>>>>>>>>>>  * unbind="unsetRealmService"
>>>>>>>>>>>>
>>>>>>>>>>>> Also delete the following methods where realm service is used.
>>>>>>>>>>>>
>>>>>>>>>>>> getRealmService()
>>>>>>>>>>>> setRealmService(RealmService rlmService)
>>>>>>>>>>>> unsetRealmService(RealmService rlmService)
>>>>>>>>>>>>
>>>>>>>>>>>> After that can you try if the userstore manager is working as
>>>>>>>>>>>> expected. If you face any issues, please get back.
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you,
>>>>>>>>>>>> TharinduE
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Sun, May 15, 2016 at 7:48 PM, Asantha Thilina <
>>>>>>>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Tharindu,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I found the issue after debugging into my code ,my service
>>>>>>>>>>>>> bundle is not get activated because i referring into 
>>>>>>>>>>>>> mongodb-driver which
>>>>>>>>>>>>> is not osgi comaptible and i just found another library in 
>>>>>>>>>>>>> here[1] and it
>>>>>>>>>>>>> is worked for me ,fixed project i pushed into my github 
>>>>>>>>>>>>> repository [2].
>>>>>>>>>>>>> i found out that *DefaultRealmService* which is used in
>>>>>>>>>>>>> Bundle Activator of JDBCUserstoreManager cannot be used for 
>>>>>>>>>>>>> MongoDB since
>>>>>>>>>>>>> it used *java.sql.DataSource*.
>>>>>>>>>>>>> Is their having any DataSource class like that for MongoDB? or
>>>>>>>>>>>>> would i have to create a different logic to implement that 
>>>>>>>>>>>>> scenario in
>>>>>>>>>>>>> MongoDB?
>>>>>>>>>>>>> waiting for your suggestion
>>>>>>>>>>>>>
>>>>>>>>>>>>> [1].
>>>>>>>>>>>>> http://central.maven.org/maven2/org/mongodb/mongo-java-driver/3.2.2/
>>>>>>>>>>>>> [2]. https://github.com/asanthamax/mongodbuserstore
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Asantha
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sat, May 14, 2016 at 10:53 AM, Asantha Thilina <
>>>>>>>>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Tharindu,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> i faced following issue while i developing ,
>>>>>>>>>>>>>> after adding my new json query support i didn't able to see
>>>>>>>>>>>>>> My MongoDBUserStore in dropdown in create user store option.
>>>>>>>>>>>>>> for json related activites i used an external json dependency
>>>>>>>>>>>>>> from here[1] and i added it jar to lib folder in IS as well,i 
>>>>>>>>>>>>>> have enabled
>>>>>>>>>>>>>> remote debugging and inspect my code and there i found in my 
>>>>>>>>>>>>>> *MongoDBUserStoreDSComponent
>>>>>>>>>>>>>> *class *activate *method triggered but execute 1st line of
>>>>>>>>>>>>>> code only. it will not registered the service but in my osgi 
>>>>>>>>>>>>>> console window when
>>>>>>>>>>>>>> i run *ss mongo* command i get monodb.userstore bundle and
>>>>>>>>>>>>>> mongodb java driver bundle are activated successfully i attached 
>>>>>>>>>>>>>> my console
>>>>>>>>>>>>>> output and identity server output for your consideration as well
>>>>>>>>>>>>>> any suggestion would be grateful
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [1]. http://mvnrepository.com/artifact/org.json/json/20160212
>>>>>>>>>>>>>> my github repository
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://github.com/asanthamax/mongodbuserstore/tree/master/mongodb.userstoremanager
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>> Asantha
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, May 12, 2016 at 2:01 AM, Asantha Thilina <
>>>>>>>>>>>>>> asanthathil...@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Tharindu,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> since mongodb driver not having prepared statement support
>>>>>>>>>>>>>>> earlier i developed a logic to support prepared statement but i 
>>>>>>>>>>>>>>> realized
>>>>>>>>>>>>>>> that it has a limitation such as parameters has to be pass as 
>>>>>>>>>>>>>>> same order it
>>>>>>>>>>>>>>> exists in prepared statement then as you suggested to use key 
>>>>>>>>>>>>>>> value
>>>>>>>>>>>>>>> relationship instead of order during our hangout conversation i 
>>>>>>>>>>>>>>> created a
>>>>>>>>>>>>>>> new logic same to prepared statement in sql and it will work 
>>>>>>>>>>>>>>> according to
>>>>>>>>>>>>>>> key value relationship and i created standard query format for 
>>>>>>>>>>>>>>> mongodb with
>>>>>>>>>>>>>>> json to support prepared statements and i rewrite the 
>>>>>>>>>>>>>>> JDBCRealmConstants
>>>>>>>>>>>>>>> class with those supporting json queries instead of sql queries
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> All of my prepared statement methods contain in
>>>>>>>>>>>>>>> MongoDBPreparedStatement interface and its implementation in
>>>>>>>>>>>>>>> MongoDBPreparedStatementImpl class
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> All the changes i have pushed to my repo in here[1]
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> security of this prepared statements has to be improve
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I'll be grateful if you can provide me some suggestions to
>>>>>>>>>>>>>>> improve it and also another small issue i having is can i write 
>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>> DataSource for MongoDB as in java.sql.DataSource ?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> [1]
>>>>>>>>>>>>>>> https://github.com/asanthamax/mongodbuserstore/tree/master/mongodb.userstoremanager
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>> Asantha
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> Tharindu Edirisinghe
>>>>>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>>>>>> Platform Security Team
>>>>>>>>>>>> Blog : tharindue.blogspot.com
>>>>>>>>>>>> mobile : +94 775181586
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Tharindu Edirisinghe
>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>> Platform Security Team
>>>>>>>> Blog : tharindue.blogspot.com
>>>>>>>> mobile : +94 775181586
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Tharindu Edirisinghe
>>>> Senior Software Engineer | WSO2 Inc
>>>> Platform Security Team
>>>> Blog : tharindue.blogspot.com
>>>> mobile : +94 775181586
>>>>
>>>
>>>
>>
>>
>> --
>>
>> Tharindu Edirisinghe
>> Senior Software Engineer | WSO2 Inc
>> Platform Security Team
>> Blog : tharindue.blogspot.com
>> mobile : +94 775181586
>>
>
>


-- 

Tharindu Edirisinghe
Senior Software Engineer | WSO2 Inc
Platform Security Team
Blog : tharindue.blogspot.com
mobile : +94 775181586
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to