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
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to