code: @SuppressWarnings("unchecked")
      protected Flash getFlashCookie(HttpServerExchange exchange) {
          Flash flash = Flash.create();
          
          final String cookieValue = getCookieValue(exchange, this.config.getFlashCookieName());
          if (StringUtils.isNotBlank(cookieValue)) {
              try {
                  String decryptedValue = Application.getInstance(Crypto.class).decrypt(cookieValue, this.config.getFlashCookieEncryptionKey());
                  JwtConsumer jwtConsumer = new JwtConsumerBuilder()
                      .setVerificationKey(new HmacKey(this.config.getFlashCookieSignKey().getBytes(StandardCharsets.UTF_8)))
                      .setJwsAlgorithmConstraints(new AlgorithmConstraints(ConstraintType.WHITELIST, AlgorithmIdentifiers.HMAC_SHA512))
                      .build();
                  
                  JwtClaims jwtClaims = jwtConsumer.processToClaims(decryptedValue);
                  LocalDateTime expires = LocalDateTime.parse(jwtClaims.getClaimValue(ClaimKey.EXPIRES.toString(), String.class), DateUtils.formatter);
                  
                  if (expires.isAfter(LocalDateTime.now())) {
                      if (jwtClaims.hasClaim(ClaimKey.FORM.toString())) {
                          this.form = CodecUtils.deserializeFromBase64(jwtClaims.getClaimValue(ClaimKey.FORM.toString(), String.class));
                      } 
                      
                      flash = Flash.create()
                              .withContent(MangooUtils.copyMap(jwtClaims.getClaimValue(ClaimKey.DATA.toString(), Map.class))).setDiscard(true);
                  }
              } catch (MalformedClaimException | InvalidJwtException  e) {
                  LOG.error("Failed to parse flash cookie", e);
                  flash.invalidate();
              } 
          }
          
          return flash;
      }
docs: Retrieves the flash cookie from the current
  
  @param exchange The Undertow HttpServerExchange