92 ClientDetailsEntity client = (ClientDetailsEntity)model.get(
CLIENT);
95 StringWriter writer =
new StringWriter();
96 gson.toJson(json, writer);
100 JWTClaimsSet claims =
new JWTClaimsSet.Builder(JWTClaimsSet.parse(writer.toString()))
101 .audience(Lists.newArrayList(client.getClientId()))
103 .issueTime(
new Date())
104 .jwtID(UUID.randomUUID().toString())
108 if (client.getUserInfoEncryptedResponseAlg() != null && !client.getUserInfoEncryptedResponseAlg().equals(Algorithm.NONE)
109 && client.getUserInfoEncryptedResponseEnc() != null && !client.getUserInfoEncryptedResponseEnc().equals(Algorithm.NONE)
110 && (!Strings.isNullOrEmpty(client.getJwksUri()) || client.getJwks() != null)) {
116 if (encrypter != null) {
118 EncryptedJWT encrypted =
new EncryptedJWT(
new JWEHeader(client.getUserInfoEncryptedResponseAlg(), client.getUserInfoEncryptedResponseEnc()), claims);
120 encrypter.encryptJwt(encrypted);
123 Writer out = response.getWriter();
124 out.write(encrypted.serialize());
127 logger.error(
"Couldn't find encrypter for client: " + client.getClientId());
132 if (client.getUserInfoSignedResponseAlg() != null) {
133 signingAlg = client.getUserInfoSignedResponseAlg();
135 JWSHeader header =
new JWSHeader(signingAlg, null, null, null, null, null, null, null, null, null,
138 SignedJWT
signed =
new SignedJWT(header, claims);
140 if (signingAlg.equals(JWSAlgorithm.HS256)
141 || signingAlg.equals(JWSAlgorithm.HS384)
142 || signingAlg.equals(JWSAlgorithm.HS512)) {
153 Writer out = response.getWriter();
154 out.write(
signed.serialize());
156 }
catch (IOException e) {
157 logger.error(
"IO Exception in UserInfoJwtView", e);
158 }
catch (ParseException e) {
JWSAlgorithm getDefaultSigningAlgorithm()
ConfigurationPropertiesBean config
Definition: UserInfoJWTView.java:79
String getDefaultSignerKeyId()
void signJwt(SignedJWT jwt)
JWTEncryptionAndDecryptionService getEncrypter(ClientDetailsEntity client)
Definition: ClientKeyCacheService.java:118
static final String CLIENT
Definition: UserInfoJWTView.java:62
ClientKeyCacheService encrypters
Definition: UserInfoJWTView.java:82
JWTSigningAndValidationService getSymmetricValidtor(ClientDetailsEntity client)
Definition: SymmetricKeyJWTValidatorCacheService.java:72
Gson gson
Definition: UserInfoView.java:68
static final Logger logger
Definition: UserInfoJWTView.java:67
SymmetricKeyJWTValidatorCacheService symmetricCacheService
Definition: UserInfoJWTView.java:85
JWTSigningAndValidationService jwtService
Definition: UserInfoJWTView.java:76
String getIssuer()
Definition: ConfigurationPropertiesBean.java:100
static final String JOSE_MEDIA_TYPE_VALUE
Definition: UserInfoJWTView.java:71