event-publisher-library/src/main/java/org/gcube/event/publisher/HTTPWithUMAAuthEventSender....

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;
}
}