Skip to content
alyn
rrezartprebreza

Spring AI Security skill

Use when threat-modeling or hardening a Spring AI RAG, chat, or tool-calling workflow against prompt injection, unauthorized actions, data exposure, or unbounded execution. Ordinary model-provider integration alone does not require this review.

$npx skills add rrezartprebreza/spring-boot-skills --skill spring-ai-security
View this skill on GitHubrrezartprebreza/spring-boot-skills/skills/spring-boot-3/spring-ai-security/SKILL.md
Pack stars
353
Pack installs
3k
Alyn Score
54/99
Updated
4 h ago
License
MIT
– views – installs via Alyn

rrezartprebreza

Spring AI Security

Install Spring AI Security

Pick your agent. Every command is ready to paste.

$npx skills add rrezartprebreza/spring-boot-skills --skill spring-ai-security

The open skills CLI detects your agents (Claude Code, Cursor, Codex and 70+ more) and installs to the right folder. Add -g to install globally.

01

Install it

Run the command above, or upload the folder in Claude.

02

Ask naturally

Describe the task. Your agent loads spring-ai-security when the request matches its description.

03

Name it if needed

If it does not trigger, say “use the spring-ai-security skill”. In Codex, type $spring-ai-security.

The skill itself

SKILL.md

FolderGitHub

Spring AI Security

Version boundary

Target Spring Boot 3 and the project's compatible Spring AI 1.x line. Preserve the repository's managed coordinates and provider choices. The Java 17 tool boundary here is deliberately independent of Spring AI APIs. Wire it into the selected version's tool mechanism and verify that adapter separately.

Establish the trust boundary

Map user input, uploaded documents, retrieved chunks, memory, tool output and rendered model responses. All can contain attacker-controlled content. A prompt instruction such as "ignore malicious text", a delimiter, classifier or keyword denylist is not an authorization boundary. Record what the model can read and which effects its tools can cause.

  • Derive caller and tenant from verified server-side identity, not prompts, model arguments or an arbitrary client header. Scope retrieval in the storage query and recheck authorization before returning documents; output-only filtering is too late.
  • Enforce the same ACLs during ingestion, vector retrieval, document lookup and cache/memory reuse. Bind conversation IDs to caller/tenant authorization; randomness alone is insufficient.
  • Expose narrowly typed tools, not shell execution, raw SQL, arbitrary URLs or general admin APIs. Validate arguments and enforce permissions in application code immediately before effects.
  • Require a trusted approval flow for sensitive writes: bind approval to actor, tenant, exact normalized action/arguments, expiry and one-time use. Reauthorize on execution. A model-supplied approved=true field or stale approval after argument changes is not consent.
  • Bound tool calls, model iterations, response size, retrieval size, deadlines and per-user spend. Carry the same budget through retries and nested calls; a new tool instance must not reset a request's limit. Apply network/DB timeouts and cancellation independently of call counts.
  • Restrict outbound destinations and data sent to providers. Do not send credentials or unnecessary private content. Treat returned HTML/Markdown/URLs as untrusted when rendering.
  • Audit decisions and identifiers without recording full prompts, documents, tokens or secrets.

Tool example and verification

DocumentReadTool accepts only a document UUID. Its caller identity is server-supplied and immutable, permissions are checked in code, and a server-owned CallBudget is shared across every tool instance for that authenticated turn. All invocation attempts consume it, including denied or malformed calls. Do not create a new budget on retry or share a caller/tool singleton across users. Never expose constructors, caller identity or budgets as tool input. The reader must enforce tenant AND account access in its storage query. For summarizing a preselected upload, prefer no tool at all when a server-authorized document load is sufficient.

The example is read-only. It does not implement approval for writes, a Spring AI adapter, vector-store ACLs, model-output sanitization or network timeouts. Its result-size check runs after loading the body: also bound storage reads/streaming and total bytes in the adapter. The fixture tests identity scoping, invalid arguments, missing permission, exhausted budgets and oversized results without calling a model. It is not a measured prompt-injection detection benchmark.

Use the good scenario and the bad scenario to plan tests involving hostile retrieved text, cross-user conversation IDs, cross-tenant documents, repeated tool calls and legitimate text containing words such as "delete". Assert the unauthorized effect never occurs; model refusal text alone is not a pass.

Review output

List the trust boundaries, allowed effects, demonstrated controls and remaining gaps. Label each claim confirmed, suspected, or not verified; distinguish deterministic policy tests from provider/model evaluations. Preserve redacted evidence and test versions. Request approval before sending private fixtures to a model provider or testing live tools.

Gotchas

  • Agent trusts a system prompt to enforce permissions - authorize every tool call in application code.
  • Agent lets the model choose a tenant ID - derive scope from the authenticated server context.
  • Agent resets budgets on retries - share the request budget and bound nested tool execution.
  • Agent calls a filtered response proof of safety - assert that forbidden effects never happened.

Official sources

Tips for Spring AI Security

  • • Start a fresh session after installing so your agent picks up the new skill.
  • • It bundles reference files. The agent reads them only when needed, so they cost no context until then.
  • • It is part of a pack with 30 skills. Install only the ones you need with --skill to keep triggers precise.
  • • If two skills overlap, mention the one you want by name.

Questions about Spring AI Security

What does the Spring AI Security skill do?

Use when threat-modeling or hardening a Spring AI RAG, chat, or tool-calling workflow against prompt injection, unauthorized actions, data exposure, or unbounded execution. Ordinary model-provider integration alone does not require this review.

How do I install Spring AI Security?

Run "npx skills add rrezartprebreza/spring-boot-skills --skill spring-ai-security" in your project. The skills CLI installs it for Claude Code, Cursor, Codex and 70+ other agents. In Claude on the web, upload the skill folder as a ZIP under Customize > Skills.

Does Spring AI Security work in Cursor and Codex?

Yes. Spring AI Security uses the open SKILL.md format, so it works in Claude Code, Claude, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot and other agents that support agent skills.

Is Spring AI Security free?

Spring AI Security is open source on GitHub under the MIT license. It is free to install; check the license before commercial use.

Who made Spring AI Security?

Spring AI Security is published by rrezartprebreza in the rrezartprebreza/spring-boot-skills repository, together with 29 other skills.

Similar skills. From other creators.