Title: Feature: Authorization support by bzsurbhi · Pull Request #297 · modelcontextprotocol/java-sdk · GitHub
Open Graph Title: Feature: Authorization support by bzsurbhi · Pull Request #297 · modelcontextprotocol/java-sdk
X Title: Feature: Authorization support by bzsurbhi · Pull Request #297 · modelcontextprotocol/java-sdk
Description: OAuth Authentication Support for MCP Java SDK Overview This PR adds comprehensive OAuth 2.0 authentication support to the MCP Java SDK, enabling secure communication between clients and servers. Key Features OAuth 2.0 Authorization Code Flow with PKCE support Server-side authentication middleware for validating access tokens Client-side authentication for obtaining and refreshing tokens Seamless integration with existing transport layer Example Implementation of an authenticated MCP client and server Implementation Details Server-Side Components OAuthHttpServletSseServerTransportProvider: Extends the standard transport provider to handle OAuth endpoints AuthContext: Thread-local storage for authentication information BearerAuthenticator: Validates Bearer tokens in Authorization headers ClientAuthenticator: Validates client credentials Client-Side Components OAuthClientProvider: Manages OAuth flow and token lifecycle TokenStorage: Interface for storing tokens securely HttpClientAuthenticator: Adds authentication headers to outgoing requests AuthenticatedTransportBuilder: Adds authentication to transport builders Authentication Flow Client requests authorization via /authorize endpoint User authenticates and grants permissions Server redirects to client with authorization code Client exchanges code for access and refresh tokens via /token endpoint Client includes access token in subsequent API requests Server validates token and provides access to protected resources Example Implementation The PR includes a complete example in the auth-example directory demonstrating: Server setup with OAuth endpoints Client authentication flow Breaking Changes This is a completely new change Types of changes Bug fix (non-breaking change which fixes an issue) New feature (non-breaking change which adds functionality) Breaking change (fix or feature that would cause existing functionality to change) Documentation update Checklist I have read the MCP Documentation My code follows the repository's style guidelines New and existing tests pass locally I have added appropriate error handling I have added or updated documentation as needed Additional context
Open Graph Description: OAuth Authentication Support for MCP Java SDK Overview This PR adds comprehensive OAuth 2.0 authentication support to the MCP Java SDK, enabling secure communication between clients and servers. Ke...
X Description: OAuth Authentication Support for MCP Java SDK Overview This PR adds comprehensive OAuth 2.0 authentication support to the MCP Java SDK, enabling secure communication between clients and servers. Ke...
Opengraph URL: https://github.com/modelcontextprotocol/java-sdk/pull/297
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:7ab6501f-d3f2-02ad-50c5-96e49ec00e5d |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | A28C:35ABB0:1427F3D:1A75125:6A5C5A67 |
| html-safe-nonce | 4088387e537732e91130e9ccc589759c9f288e8db82a2d9a8c62b71fa1de23af |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMjhDOjM1QUJCMDoxNDI3RjNEOjFBNzUxMjU6NkE1QzVBNjciLCJ2aXNpdG9yX2lkIjoiNzc4NzkwNDE3NzcyOTcyMjk4MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 3ab39a0c577cb8e537a856db081323cbfe5ea38c9cf04b63dbd91215e037caa2 |
| hovercard-subject-tag | pull_request:2574736220 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/modelcontextprotocol/java-sdk/pull/297/files |
| twitter:image | https://avatars.githubusercontent.com/u/115104450?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/115104450?s=400&v=4 |
| og:image:alt | OAuth Authentication Support for MCP Java SDK Overview This PR adds comprehensive OAuth 2.0 authentication support to the MCP Java SDK, enabling secure communication between clients and servers. Ke... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/modelcontextprotocol/java-sdk git https://github.com/modelcontextprotocol/java-sdk.git |
| octolytics-dimension-user_id | 182288589 |
| octolytics-dimension-user_login | modelcontextprotocol |
| octolytics-dimension-repository_id | 919609219 |
| octolytics-dimension-repository_nwo | modelcontextprotocol/java-sdk |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 919609219 |
| octolytics-dimension-repository_network_root_nwo | modelcontextprotocol/java-sdk |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 9c975978430e9ad293956f2bbdaf153b1bd84a99 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width