com.sap.cloud.security.servlet.XsuaaTokenAuthenticator Maven / Gradle / Ivy
package com.sap.cloud.security.servlet;
import com.sap.cloud.security.config.Environments;
import com.sap.cloud.security.config.OAuth2ServiceConfiguration;
import com.sap.cloud.security.config.cf.CFConstants;
import com.sap.cloud.security.token.*;
import javax.annotation.Nullable;
import java.util.Collection;
public class XsuaaTokenAuthenticator extends AbstractTokenAuthenticator {
@Override
public Token extractFromHeader(String authorizationHeader) {
return new XsuaaToken(authorizationHeader)
.withScopeConverter(getScopeConverter());
}
@Override
protected OAuth2ServiceConfiguration getServiceConfiguration() {
OAuth2ServiceConfiguration config = serviceConfiguration != null ? serviceConfiguration
: Environments.getCurrent().getXsuaaConfiguration();
if (config == null) {
throw new IllegalStateException("There must be a service configuration.");
}
return config;
}
@Nullable
@Override
protected OAuth2ServiceConfiguration getOtherServiceConfiguration() {
return Environments.getCurrent().getXsuaaConfigurationForTokenExchange();
}
@Override
protected TokenAuthenticationResult authenticated(Token token) {
Collection translatedScopes = getScopeConverter()
.convert(((XsuaaToken) token).getScopes());
return TokenAuthenticatorResult.createAuthenticated(translatedScopes, token);
}
private ScopeConverter getScopeConverter() {
return new XsuaaScopeConverter(
getServiceConfiguration().getProperty(CFConstants.XSUAA.APP_ID));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy