docs: public String getName() {
          if (name == null) {
              name = "INVALID_TOKEN_NAME";
              try {
                  // Build a JwtConsumer that doesn't check signatures or do any validation.
                  JwtConsumer firstPassJwtConsumer = new JwtConsumerBuilder()
                          .setSkipAllValidators()
                          .setDisableRequireSignature()
                          .setSkipSignatureVerification()
                          .build();
  
                  //The first JwtConsumer is basically just used to parse the JWT into a JwtContext object.
                  JwtContext jwtContext = firstPassJwtConsumer.process(bearerToken);
                  JwtClaims claimsSet = jwtContext.getJwtClaims();
                  // We have to determine the unique name to use as the principal name. It comes from upn, preferred_username, sub in that order
                  name = claimsSet.getClaimValue("upn", String.class);
                  if (name == null) {
                      name = claimsSet.getClaimValue("preferred_username", String.class);
                      if (name == null) {
                          name = claimsSet.getSubject();
                      }
                  }
              } catch (Exception e) {
                  jwtException = e;
              }
          }
          return name;
      }