class XsuaaToken extends AbstractToken implements AccessToken {

	static String getUniquePrincipalName(String origin, String userName) {
		if (isNullOrEmpty(origin)) {
			LOGGER.warn("origin claim not set in JWT. Cannot create unique user name. Returning null.");
			return null;
		}
		if (isNullOrEmpty(userName)) {
			LOGGER.warn("user_name claim not set in JWT. Cannot create unique user name. Returning null.");
			return null;
		}
		if (origin.contains("/")) {
			LOGGER.warn(
					"Illegal '/' character detected in origin claim of JWT. Cannot create unique user name. Returning null.");
			return null;
		}
		return String.format(UNIQUE_USER_NAME_FORMAT, origin, userName);
	}

	public  XsuaaToken(@Nonnull DecodedJwt decodedJwt);
	public  XsuaaToken(@Nonnull String accessToken);

}