Pedestal 0.8.1

Last reviewed Sep 24, 2026

Export as PDF

Prompt Details

Prompt Composition

3prompts
  1. Java 25113 lines · 2.8K tokens
  2. Clojure 1.1247 lines · 919 tokens
  3. Pedestal 0.8.165 lines · 3.9K tokens
Total225 lines · 7.6K tokens

CWE Coverage

  • 20
  • 22
  • 59
  • 78
  • 79
  • 88
  • 89
  • 93
  • 95
  • 113
  • 117
  • 190
  • 208
  • 209
  • 214
  • 295
  • 297
  • 306
  • 319
  • 323
  • 327
  • 338
  • 346
  • 347
  • 352
  • 362
  • 367
  • 378
  • 384
  • 427
  • 444
  • 470
  • 471
  • 494
  • 502
  • 525
  • 532
  • 551
  • 552
  • 601
  • 611
  • 613
  • 614
  • 638
  • 639
  • 653
  • 681
  • 732
  • 770
  • 772
  • 776
  • 789
  • 807
  • 829
  • 862
  • 863
  • 915
  • 916
  • 918
  • 922
  • 942
  • 1004
  • 1021
  • 1275
  • 1333

Prompt Preview

Apply the Clojure 1.12 prompt, including its Java 25 baseline, first. These rules cover Pedestal 0.8.1 connectors, the legacy service API, routes, interceptors, browser security, resource serving, and asynchronous protocols.

Connector and route policy

  • Build the production interceptor stack explicitly with io.pedestal.connector/with-interceptor or with-interceptors and with-routes. default-connector-map starts with an empty :interceptors vector; with-default-interceptors is a development starting point, not a complete application security policy.
  • Construct route specifications and interceptor representations only from trusted code. Pedestal's IntoInterceptor conversion can resolve symbols and evaluate list forms; never feed client-supplied configuration into route expansion or interceptor conversion.
  • Place response-security interceptors before the application error handler, and that handler before parsers and other rejecting components, so handled errors still receive security headers. Attaching a valid :response stops the remaining :enter queue; :leave runs in reverse order only for interceptors already entered. Check early denials, CORS preflights, missing routes, and parser failures as well as successful responses.
  • Store verified identity and tenant data in server-owned request keys. Put authorization in route or table :interceptors before handlers; authorize the effective method and concrete resource after path-params-decoder has decoded :path-params. with-routes installs that decoder after routing; avoid decoding those values