WebSphere Portal PUMA API

WPS 5.1 has introduced Puma SPI (Service Provider Interface) for accessing the information about the WPS users and groups. The PUMA SPI provides interfaces for accessing the profiles of a portal user or group. You can use it to find, create, modify, and delete users and groups, as well as profile information about the currently logged-in user.

You can download the Javadoc of the complete SPI from here.

The details of our WebSphere Portal users are stored in IBM Tivoli LDAP server. This code prints what attributes of users are actually available and enables us to show them in a theme JSP. So our JSR 168 portlets have to further rely on IBM-specific code. Portability is really a lost cause.


javax.naming.Context ctx = new javax.naming.InitialContext();
com.ibm.portal.um.PumaHome home = (com.ibm.portal.um.PumaHome)
PumaProfile profile = home.getProfile( request );
List attributes = profile.getDefinedUserAttributeNames();
User user = profile.getCurrentUser();
Map map = profile.getAttributes(user, attributes);
Iterator iterator = attributes.iterator();

while (iterator.hasNext()) {
String attribute = (String)iterator.next();
System.out.println(”["+ attribute +"][" +
map.get(attribute) + "]“);

}catch( PumaSystemException pse ){
System.out.println( “PumaSystemException” );
}catch( PumaModelException pme ){
System.out.println( “PumaModelException” );
}catch( PumaMissingAccessRightsException pmare ){
System.out.println( “PumaMissingAccessRightsException” );
}catch( Exception e ){
System.out.println( “Exception” );