Skip to content

Update prod#4682

Merged
IsmathBadsha merged 8 commits intoprodfrom
staging
Feb 10, 2026
Merged

Update prod#4682
IsmathBadsha merged 8 commits intoprodfrom
staging

Conversation

@navaneethsnair1
Copy link
Contributor

Link to the blog here

@navaneethsnair1 navaneethsnair1 requested a review from ayoho February 9, 2026 14:38
@navaneethsnair1 navaneethsnair1 marked this pull request as ready for review February 9, 2026 15:09
This beta release of Open Liberty includes important updates to the `mcpServer-1.0` feature including role-based authorization, request IDs, the `_meta` field, and a few bug fixes.

=== Prerequisites
To use the `mcpServer-1.0` feature, `Java 17` or later must be installed on the system.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To use the `mcpServer-1.0` feature, `Java 17` or later must be installed on the system.
To use the `mcpServer-1.0` feature, Java 17 or later must be installed on the system.

=== Prerequisites
To use the `mcpServer-1.0` feature, `Java 17` or later must be installed on the system.

=== Implement Role-based authorization for MCP tools via annotations
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
=== Implement Role-based authorization for MCP tools via annotations
=== Implement role-based authorization for MCP tools via annotations

The following new annotations allow you to restrict tool usage through authorization policies:

. `@DenyAll` - Resource is denied. This is the strictest policy.
. `@RolesAllowed` - Resource is allowed for pre-authorised users in a role (same as a group in liberty).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
. `@RolesAllowed` - Resource is allowed for pre-authorised users in a role (same as a group in liberty).
. `@RolesAllowed` - Resource is allowed for pre-authorised users in a role (same as a group in Liberty).

==== Steps required

* Create an application with `@ApplicationScoped` and expose the tool with the required annotations.
* Create a `server.xml` with users
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for my own edification, does this extend to things like LDAP registries? Or is this just limited to basic registries?


* Create an application with `@ApplicationScoped` and expose the tool with the required annotations.
* Create a `server.xml` with users
* Ensure that the groups map to the Roles created in the Tool
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Ensure that the groups map to the Roles created in the Tool
* Ensure that the groups map to the roles created in the tool


In other situations we could also add multiple roles to tools: `@RolesAllowed("Admins, Moderators")`. This could make sense if the roles would have no overlapping users.

_**Authorization Configuration**_
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
_**Authorization Configuration**_
**Authorization Configuration**

</server>
----

If another role were added to the code, say `RoleDoesNotExistInServerConfig` then any user (for e.g. Sally) was trying to authenticate with `@RolesAllowed("RoleDoesNotExistInServerConfig")` would not be able to have access to the resource until that role had a group created for it in the `server.xml` file and that user was mapped to that group.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If another role were added to the code, say `RoleDoesNotExistInServerConfig` then any user (for e.g. Sally) was trying to authenticate with `@RolesAllowed("RoleDoesNotExistInServerConfig")` would not be able to have access to the resource until that role had a group created for it in the `server.xml` file and that user was mapped to that group.
If a new role like `RoleDoesNotExistInServerConfig` were added to the code, any user (e.g., Sally) attempting to authenticate with a resource annotated with `@RolesAllowed("RoleDoesNotExistInServerConfig")` would be denied access to the resource. Access would only be granted after creating a corresponding group for that role in the server.xml file and mapping the user to that group.


=== Notable bug fixes in MCP 1.0

==== 1) MCP Server feature used ISO-8859-1 and did not handle non-latin characters
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
==== 1) MCP Server feature used ISO-8859-1 and did not handle non-latin characters
==== 1) MCP Server feature used ISO-8859-1 and did not handle non-Latin characters

@IsmathBadsha IsmathBadsha merged commit 5fdeb1a into prod Feb 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants