All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sap.cds.repackaged.audit.client.impl.SecurityContextToken Maven / Gradle / Ivy

There is a newer version: 3.2.0
Show newest version
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);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy