Package com.ibm.websphere.security.jwt
Class JwtHeaderInjecter
- java.lang.Object
-
- com.ibm.websphere.security.jwt.JwtHeaderInjecter
-
- All Implemented Interfaces:
jakarta.ws.rs.client.ClientRequestFilter
public class JwtHeaderInjecter extends java.lang.Object implements jakarta.ws.rs.client.ClientRequestFilter
These jax-rs client request filter APIs retrieve the JWT token from the subject on the thread or self issue a JWT token and then adds the token to the jax-rs client request header to propagate the JWT token.
The code snippet that is shown here demonstrate how to use these APIs to propagate the token.
- Sample code to propagate the JWT Token
-
// 1. Create a jax-rs client jakarta.ws.rs.client.Client client = jakarta.ws.rs.client.ClientBuilder.newClient(); // 2. Register the jwt client request filter api using one of the three ways shown here client.register(new JwtHeaderInjecter()); or client.register(new JwtHeaderInjecter("customHeader")); or client.register(new JwtHeaderInjecter("customHeader","jwtBuilder")); // 3. Make REST request - The jwt token from the subject on the thread will be added to the default header "Authorization" or to the custom header String response = client.target(requesturl).request("text/plain").get(String.class)
- Since:
- 1.1
-
-
Constructor Summary
Constructors Constructor Description JwtHeaderInjecter()
Retrieves the JWT token from the Subject on the thread.JwtHeaderInjecter(java.lang.String headername)
Retrieves the JWT token from the Subject on the thread.JwtHeaderInjecter(java.lang.String headername, java.lang.String builder)
Self issues a JWT token using the specified JWT builder configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
filter(jakarta.ws.rs.client.ClientRequestContext requestContext)
Adds the JWT token to the Authorization header in the jax-rs client requests to propagate the token.
-
-
-
Constructor Detail
-
JwtHeaderInjecter
public JwtHeaderInjecter() throws java.lang.Exception
Retrieves the JWT token from the Subject on the thread. The filter will add the JWT token to the Authorization header using the default header "Authorization".- Throws:
java.lang.Exception
-
JwtHeaderInjecter
public JwtHeaderInjecter(java.lang.String headername) throws java.lang.Exception
Retrieves the JWT token from the Subject on the thread. The filter will add the JWT token to the header using the specified header name.- Parameters:
headername
- custom header name to use.- Throws:
java.lang.Exception
-
JwtHeaderInjecter
public JwtHeaderInjecter(java.lang.String headername, java.lang.String builder) throws java.lang.Exception
Self issues a JWT token using the specified JWT builder configuration. The filter will add the JWT token to the header using the specified header name.- Parameters:
headername
- custom header name to use.builder
- ID of a correspondingjwtBuilder
element in the server configuration.- Throws:
java.lang.Exception
-
-
Method Detail
-
filter
public void filter(jakarta.ws.rs.client.ClientRequestContext requestContext)
Adds the JWT token to the Authorization header in the jax-rs client requests to propagate the token.- Specified by:
filter
in interfacejakarta.ws.rs.client.ClientRequestFilter
- Parameters:
requestContext
- jax-rs client request context
-
-