com.sap.cds.repackaged.audit.client.impl.SecurityContextToken Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cds-feature-auditlog-v2 Show documentation
Show all versions of cds-feature-auditlog-v2 Show documentation
Handler to send auditlog messages to AuditLog Service V2
package com.sap.cds.repackaged.audit.client.impl;
import static com.sap.cds.repackaged.audit.client.impl.Utils.CLIENT_TYPE_TOKEN;
import static com.sap.cds.repackaged.audit.client.impl.Utils.USER_TYPE_TOKEN;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sap.cloud.security.config.Service;
import com.sap.cloud.security.token.AccessToken;
import com.sap.cloud.security.token.GrantType;
import com.sap.cloud.security.token.Token;
import com.sap.cloud.security.token.TokenClaims;
public class SecurityContextToken {
private static final Logger LOGGER = LoggerFactory.getLogger(SecurityContextToken.class);
private final Token token;
public SecurityContextToken(Token token) {
this.token = token;
}
public String getClientId() {
return token.getClientId();
}
public String getLogonName() {
return token.getPrincipal().getName();
}
public String getGrantType() {
if(!Service.XSUAA.equals(token.getService())) {
LOGGER.warn("There is no GRANT_TYPE claim for token of type {}", token.getService());
return null;
}
return ((AccessToken)token).getGrantType().equals(GrantType.CLIENT_CREDENTIALS) ? CLIENT_TYPE_TOKEN
: USER_TYPE_TOKEN;
}
public String getToken() {
return token.getTokenValue();
}
public String getSubdomain() {
return token.getAttributeFromClaimAsString(TokenClaims.XSUAA.EXTERNAL_ATTRIBUTE, TokenClaims.XSUAA.EXTERNAL_ATTRIBUTE_ZDN);
}
}