cancel
Showing results for 
Search instead for 
Did you mean: 

Capture User ID and populate in a variable using IUSER

abhishek_nms
Participant
0 Kudos

Hey ,

The issue is related to User Management Tab > Identity Management in the Portal

Requirement

Need to develop a Web dynpro java link in the Portal, when executed it needs to get the all the USERS from LDAP ( LDAP table name is UME_STRINGS ), and identify if the field Krb5Principalname is blank, then populate the USER ID into that field and save it back to LDAP.

Can you please help how to get the all the Users from the LDAP using Java code.

I know i need to use UMFactory class but how to get the All the users stored in LDAP ?

Thanks

Accepted Solutions (0)

Answers (1)

Answers (1)

Qualiture
Active Contributor
0 Kudos

Why would you do that using Web Dynpro?

First of all, most LDAP systems restrict the number of results to max out at 1000 or 2000 entries so I would restrict your search to only those entries for which Krb5Principalname is not set. However, if you are in a large organisation where this property isn't set for the majority of users, your page will hang, time out or result in an out of memory...

Second, your application should have write rights to your LDAP system, which most UME service accounts don't have...

abhishek_nms
Participant
0 Kudos

The User Base is small around 1800, would you suggest to use some other thing instead of Web Dynpro Java ?

Qualiture
Active Contributor
0 Kudos

In your case you could use Web Dynpro, just take into account the maximum number of results of your LDAP system.

Normally, when the required function is quite lightweight, is used rarely and only by a few users and requires no user interface, I tend to develop a more bare-bones-style application.

In your case, I'd rather create a small application using your particular LDAP API's, or when using the UME API's are more straightforward, create a simple Java app running on NetWeaver

abhishek_nms
Participant
0 Kudos

IUser iuser = userFactory.getUser(userId);

iuser.getAttribute("com.sap.security.core.usermanagement",krb5principalname");

The above statement does not have the attribute KRB5PRINCIPALNAME in the Class Iuser during Debugging .

I happen to find rest of all Basic Stuff like the Logon ID, ( everythning in General Tab )

Can you tell me how would you get access to this Variable ?

Qualiture
Active Contributor
0 Kudos

I can't test it myself right now, but I believe you are using the correct way (IUser instead of IUserAccount)

Alternatively, this may solve your need as well: http://forums.sdn.sap.com/thread.jspa?threadID=1627944

abhishek_nms
Participant
0 Kudos

Thanks Robin for the Link, but we are almost through with WD java

Enabling the Integrated WIndows Authenticaton in the Browser Setting; I was able to get the KRB5PRNICIPALNAME.

Ya, i was using IUser , it is working fine.. but the issue right now is,

When I try to update using User Maintenance it succeeds but when I login to back to see if the KRB5Principal Name is NOT updated

I happen to check the Data Source XML file: it is a simple file with very few Data Sources - PRIVATE_DATASOURCE and R3_DATASOURE.

Can you help me in finding why it is not getting updated ? though in WD Java it shows me as a success !

Qualiture
Active Contributor
0 Kudos

Hi,

If you are updating through the UME API, you're only updating the user properties in the portal context.

From what I understand you want to update in your LDAP source as well, for that you need to have write access to your LDAP system (i.e. using a service user with write access) and use the API or web services provided by your LDAP in order to make changes

Hope this explains,

Robin