private Map < String , Object > collectClaims ( String subject , String [ ] claimNames , String [ ] claimLocales ) { // If no claim is required. if ( claimNames == null || claimNames . length == 0 ) { return null ; } // Drop empty and duplicate entries from claimLocales. claimLocales = normalizeClaimLocales ( claimLocales ) ; // Claim values. Map < String , Object > claims = new HashMap < String , Object > ( ) ; // For each requested claim. for ( String claimName : claimNames ) { // If the claim name is empty. if ( claimName == null || claimName . length ( ) == 0 ) { continue ; } // Split the claim name into the name part and the tag part. String [ ] elements = claimName . split ( "#" , 2 ) ; String name = elements [ 0 ] ; String tag = ( elements . length == 2 ) ? elements [ 1 ] : null ; // If the name part is empty. if ( name == null || name . length ( ) == 0 ) { continue ; } // Get the claim value of the claim. Object value = getClaim ( name , tag , claimLocales ) ; // If the claim value was not obtained. if ( value == null ) { continue ; } if ( tag == null ) { // Just for an edge case where claimName ends with "#". claimName = name ; } // Add the pair of the claim name and the claim value. claims . put ( claimName , value ) ; } // If no claim value has been obtained. if ( claims . size ( ) == 0 ) { return null ; } // Obtained claim values. return claims ; }
Collect claims of the end - user .