Pedestal 0.8.1
Last reviewed Sep 24, 2026
Prompt Details
Prompt Composition
3prompts
- Java 25113 lines · 2.8K tokens
- Clojure 1.1247 lines · 919 tokens
- 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-interceptororwith-interceptorsandwith-routes.default-connector-mapstarts with an empty:interceptorsvector;with-default-interceptorsis a development starting point, not a complete application security policy. - Construct route specifications and interceptor representations only from trusted code. Pedestal's
IntoInterceptorconversion 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
:responsestops the remaining:enterqueue;:leaveruns 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
:interceptorsbefore handlers; authorize the effective method and concrete resource afterpath-params-decoderhas decoded:path-params.with-routesinstalls that decoder after routing; avoid decoding those values