docs: @Override
      public String getIssuer() {
          if (issuer == null || issuer.length() == 0) {
              // calculate it from the token endpoint, if we can.
              if (tokenEndpoint != null && tokenEndpoint.length() > "http://".length()) {
                  String computedIssuer = null;
                  if (tokenEndpoint.toLowerCase().startsWith("http")) {
                      int lastpos = tokenEndpoint.lastIndexOf("/");
                      if (lastpos > "http://".length()) {
                          //  if token endpoint is https://abc.com/123/token, issuer is https://abc.com/123
                          computedIssuer = tokenEndpoint.substring(0, lastpos);
                      } else {
                          // Token endpoint value has no other '/' characters after the URL scheme
                          computedIssuer = tokenEndpoint;
                      }
                      return computedIssuer;
                  } else {
                      // Token endpoint must not be a valid HTTP or HTTPS URL, so return whatever the issuer was set to originally
                      return issuer;
                  }
              }
          }
          // couldn't compute it, or didn't need to.
          return issuer;
      }