code: public String createSignedRequest(AuthenticatedUser authenticatedUser)
          throws GuacamoleException {
  
          // Generate a cookie associating the username with the integration key
          DuoCookie cookie = new DuoCookie(authenticatedUser.getIdentifier(),
                  confService.getIntegrationKey(),
                  DuoCookie.currentTimestamp() + COOKIE_EXPIRATION_TIME);
  
          // Sign cookie with secret key
          SignedDuoCookie duoCookie = new SignedDuoCookie(cookie,
                  SignedDuoCookie.Type.DUO_REQUEST,
                  confService.getSecretKey());
  
          // Sign cookie with application key
          SignedDuoCookie appCookie = new SignedDuoCookie(cookie,
                  SignedDuoCookie.Type.APPLICATION,
                  confService.getApplicationKey());
  
          // Return signed request containing both signed cookies, separated by
          // a colon (as required by Duo)
          return duoCookie + ":" + appCookie;
  
      }
docs: Creates and signs a new request to verify the identity of the given
  user. This request may ultimately be sent to Duo, resulting in a signed
  response from Duo if that verification succeeds.
  
  @param authenticatedUser
  The user whose identity should be verified.
  
  @return
  A signed user verification request which can be sent to Duo.
  
  @throws GuacamoleException
  If required Duo-specific configuration options are missing or
  invalid, or if an error prevents generation of the signature.