Skip to content
Snippets Groups Projects
Verified Commit 34d3b11f authored by Dominik Frantisek Bucik's avatar Dominik Frantisek Bucik
Browse files

fix: :bug: Modification of AUD in GA4GH AT modifier

caused losing previously set audiences
parent 01ee9024
No related branches found
No related tags found
1 merge request!60fix: 🐛 Modification of AUD in GA4GH AT modifier
Pipeline #452955 passed
package cz.muni.ics.oidc.server.ga4gh;
import com.nimbusds.jwt.JWTClaimsSet;
import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
import cz.muni.ics.oidc.server.PerunAccessTokenEnhancer;
import cz.muni.ics.openid.connect.model.UserInfo;
import lombok.NoArgsConstructor;
......@@ -8,7 +9,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import static cz.muni.ics.oidc.server.ga4gh.Ga4ghApiClaimSource.GA4GH_SCOPE;
......@@ -33,8 +37,15 @@ public class Ga4ghAccessTokenModifier implements PerunAccessTokenEnhancer.Access
Set<String> scopes = accessToken.getScope();
//GA4GH
if (scopes.contains(GA4GH_SCOPE)) {
Object originalAud = builder.getClaims().get("aud");
Set<String> newAud = new HashSet<>();
if (originalAud instanceof String) {
newAud.add((String) originalAud);
} else if (originalAud instanceof Collection) {
newAud.addAll((Collection<String>) originalAud);
}
log.debug("Adding claims required by GA4GH to access token");
builder.audience(Collections.singletonList(authentication.getOAuth2Request().getClientId()));
builder.audience(new ArrayList<>(newAud));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment