oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/MappedJwtClaimSetConverter.java
public static MappedJwtClaimSetConverter withDefaults
			(Map<String, Converter<Object, ?>> claimConverters) {
		Assert.notNull(claimConverters, "claimConverters cannot be null");

		Map<String, Converter<Object, ?>> claimNameToConverter = new HashMap<>();
		claimNameToConverter.put(JwtClaimNames.AUD, AUDIENCE_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.EXP, TEMPORAL_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.IAT, TEMPORAL_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.ISS, ISSUER_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.JTI, STRING_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.NBF, TEMPORAL_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.SUB, STRING_CONVERTER);
		claimNameToConverter.putAll(claimConverters);

		return new MappedJwtClaimSetConverter(claimNameToConverter);
	}
public static MappedJwtClaimSetConverter withDefaults
			(Map<String, Converter<Object, ?>> claimConverters) {
		Assert.notNull(claimConverters, "claimConverters cannot be null");

		Map<String, Converter<Object, ?>> claimNameToConverter = new HashMap<>();
		claimNameToConverter.put(JwtClaimNames.AUD, AUDIENCE_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.EXP, TEMPORAL_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.IAT, TEMPORAL_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.ISS, ISSUER_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.JTI, STRING_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.NBF, TEMPORAL_CONVERTER);
		claimNameToConverter.put(JwtClaimNames.SUB, STRING_CONVERTER);
		claimNameToConverter.putAll(claimConverters);

		return new MappedJwtClaimSetConverter(claimNameToConverter);
	}
public static MappedJwtClaimSetConverter withDefaults ( Map < String , Converter < Object , ? > > claimConverters ) { Assert . notNull ( claimConverters , "claimConverters cannot be null" ) ; Map < String , Converter < Object , ? > > claimNameToConverter = new HashMap <> ( ) ; claimNameToConverter . put ( JwtClaimNames . AUD , AUDIENCE_CONVERTER ) ; claimNameToConverter . put ( JwtClaimNames . EXP , TEMPORAL_CONVERTER ) ; claimNameToConverter . put ( JwtClaimNames . IAT , TEMPORAL_CONVERTER ) ; claimNameToConverter . put ( JwtClaimNames . ISS , ISSUER_CONVERTER ) ; claimNameToConverter . put ( JwtClaimNames . JTI , STRING_CONVERTER ) ; claimNameToConverter . put ( JwtClaimNames . NBF , TEMPORAL_CONVERTER ) ; claimNameToConverter . put ( JwtClaimNames . SUB , STRING_CONVERTER ) ; claimNameToConverter . putAll ( claimConverters ) ; return new MappedJwtClaimSetConverter ( claimNameToConverter ) ; }
Construct a {@link MappedJwtClaimSetConverter}, overriding individual claim
converters with the provided {@link Map} of {@link Converter}s.

For example, the following would give an instance that is configured with only the default
claim converters:

<pre>
MappedJwtClaimSetConverter.withDefaults(Collections.emptyMap());
</pre>

Or, the following would supply a custom converter for the subject, leaving the other defaults
in place:

<pre>
MappedJwtClaimsSetConverter.withDefaults(
Collections.singletonMap(JwtClaimNames.SUB, new UserDetailsServiceJwtSubjectConverter()));
</pre>

To completely replace the underlying {@link Map} of converters, {@see MappedJwtClaimSetConverter(Map)}.

@param claimConverters
@return An instance of {@link MappedJwtClaimSetConverter} that contains the converters provided,
plus any defaults that were not overridden.
Construct a { @link MappedJwtClaimSetConverter } overriding individual claim converters with the provided { @link Map } of { @link Converter } s .