Backoffice layer library extending the application module with customer impersonation, audit trail, and enhanced security context.
- Overview
- Features
- Requirements
- Installation
- Quick Start
- Configuration
- Documentation
- Contributing
- License
Firefly Framework Backoffice extends the application layer for internal backoffice and portal systems. It adds backoffice-specific context management, customer impersonation capabilities, enhanced security context with operator tracking, and abstract controllers tailored for administrative operations.
The module provides BackofficeContext and BackofficeSecurityContext which extend the application-layer contexts with operator identity, impersonated customer tracking, and audit trail support. Abstract controllers provide standardized REST patterns for backoffice resource management.
This library is designed for internal-facing microservices that require administrative capabilities, customer support workflows, and enhanced audit tracking beyond what the standard application layer provides.
BackofficeContextwith operator identity and impersonation supportBackofficeSecurityContextextending application security contextAbstractBackofficeControllerfor standardized backoffice REST endpointsAbstractBackofficeResourceControllerfor resource-based CRUD operationsBackofficeContextResolverfor extracting backoffice context from requestsDefaultBackofficeContextResolverwith configurable header mappingsBackofficeSessionContextMapperfor session-to-context mapping- Customer impersonation tracking and audit trail
- Java 21+
- Spring Boot 3.x
- Maven 3.9+
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-backoffice</artifactId>
<version>26.02.04</version>
</dependency>import org.fireflyframework.common.backoffice.controller.AbstractBackofficeController;
import org.fireflyframework.common.backoffice.context.BackofficeContext;
@RestController
@RequestMapping("/api/backoffice/customers")
public class CustomerBackofficeController extends AbstractBackofficeController {
@GetMapping("/{customerId}")
public Mono<CustomerDetails> getCustomer(
@PathVariable String customerId,
BackofficeContext context) {
// context provides operator identity and impersonation info
return customerService.findById(customerId, context);
}
}firefly:
backoffice:
context:
operator-header: X-Operator-Id
impersonation-header: X-Impersonated-CustomerNo additional documentation available for this project.
Contributions are welcome. Please read the CONTRIBUTING.md guide for details on our code of conduct, development process, and how to submit pull requests.
Copyright 2024-2026 Firefly Software Solutions Inc.
Licensed under the Apache License, Version 2.0. See LICENSE for details.