9
9
import com .nimbusds .jose .crypto .RSASSASigner ;
10
10
import com .nimbusds .jose .jwk .RSAKey ;
11
11
import net .minidev .json .JSONObject ;
12
+ import org .apache .commons .lang3 .StringUtils ;
12
13
import org .springframework .core .io .ClassPathResource ;
13
14
import org .springframework .stereotype .Controller ;
14
15
import org .springframework .ui .Model ;
@@ -49,16 +50,18 @@ public String generateJwt(User user, Model model) throws JOSEException {
49
50
Map <String , Object > payload = new HashMap <>();
50
51
51
52
payload .put ("iss" , "test_issuer" );
53
+ payload .put ("exp" , Math .abs (System .currentTimeMillis () / 1000 ) + (5 * 60 ));
52
54
payload .put ("aud" , new String [] {"library-service" });
53
- payload .put ("sub" , user .getEmail ());
55
+ payload .
put (
"sub" ,
user .
getEmail ()
!= null ? user . getEmail () : "[email protected] " );
54
56
payload .put ("scope" , "openid email profile" );
55
- payload .put ("groups" , new String [] {"library_user" });
56
- payload .put ("preferred_username" , user .getUsername ());
57
- payload .put ("given_name" , user .getFirstName ());
58
- payload .put ("family_name" , user .getLastName ());
59
- payload .put ("email" , user .getEmail ());
57
+ payload .put ("groups" , StringUtils . isNotBlank ( user . getRole ()) ? new String [] { user . getRole ()} : new String [] {"library_user" });
58
+ payload .put ("preferred_username" , StringUtils . isNotBlank ( user .getUsername ()) ? user . getUsername () : "bwayne" );
59
+ payload .put ("given_name" , StringUtils . isNotBlank ( user .getFirstName ()) ? user . getFirstName () : "Bruce" );
60
+ payload .put ("family_name" , StringUtils . isNotBlank ( user .getLastName ()) ? user . getLastName () : "Wayne" );
61
+ payload .
put (
"email" ,
StringUtils . isNotBlank ( user .
getEmail ()
) ? user . getEmail () : "[email protected] " );
60
62
payload .put ("email_verified" , true );
61
- payload .put ("name" , user .getFirstName () + " " + user .getLastName ());
63
+ payload .put ("name" , StringUtils .isNotBlank (user .getFirstName ())
64
+ && StringUtils .isNotBlank (user .getLastName ()) ? user .getFirstName () + " " + user .getLastName () : "Bruce Wayne" );
62
65
63
66
String jwt = createJwt (payload );
64
67
model .addAttribute ("jwt" , jwt );
@@ -85,6 +88,4 @@ private String createJwt(Map<String, Object> payload) throws JOSEException {
85
88
// -jPDm5Iq0SZnjKjCNS5Q15fokXZc8u0A
86
89
return jwsObject .serialize ();
87
90
}
88
-
89
-
90
91
}
0 commit comments