How moneyadviceservice/pdp-test-harness works
PDP C&A Stub is a Spring REST simulator for system tests. A client requests tokens, registers resources, obtains permissions, and introspects tokens; the README also documents configuration, service-availability and view-response behavior. Controllers implement API interfaces and delegate stub logic to services, which authenticate requests, use JWT logic, and access embedded H2 persistence. The graph includes documented API branches and sampled service relationships; unsampled controller wiring is shown only where README or index evidence supports it.
Main entry points: UserRepository.java User repository · PermService.java Permission service · IntrospectService.java Introspection service · ResourceRepository.java Resource repository
Components 21
REST API
- Token endpoint
src/main/java/uk/org/ca/stub/simulator/rest/controller/TokenApiController.java - Resource registration
src/main/java/uk/org/ca/stub/simulator/rest/controller/RreguriApiController.java - Permission endpoint
src/main/java/uk/org/ca/stub/simulator/rest/controller/PermApiController.java - Introspection endpoint
src/main/java/uk/org/ca/stub/simulator/rest/controller/IntrospectApiController.java - Configuration endpoint
src/main/java/uk/org/ca/stub/simulator/rest/controller/ConfigurationApiController.java - Availability endpoint
src/main/java/uk/org/ca/stub/simulator/rest/controller/ServiceAvailabilityApiController.java - View response endpoint
src/main/java/uk/org/ca/stub/simulator/rest/controller/ViewResponseApiController.java
Stub Logic
- Token service
src/main/java/uk/org/ca/stub/simulator/service/TokenService.java - Registration service
src/main/java/uk/org/ca/stub/simulator/service/RegisterService.java - Permission service
src/main/java/uk/org/ca/stub/simulator/service/PermService.java - Introspection service
src/main/java/uk/org/ca/stub/simulator/service/IntrospectService.java - JWT operations
src/main/java/uk/org/ca/stub/simulator/service/JwtService.java - PAT authentication
src/main/java/uk/org/ca/stub/simulator/service/AbstractAuthenticatedService.java - Configuration service
src/main/java/uk/org/ca/stub/simulator/service/ConfigurationService.java
Persistence
- Registered resources
src/main/java/uk/org/ca/stub/simulator/entity/RegisteredResource.java - Users
src/main/java/uk/org/ca/stub/simulator/entity/User.java - Resource repository
src/main/java/uk/org/ca/stub/simulator/repository/ResourceRepository.java - User repository
src/main/java/uk/org/ca/stub/simulator/repository/UserRepository.java
API Support
- API models
src/main/java/uk/org/ca/stub/simulator/rest/model - Exception handling
src/main/java/uk/org/ca/stub/simulator/rest/exception/GeneralExceptionHandler.java
Other components
- API client
Connections 23
- API client → Token endpoint: requests token
README.md - API client → Resource registration: registers resource
README.md - API client → Permission endpoint: requests permission
README.md - API client → Introspection endpoint: introspects token
README.md - Token endpoint → Token service: delegates to
src/main/java/uk/org/ca/stub/simulator/rest/controller/TokenApiController.java - Resource registration → Registration service: delegates to
src/main/java/uk/org/ca/stub/simulator/rest/controller/RreguriApiController.java - Permission endpoint → Permission service: delegates to
src/main/java/uk/org/ca/stub/simulator/rest/controller/PermApiController.java - Introspection endpoint → Introspection service: delegates to
src/main/java/uk/org/ca/stub/simulator/rest/controller/IntrospectApiController.java - Availability endpoint → Configuration service: uses configuration
src/main/java/uk/org/ca/stub/simulator/rest/controller/ServiceAvailabilityApiController.java - View response endpoint → Configuration service: uses configuration
src/main/java/uk/org/ca/stub/simulator/rest/controller/ViewResponseApiController.java - Registration service → Resource repository: reads and writes
src/main/java/uk/org/ca/stub/simulator/service/RegisterService.java - Registration service → User repository: validates PAT
src/main/java/uk/org/ca/stub/simulator/service/RegisterService.java - Permission service → Resource repository: finds resource
src/main/java/uk/org/ca/stub/simulator/service/PermService.java - Permission service → User repository: validates PAT
src/main/java/uk/org/ca/stub/simulator/service/PermService.java - Permission service → JWT operations: generates PMT
src/main/java/uk/org/ca/stub/simulator/service/PermService.java - Introspection service → Resource repository: looks up resource
src/main/java/uk/org/ca/stub/simulator/service/IntrospectService.java - Introspection service → User repository: validates PAT
src/main/java/uk/org/ca/stub/simulator/service/IntrospectService.java - Introspection service → JWT operations: validates and parses
src/main/java/uk/org/ca/stub/simulator/service/IntrospectService.java - PAT authentication → User repository: checks stored PAT
src/main/java/uk/org/ca/stub/simulator/service/AbstractAuthenticatedService.java - Resource repository → Registered resources: persists
src/main/java/uk/org/ca/stub/simulator/repository/ResourceRepository.java - User repository → Users: persists
src/main/java/uk/org/ca/stub/simulator/repository/UserRepository.java - Token endpoint → API models: returns API models
src/main/java/uk/org/ca/stub/simulator/rest/controller/TokenApiController.java - Exception handling → API models: formats problem details
src/main/java/uk/org/ca/stub/simulator/rest/exception/GeneralExceptionHandler.java