365 jwe.getHeader().setType(JwtType.JWT);
366 jwe.getHeader().setAlgorithm(keyEncryptionAlgorithm);
367 jwe.getHeader().setEncryptionMethod(blockEncryptionAlgorithm);
370 List<Scope> dynamicScopes =
new ArrayList<Scope>();
371 for (String scopeName : scopes) {
374 dynamicScopes.add(scope);
382 String claimName = gluuAttribute.getOxAuthClaimName();
383 String ldapName = gluuAttribute.getName();
384 Object attributeValue = null;
386 if (StringUtils.isNotBlank(claimName) && StringUtils.isNotBlank(ldapName)) {
387 if (ldapName.equals(
"uid")) {
388 attributeValue = user.getUserId();
390 attributeValue = user.
getAttribute(gluuAttribute.getName(),
true);
393 if (attributeValue != null) {
394 if (attributeValue instanceof JSONArray) {
395 JSONArray jsonArray = (JSONArray) attributeValue;
396 List<String> values =
new ArrayList<String>();
397 for (
int i = 0; i < jsonArray.length(); i++) {
398 String value = jsonArray.optString(i);
403 jwe.getClaims().setClaim(claimName, values);
405 String value = attributeValue.toString();
406 jwe.getClaims().setClaim(claimName, value);
416 boolean optional =
true;
419 if (gluuAttribute != null) {
423 String ldapClaimName = gluuAttribute.getName();
424 Object attribute = user.
getAttribute(ldapClaimName, optional);
425 if (attribute != null) {
426 if (attribute instanceof JSONArray) {
427 JSONArray jsonArray = (JSONArray) attribute;
428 List<String> values =
new ArrayList<String>();
429 for (
int i = 0; i < jsonArray.length(); i++) {
430 String value = jsonArray.optString(i);
435 jwe.getClaims().setClaim(claim.getName(), values);
437 String value = attribute.toString();
438 jwe.getClaims().setClaim(claim.getName(), value);
449 String sectorIdentifierUri = null;
457 String clientId = authorizationGrant.
getClientId();
459 userInum, sectorIdentifierUri, clientId);
460 if (pairwiseIdentifier == null) {
462 pairwiseIdentifier.
setId(UUID.randomUUID().toString());
464 pairwiseIdentifier.
getId(),
468 jwe.getClaims().setSubjectIdentifier(pairwiseIdentifier.
getId());
471 jwe.getClaims().setSubjectIdentifier(authorizationGrant.
getUser().
getAttribute(openidSubAttribute));
476 DynamicScopeExternalContext dynamicScopeContext =
new DynamicScopeExternalContext(dynamicScopes, jwe, unmodifiableAuthorizationGrant);
481 if (keyEncryptionAlgorithm == KeyEncryptionAlgorithm.RSA_OAEP
482 || keyEncryptionAlgorithm == KeyEncryptionAlgorithm.RSA1_5) {
486 PublicKey publicKey = cryptoProvider.
getPublicKey(keyId, jsonWebKeys);
488 if (publicKey != null) {
489 JweEncrypter jweEncrypter =
new JweEncrypterImpl(keyEncryptionAlgorithm, blockEncryptionAlgorithm, publicKey);
490 jwe = jweEncrypter.encrypt(jwe);
494 }
else if (keyEncryptionAlgorithm == KeyEncryptionAlgorithm.A128KW
495 || keyEncryptionAlgorithm == KeyEncryptionAlgorithm.A256KW) {
498 JweEncrypter jweEncrypter =
new JweEncrypterImpl(keyEncryptionAlgorithm, blockEncryptionAlgorithm, sharedSymmetricKey);
499 jwe = jweEncrypter.encrypt(jwe);
500 }
catch (UnsupportedEncodingException e) {
502 }
catch (StringEncrypter.EncryptionException e) {
504 }
catch (Exception e) {
509 return jwe.toString();
List< Claim > getClaims()
Definition: UserInfoMember.java:61
String getDnForPairwiseIdentifier(String oxId, String userInum)
Definition: PairwiseIdentifierService.java:107
Definition: AbstractCryptoProvider.java:44
UserInfoMember getUserInfoMember()
Definition: JwtAuthorizationRequest.java:420
String [] getRedirectUris()
Definition: Client.java:387
PAIRWISE
Definition: SubjectType.java:14
GluuAttribute getAttributeByDn(String dn)
Definition: AttributeService.java:47
boolean validateRequesteClaim(GluuAttribute gluuAttribute, String[] clientAllowedClaims, Collection< String > scopes)
Definition: UserInfoRestWebServiceImpl.java:669
AttributeService attributeService
Definition: UserInfoRestWebServiceImpl.java:93
void setId(String id)
Definition: PairwiseIdentifier.java:39
User getUser()
Definition: AbstractAuthorizationGrant.java:233
ClientService clientService
Definition: UserInfoRestWebServiceImpl.java:87
Definition: SignatureAlgorithm.java:20
Definition: JwtUtil.java:38
JwtAuthorizationRequest getJwtAuthorizationRequest()
Definition: AbstractAuthorizationGrant.java:382
String getId()
Definition: PairwiseIdentifier.java:35
Definition: UnmodifiableAuthorizationGrant.java:33
GluuAttribute getByClaimName(String name)
Definition: AttributeService.java:73
String getJwksUri()
Definition: Client.java:629
org.xdi.oxauth.model.common.Scope getScopeByDisplayName(String displayName)
Definition: ScopeService.java:119
ScopeType getScopeType()
Definition: Scope.java:88
Definition: SubjectType.java:12
PublicKey getPublicKey(String alias, JSONObject jwks)
Definition: AbstractCryptoProvider.java:133
String getSectorIdentifierUri()
Definition: Client.java:680
static SubjectType fromString(String param)
Definition: SubjectType.java:30
Definition: PairwiseIdentifier.java:16
DYNAMIC
Definition: ScopeType.java:56
String [] getClaims()
Definition: Client.java:1042
Object getAttribute(String userAttribute, boolean optional)
Definition: SimpleUser.java:23
ExternalDynamicScopeService externalDynamicScopeService
Definition: UserInfoRestWebServiceImpl.java:99
RS256
Definition: SignatureAlgorithm.java:26
String getClientSecret()
Definition: Client.java:311
static final String UTF8_STRING_ENCODING
Definition: Util.java:44
Definition: Scope.java:23
AppConfiguration appConfiguration
Definition: UserInfoRestWebServiceImpl.java:105
Client getClient()
Definition: AbstractAuthorizationGrant.java:340
Definition: ScopeType.java:21
void addPairwiseIdentifier(String userInum, PairwiseIdentifier pairwiseIdentifier)
Definition: PairwiseIdentifierService.java:100
ScopeService scopeService
Definition: UserInfoRestWebServiceImpl.java:90
String getClientId()
Definition: AbstractAuthorizationGrant.java:345
String getSubjectType()
Definition: Client.java:699
String decryptSecret(String encryptedClientSecret)
Definition: ClientService.java:390
Definition: Client.java:37
PairwiseIdentifierService pairwiseIdentifierService
Definition: UserInfoRestWebServiceImpl.java:102
static JSONObject getJSONWebKeys(String jwksUri)
Definition: JwtUtil.java:203
Definition: InvalidJweException.java:12
List< String > getOxAuthClaims()
Definition: Scope.java:96
Definition: CryptoProviderFactory.java:16
Definition: AuthenticationMethod.java:7
String getOpenidSubAttribute()
Definition: AppConfiguration.java:509
static AbstractCryptoProvider getCryptoProvider(AppConfiguration configuration)
Definition: CryptoProviderFactory.java:18
PairwiseIdentifier findPairWiseIdentifier(String userInum, String sectorIdentifierUri, String clientId)
Definition: PairwiseIdentifierService.java:59
String getKeyId(JSONWebKeySet jsonWebKeySet, SignatureAlgorithm signatureAlgorithm, Use use)
Definition: AbstractCryptoProvider.java:56
boolean executeExternalUpdateMethods(DynamicScopeExternalContext dynamicScopeContext)
Definition: ExternalDynamicScopeService.java:95