The profile selection functionality provides a pluggable profile selection mechanism based on handlers (and configuration information for each handler) where any available profile selection handler can be selected for use with each profile set.
WebSphere® Portlet Factory uses J2EE application server security and application roles, which are not typically as granular as the levels of profile-based customization that you might want to establish for your application. For example, your security roles might be portalUser and Admin, whereas your portal application customization might have a dozen or more profiles mapping to different types of portal users. Profile selection handlers allow you to address this problem.
Several profile selection handlers are provided (XML Config File based, LDAP Group based and J2EE Role based) as examples. You can also use these handlers out of the box to build an application. In many scenarios though, you will most likely want to base profile selection on existing databases of user to job-role or entitlement mappings.
Profile selection handler changes
WebSphere Portlet Factory sample Profile Selection Handler implementations have been changed as of version 6 to take advantage of reading partial ProfileSets. The effected handlers are the J2EERoleProfileSelection.java, LDAPSelectionHandler, and the FileSegmentSelectionHandler.
There are no direct interface changes to the ProfileSelection or the SegmentList interfaces, but the Profile Set passed in to their methods is now not completely populated with all of the profiles in the set. Instead the Profile Set passed to selectProfile() and getSegments() contains structural information as well as the Default Profile.
As a result of this change, the SelectionHandlerBase class uses the ProfileCache class to get a single profile in order to validate that the user matches any explicit profiles specified. Also the getProfileBySegment() method is updated to use the ProfileStorageManager getProfilesBySegment() method.
About setting the profile selection handler
In the Select Handler editor of the profile manager, you can set the profile selection handler class to use for the current profile set. You can also declare a value selector class that dynamically assigns data to the profile values in the profile set.
Handler definition files
As a result of the additional level of indirection to setting up a custom profile selection class for a profile set, a handler definition file is now used to drive the profile selection process.
Using the ProfileSelection interface
Profile Sets and profiles are not bound to a particular model. As a result, to override the default profile selection the developer must specify the class to perform this functionality in the profile set.
The SegmentList interface
The SegmentList interface supports UI components that need to expose the named segments for a given handler.
Parent topic: Setting the profile selection handler for a profile set