Developer Guide¶
Welcome to the geOrchestra Gateway Developer Guide. This guide is intended for developers who want to contribute to or extend the geOrchestra Gateway.
Introduction¶
geOrchestra Gateway is built on Spring Cloud Gateway, a library for building API gateways on top of Spring WebFlux. It provides a centralized entry point for all geOrchestra applications, handling authentication, authorization, and request routing.
Overview¶
The gateway codebase is organized into the following main packages:
org.georchestra.gateway.app
: Main application codeorg.georchestra.gateway.security
: Security configuration and componentsorg.georchestra.gateway.filter
: Custom gateway filtersorg.georchestra.gateway.model
: Data modelsorg.georchestra.gateway.handler
: Request handlersorg.georchestra.gateway.autoconfigure
: Auto-configuration classesorg.georchestra.gateway.logging
: Structured logging and MDC propagation
Key Extension Points¶
The gateway provides several extension points:
- Custom Filters: Add custom logic to the request processing pipeline
- Authentication Providers: Add new authentication methods
- User Mappers: Customize how authentication information is mapped to geOrchestra users
- Authorization Managers: Customize access control logic
- Logging and MDC: Extend structured logging and MDC propagation in reactive contexts
Getting Started¶
To get started with contributing to the geOrchestra Gateway, follow these steps:
- Fork the repository
- Clone your fork
- Set up your development environment
- Make your changes
- Run tests
- Submit a pull request
See the following sections for more detailed information:
- Building: How to build the gateway
- Code Style: Coding conventions and style guidelines
- Project Structure: Overview of the project structure
- Testing: How to write and run tests
- Custom Filters: How to create custom gateway filters
- Authentication: How to extend authentication mechanisms
- Logging: How to work with the structured logging system
- WebFlux MDC Propagation: How to use MDC context in reactive applications
- Contributing: Guidelines for contributing to the project