Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new openam-mcp-server Spring Boot module to the OpenAM reactor, providing an MCP (Model Context Protocol) management server that can manage users/realms and read auth module/chain configuration from OpenAM (with optional OAuth2-based authentication), plus initial unit tests and test fixtures.
Changes:
- Adds a JDK17-activated Maven reactor profile to include the new
openam-mcp-servermodule. - Implements MCP tools/services for users, realms, and authentication configuration, plus request authentication via a Spring MVC interceptor.
- Adds basic Spring Boot + service-level tests and JSON fixtures for OpenAM REST responses.
Reviewed changes
Copilot reviewed 39 out of 39 changed files in this pull request and generated 27 comments.
Show a summary per file
| File | Description |
|---|---|
| pom.xml | Adds a JDK17-activated profile to include openam-mcp-server in the reactor build. |
| openam-mcp-server/pom.xml | New Maven module with Spring Boot + Spring AI MCP server dependencies and build config. |
| openam-mcp-server/README.md | Module documentation, setup instructions, and tool list/examples. |
| openam-mcp-server/src/main/resources/application.yml | Default configuration for the MCP server and OpenAM connection/auth settings. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/OpenAmMcpServerApplication.java | Spring Boot app entrypoint; RestClient + tool registration beans. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/config/OpenAMConfig.java | @ConfigurationProperties record for OpenAM connection/auth settings. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/config/WebConfig.java | Registers the authentication interceptor for /mcp/**. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/controller/OAuth2Controller.java | Proxies OpenAM OAuth2 .well-known endpoints through this server. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/security/AuthInterceptor.java | Auth flow (username/password or OAuth2), token caching, and request token propagation. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/service/OpenAMAbstractService.java | Base service logic for retrieving the request token and default realm. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/service/UserService.java | MCP tools for listing users, setting attributes/passwords, creating and deleting users. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/service/RealmService.java | MCP tool for listing realms. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/service/AuthenticationConfigService.java | MCP tools for listing auth modules, chains, and available module types; schema/settings mapping. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/SearchResponseDTO.java | DTO for OpenAM list/search responses. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/UserDTO.java | DTO for OpenAM user JSON. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/User.java | Public user model returned by MCP tools. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/RealmDTO.java | DTO for OpenAM realm JSON. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/Realm.java | Public realm model returned by MCP tools. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/PropertySchemaDTO.java | DTO for module schema property metadata. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/CoreAuthModuleDTO.java | DTO for “all available auth module types” response. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/CoreAuthModule.java | Public model for available auth module types. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/AuthModuleSchemaDTO.java | DTO for module schema response. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/AuthModuleDTO.java | DTO for realm auth module instances. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/AuthModule.java | Public auth module model with settings map. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/AuthChainDTO.java | DTO for auth chain response. |
| openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/AuthChain.java | Public auth chain model with resolved module names. |
| openam-mcp-server/src/test/java/org/openidentityplatform/openam/mcp/server/OpenAmMcpServerApplicationTests.java | Spring context smoke test. |
| openam-mcp-server/src/test/java/org/openidentityplatform/openam/mcp/server/service/OpenAMServiceTest.java | Shared RestClient/RequestContextHolder mocking setup for service tests. |
| openam-mcp-server/src/test/java/org/openidentityplatform/openam/mcp/server/service/UserServiceTest.java | Unit tests for user-related tool methods. |
| openam-mcp-server/src/test/java/org/openidentityplatform/openam/mcp/server/service/RealmServiceTest.java | Unit test for realm listing. |
| openam-mcp-server/src/test/java/org/openidentityplatform/openam/mcp/server/service/AuthenticationConfigServiceTest.java | Unit tests for auth chain/module listing. |
| openam-mcp-server/src/test/resources/users/users-list-response.json | Test fixture for OpenAM user list response. |
| openam-mcp-server/src/test/resources/users/user-response.json | Test fixture for OpenAM user response. |
| openam-mcp-server/src/test/resources/realms/realms-response.json | Test fixture for OpenAM realm list response. |
| openam-mcp-server/src/test/resources/auth/modules-response.json | Test fixture for realm auth module instances response. |
| openam-mcp-server/src/test/resources/auth/module-settings-response.json | Test fixture for module settings response. |
| openam-mcp-server/src/test/resources/auth/module-schema-response.json | Test fixture for module schema response. |
| openam-mcp-server/src/test/resources/auth/chains-response.json | Test fixture for realm auth chains response. |
| openam-mcp-server/src/test/resources/auth/all-modules-response.json | Test fixture for “all available auth module types” response. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...erver/src/main/java/org/openidentityplatform/openam/mcp/server/security/AuthInterceptor.java
Show resolved
Hide resolved
...ain/java/org/openidentityplatform/openam/mcp/server/service/AuthenticationConfigService.java
Outdated
Show resolved
Hide resolved
...erver/src/main/java/org/openidentityplatform/openam/mcp/server/security/AuthInterceptor.java
Outdated
Show resolved
Hide resolved
...erver/src/test/java/org/openidentityplatform/openam/mcp/server/service/RealmServiceTest.java
Outdated
Show resolved
Hide resolved
...mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/service/UserService.java
Show resolved
Hide resolved
...erver/src/main/java/org/openidentityplatform/openam/mcp/server/security/AuthInterceptor.java
Outdated
Show resolved
Hide resolved
...er/src/main/java/org/openidentityplatform/openam/mcp/server/controller/OAuth2Controller.java
Outdated
Show resolved
Hide resolved
openam-mcp-server/src/main/java/org/openidentityplatform/openam/mcp/server/model/Realm.java
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 40 out of 40 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...erver/src/main/java/org/openidentityplatform/openam/mcp/server/security/AuthInterceptor.java
Outdated
Show resolved
Hide resolved
...ain/java/org/openidentityplatform/openam/mcp/server/service/AuthenticationConfigService.java
Show resolved
Hide resolved
...erver/src/main/java/org/openidentityplatform/openam/mcp/server/security/AuthInterceptor.java
Show resolved
Hide resolved
...er/src/main/java/org/openidentityplatform/openam/mcp/server/controller/OAuth2Controller.java
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
OpenAM MCP Server is a lightweight management service for OpenAM user accounts. It allows administrators to create, update, delete, and reset passwords for users, as well as retrieve authentication modules and chains configurations.