The ClaimsHandler is an interface that the user must implement to be able to "handle" a requested claim. It has two methods:
List<URI> getSupportedClaimTypes()- Return the list of ClaimType URIs that this ClaimHandler object can handle.
ClaimCollection retrieveClaimValues (Principal p, RequestClaimCollection rcc)- Return the claim values associated with the requested claims (and client principal).
The ClaimCollection object that is returned is just a list of Claim objects. This object represents a Claim that has been processed by a ClaimsHandler instance. It essentially contains a number of properties that the ClaimsHandler implementation will set, e.g.:
- URI claimType - The claimtype URI as received from the client.
- String value - The claim value
Each Claim object in a ClaimCollection corresponds to a RequestClaim object in the RequestClaimCollection, and contains the Claim value corresponding to the requested claim. The STS ships with a single ClaimsHandler implementation, the LDAPClaimsHandler, which can retrieve claims from an LDAP store. A simpler example is available in the unit tests.