docs: protected JwtClaims buildJwtClaims(final HttpServletRequest request,
                                         final AccessToken accessTokenId,
                                         final long timeoutInSeconds,
                                         final OAuthRegisteredService service,
                                         final UserProfile profile,
                                         final J2EContext context,
                                         final OAuth20ResponseTypes responseType) {
  
          val permissionTicket = (UmaPermissionTicket) request.getAttribute(UmaPermissionTicket.class.getName());
  
          val claims = new JwtClaims();
          claims.setJwtId(UUID.randomUUID().toString());
          claims.setIssuer(getConfigurationContext().getCasProperties().getAuthn().getUma().getIssuer());
          claims.setAudience(String.valueOf(permissionTicket.getResourceSet().getId()));
  
          val expirationDate = NumericDate.now();
          expirationDate.addSeconds(timeoutInSeconds);
          claims.setExpirationTime(expirationDate);
          claims.setIssuedAtToNow();
          claims.setSubject(profile.getId());
  
          permissionTicket.getClaims().forEach((k, v) -> claims.setStringListClaim(k, v.toString()));
          claims.setStringListClaim(OAuth20Constants.SCOPE, new ArrayList<>(permissionTicket.getScopes()));
          claims.setStringListClaim(OAuth20Constants.CLIENT_ID, service.getClientId());
  
          return claims;
      }