Loading src/main/java/org/etsi/osl/mcp/backend/configuration/McpConfiguration.java +17 −10 Original line number Original line Diff line number Diff line package org.etsi.osl.mcp.backend.configuration; package org.etsi.osl.mcp.backend.configuration; import org.springaicommunity.mcp.security.client.sync.AuthenticationMcpTransportContextProvider; import org.springaicommunity.mcp.security.client.sync.oauth2.http.client.OAuth2AuthorizationCodeSyncHttpRequestCustomizer; import org.springframework.ai.mcp.customizer.McpSyncClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration; import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository; import io.modelcontextprotocol.client.transport.customizer.McpSyncHttpClientRequestCustomizer; /** /** * @author Daniel Garnier-Moiroux * @author Daniel Garnier-Moiroux */ */ Loading @@ -13,17 +20,17 @@ class McpConfiguration { // Disabled OAuth2 customization for MCP client - not needed for JWT-based API // Disabled OAuth2 customization for MCP client - not needed for JWT-based API // The MCP server connection doesn't need OAuth2 authentication // The MCP server connection doesn't need OAuth2 authentication // @Bean @Bean // McpSyncHttpClientRequestCustomizer requestCustomizer(OAuth2AuthorizedClientManager oAuth2AuthorizedClientManager, McpSyncHttpClientRequestCustomizer requestCustomizer(OAuth2AuthorizedClientManager oAuth2AuthorizedClientManager, // ClientRegistrationRepository clientRegistrationRepository) { ClientRegistrationRepository clientRegistrationRepository) { // var registrationId = findUniqueClientRegistration(clientRegistrationRepository); var registrationId = findUniqueClientRegistration(clientRegistrationRepository); // return new OAuth2AuthorizationCodeSyncHttpRequestCustomizer(oAuth2AuthorizedClientManager, registrationId); return new OAuth2AuthorizationCodeSyncHttpRequestCustomizer(oAuth2AuthorizedClientManager, registrationId); // } } // @Bean @Bean // McpSyncClientCustomizer syncClientCustomizer() { McpSyncClientCustomizer syncClientCustomizer() { // return (name, syncSpec) -> syncSpec.transportContextProvider(new AuthenticationMcpTransportContextProvider()); return (name, syncSpec) -> syncSpec.transportContextProvider(new AuthenticationMcpTransportContextProvider()); // } } /** /** * Returns the ID of the {@code spring.security.oauth2.client.registration}, if * Returns the ID of the {@code spring.security.oauth2.client.registration}, if Loading Loading
src/main/java/org/etsi/osl/mcp/backend/configuration/McpConfiguration.java +17 −10 Original line number Original line Diff line number Diff line package org.etsi.osl.mcp.backend.configuration; package org.etsi.osl.mcp.backend.configuration; import org.springaicommunity.mcp.security.client.sync.AuthenticationMcpTransportContextProvider; import org.springaicommunity.mcp.security.client.sync.oauth2.http.client.OAuth2AuthorizationCodeSyncHttpRequestCustomizer; import org.springframework.ai.mcp.customizer.McpSyncClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration; import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository; import io.modelcontextprotocol.client.transport.customizer.McpSyncHttpClientRequestCustomizer; /** /** * @author Daniel Garnier-Moiroux * @author Daniel Garnier-Moiroux */ */ Loading @@ -13,17 +20,17 @@ class McpConfiguration { // Disabled OAuth2 customization for MCP client - not needed for JWT-based API // Disabled OAuth2 customization for MCP client - not needed for JWT-based API // The MCP server connection doesn't need OAuth2 authentication // The MCP server connection doesn't need OAuth2 authentication // @Bean @Bean // McpSyncHttpClientRequestCustomizer requestCustomizer(OAuth2AuthorizedClientManager oAuth2AuthorizedClientManager, McpSyncHttpClientRequestCustomizer requestCustomizer(OAuth2AuthorizedClientManager oAuth2AuthorizedClientManager, // ClientRegistrationRepository clientRegistrationRepository) { ClientRegistrationRepository clientRegistrationRepository) { // var registrationId = findUniqueClientRegistration(clientRegistrationRepository); var registrationId = findUniqueClientRegistration(clientRegistrationRepository); // return new OAuth2AuthorizationCodeSyncHttpRequestCustomizer(oAuth2AuthorizedClientManager, registrationId); return new OAuth2AuthorizationCodeSyncHttpRequestCustomizer(oAuth2AuthorizedClientManager, registrationId); // } } // @Bean @Bean // McpSyncClientCustomizer syncClientCustomizer() { McpSyncClientCustomizer syncClientCustomizer() { // return (name, syncSpec) -> syncSpec.transportContextProvider(new AuthenticationMcpTransportContextProvider()); return (name, syncSpec) -> syncSpec.transportContextProvider(new AuthenticationMcpTransportContextProvider()); // } } /** /** * Returns the ID of the {@code spring.security.oauth2.client.registration}, if * Returns the ID of the {@code spring.security.oauth2.client.registration}, if Loading