39 lines
1.4 KiB
Java
39 lines
1.4 KiB
Java
package org.gcube.event.publisher;
|
|
|
|
import java.net.URL;
|
|
|
|
import org.gcube.oidc.rest.JWTToken;
|
|
import org.gcube.oidc.rest.OpenIdConnectRESTHelper;
|
|
import org.gcube.oidc.rest.OpenIdConnectRESTHelperException;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public class HTTPWithUMAAuthEventSender extends HTTPWithOIDCAuthEventSender {
|
|
|
|
protected static final Logger log = LoggerFactory.getLogger(HTTPWithUMAAuthEventSender.class);
|
|
|
|
private String umaAudience;
|
|
|
|
public HTTPWithUMAAuthEventSender(URL baseEnndpointURL, String clientId, String clientSecret, URL tokenURL,
|
|
String umaAudience) {
|
|
|
|
super(baseEnndpointURL, clientId, clientSecret, tokenURL);
|
|
this.umaAudience = umaAudience;
|
|
}
|
|
|
|
@Override
|
|
protected JWTToken getAuthorizationToken() throws OpenIdConnectRESTHelperException {
|
|
JWTToken oidcToken = super.getAuthorizationToken();
|
|
if (oidcToken != null) {
|
|
if (umaAudience != null) {
|
|
log.debug("Getting UMA token with audience '{}' from: {}", umaAudience, getTokenURL());
|
|
return OpenIdConnectRESTHelper.queryUMAToken(getTokenURL(), oidcToken.getAccessTokenAsBearer(),
|
|
umaAudience, null);
|
|
} else {
|
|
log.debug("Can't get UMA token since the required param was not provied");
|
|
}
|
|
}
|
|
return oidcToken;
|
|
}
|
|
|
|
} |