66
77import java .util .List ;
88import java .util .Map ;
9+ import java .util .Optional ;
910
1011/**
1112 * Jwt converter that reads scopes + custom FAF roles from the token extension.
@@ -18,24 +19,18 @@ public AbstractAuthenticationToken convert(Jwt source) {
1819 List <FafRole > roles = extractRoles (source );
1920
2021 String subject = extractSubject (source );
21-
22- try {
23- int userId = Integer .parseInt (subject );
24- String username = extractUsername (source );
25- return new FafUserAuthenticationToken (userId , username , scopes , roles );
26- } catch (NumberFormatException e ) {
27- return new FafServiceAuthenticationToken (subject , scopes );
28- }
22+ return extractUsername (source )
23+ .<FafAuthenticationToken >map (username -> new FafUserAuthenticationToken (Integer .parseInt (subject ), username , scopes , roles ))
24+ .orElseGet (() -> new FafServiceAuthenticationToken (subject , scopes ));
2925 }
3026
3127 private String extractSubject (Jwt source ) {
3228 return source .getSubject ();
3329 }
3430
35- private String extractUsername (Jwt source ) {
31+ private Optional < String > extractUsername (Jwt source ) {
3632 Map <String , Object > ext = source .getClaim ("ext" );
37- String username = (String ) ext .getOrDefault ("username" , "[undefined]" );
38- return username ;
33+ return Optional .ofNullable ((String ) ext .get ("username" ));
3934 }
4035
4136 private List <FafScope > extractScopes (Jwt source ) {
0 commit comments