private Set<String> calculateScope() {
        String scopeClaimName = this.scopeClaimName;
        if (isClaimType(scopeClaimName, String.class)) {
            String scopeClaimValue = claim(scopeClaimName, String.class);
            if (Utils.isBlank(scopeClaimValue))
                return Collections.emptySet();
            else {
                Set<String> retval = new HashSet<>();
                retval.add(scopeClaimValue.trim());
                return Collections.unmodifiableSet(retval);
            }
        }
        List<?> scopeClaimValue = claim(scopeClaimName, List.class);
        if (scopeClaimValue == null || scopeClaimValue.isEmpty())
            return Collections.emptySet();
        @SuppressWarnings("unchecked")
        List<String> stringList = (List<String>) scopeClaimValue;
        Set<String> retval = new HashSet<>();
        for (String scope : stringList) {
            if (!Utils.isBlank(scope)) {
                retval.add(scope.trim());
            }
        }
        return Collections.unmodifiableSet(retval);
    }
Decode the given Base64URL-encoded value, parse the resulting JSON as a JSON
object, and return the map of member names to their values (each value being
represented as either a String, a Number, or a List of Strings).

@param split
           the value to decode and parse
@return the map of JSON member names to their String, Number, or String List
        value
@throws OAuthBearerIllegalTokenException
            if the given Base64URL-encoded value cannot be decoded or parsed
clients/src/main/java/org/apache/kafka/common/security/oauthbearer/internals/unsecured/OAuthBearerUnsecuredJws.java