Integration

SAPL provides multiple ways to connect applications to a Policy Decision Point (PDP). This section covers the available client APIs and framework integrations.

Available Interfaces

  • HTTP API: A network API for any programming language that can make HTTP requests. Supports both streaming (Server-Sent Events) and one-shot (JSON) endpoints.
  • Java API: A reactive API based on Project Reactor for embedding a PDP directly in Java applications or connecting to a remote PDP server. Spring Boot applications can use the SAPL starter for automatic configuration and Spring Security integration.
  • Multi-Subscriptions: Batching multiple authorization subscriptions into a single request for efficient bulk authorization.
  • Spring Security: Integrating SAPL with Spring Security for annotation-driven and filter-based authorization.
  • NestJS: Guards and decorators for integrating SAPL authorization into NestJS applications.
  • Python Django: Integrating SAPL authorization into Django applications.
  • Python Flask: Integrating SAPL authorization into Flask applications.
  • Python FastAPI: Integrating SAPL authorization into FastAPI applications.
  • Python Tornado: Integrating SAPL authorization into Tornado applications.
  • Python FastMCP: Integrating SAPL authorization into FastMCP (Model Context Protocol) servers.
  • .NET: Attribute-driven policy enforcement for ASP.NET Core applications.

All client interfaces expose the same authorization semantics: single subscriptions (streaming and one-shot) and multi-subscriptions (streaming and one-shot batch).