Package com.nimbusds.jose
Class JWSHeader
java.lang.Object
com.nimbusds.jose.Header
com.nimbusds.jose.JWSHeader
- All Implemented Interfaces:
Serializable
JSON Web Signature (JWS) header. This class is immutable.
Supports the following registered
header parameters
:
- alg
- jku
- jwk
- x5u
- x5t
- x5t#S256
- x5c
- kid
- typ
- cty
- crit
- b64
The header may also include custom
parameters
; these will be serialised and parsed along the registered ones.
Example header of a JSON Web Signature (JWS) object using the
HMAC SHA-256 algorithm
:
{ "alg" : "HS256" }
- Version:
- 2024-04-20
- Author:
- Vladimir Dzhuvinov
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Builder for constructing JSON Web Signature (JWS) headers. -
Field Summary
Fields inherited from class com.nimbusds.jose.Header
MAX_HEADER_STRING_LENGTH
-
Constructor Summary
ConstructorsConstructorDescriptionJWSHeader
(JWSAlgorithm alg) Creates a new minimal JSON Web Signature (JWS) header.JWSHeader
(JWSAlgorithm alg, JOSEObjectType typ, String cty, Set<String> crit, URI jku, JWK jwk, URI x5u, Base64URL x5t, Base64URL x5t256, List<Base64> x5c, String kid, boolean b64, Map<String, Object> customParams, Base64URL parsedBase64URL) Creates a new JSON Web Signature (JWS) header.JWSHeader
(JWSAlgorithm alg, JOSEObjectType typ, String cty, Set<String> crit, URI jku, JWK jwk, URI x5u, Base64URL x5t, Base64URL x5t256, List<Base64> x5c, String kid, Map<String, Object> customParams, Base64URL parsedBase64URL) Deprecated.Deep copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionGets the algorithm (alg
) parameter.Gets the names of all included parameters (registered and custom) in the header instance.getJWK()
Gets the public JSON Web Key (JWK) (jwk
) parameter.Gets the public JSON Web Key (JWK) Set URL (jku
) parameter.getKeyID()
Gets the key ID (kid
) parameter.Gets the registered parameter names for JWS headers.Gets the X.509 certificate chain (x5c
) parameter corresponding to the key used to sign or encrypt the JWS / JWE object.Gets the X.509 certificate SHA-256 thumbprint (x5t#S256
) parameter.Deprecated.Gets the X.509 certificate URL (x5u
) parameter.boolean
Returns the Base64URL-encode payload (b64
) parameter.static JWSHeader
Parses a JWS header from the specified Base64URL.static JWSHeader
Parses a JWS header from the specified JSON object string.static JWSHeader
Parses a JWS header from the specified JSON object string.static JWSHeader
Parses a JWS header from the specified JSON object.static JWSHeader
Parses a JWS header from the specified JSON object.Returns a JSON object representation of the header.Methods inherited from class com.nimbusds.jose.Header
getContentType, getCriticalParams, getCustomParam, getCustomParams, getParsedBase64URL, getType, join, parseAlgorithm, toBase64URL, toString
-
Constructor Details
-
JWSHeader
Creates a new minimal JSON Web Signature (JWS) header.Note: Use
PlainHeader
to create a header with algorithmnone
.- Parameters:
alg
- The JWS algorithm (alg
) parameter. Must not be "none" ornull
.
-
JWSHeader
@Deprecated public JWSHeader(JWSAlgorithm alg, JOSEObjectType typ, String cty, Set<String> crit, URI jku, JWK jwk, URI x5u, Base64URL x5t, Base64URL x5t256, List<Base64> x5c, String kid, Map<String, Object> customParams, Base64URL parsedBase64URL) Deprecated.Creates a new JSON Web Signature (JWS) header.Note: Use
PlainHeader
to create a header with algorithmnone
.- Parameters:
alg
- The JWS algorithm (alg
) parameter. Must not be "none" ornull
.typ
- The type (typ
) parameter,null
if not specified.cty
- The content type (cty
) parameter,null
if not specified.crit
- The names of the critical header (crit
) parameters, empty set ornull
if none.jku
- The JSON Web Key (JWK) Set URL (jku
) parameter,null
if not specified.jwk
- The X.509 certificate URL (jwk
) parameter,null
if not specified.x5u
- The X.509 certificate URL parameter (x5u
),null
if not specified.x5t
- The X.509 certificate SHA-1 thumbprint (x5t
) parameter,null
if not specified.x5t256
- The X.509 certificate SHA-256 thumbprint (x5t#S256
) parameter,null
if not specified.x5c
- The X.509 certificate chain (x5c
) parameter,null
if not specified.kid
- The key ID (kid
) parameter,null
if not specified.customParams
- The custom parameters, empty map ornull
if none.parsedBase64URL
- The parsed Base64URL,null
if the header is created from scratch.
-
JWSHeader
public JWSHeader(JWSAlgorithm alg, JOSEObjectType typ, String cty, Set<String> crit, URI jku, JWK jwk, URI x5u, Base64URL x5t, Base64URL x5t256, List<Base64> x5c, String kid, boolean b64, Map<String, Object> customParams, Base64URL parsedBase64URL) Creates a new JSON Web Signature (JWS) header.Note: Use
PlainHeader
to create a header with algorithmnone
.- Parameters:
alg
- The JWS algorithm (alg
) parameter. Must not be "none" ornull
.typ
- The type (typ
) parameter,null
if not specified.cty
- The content type (cty
) parameter,null
if not specified.crit
- The names of the critical header (crit
) parameters, empty set ornull
if none.jku
- The JSON Web Key (JWK) Set URL (jku
) parameter,null
if not specified.jwk
- The X.509 certificate URL (jwk
) parameter,null
if not specified.x5u
- The X.509 certificate URL parameter (x5u
),null
if not specified.x5t
- The X.509 certificate SHA-1 thumbprint (x5t
) parameter,null
if not specified.x5t256
- The X.509 certificate SHA-256 thumbprint (x5t#S256
) parameter,null
if not specified.x5c
- The X.509 certificate chain (x5c
) parameter,null
if not specified.kid
- The key ID (kid
) parameter,null
if not specified.b64
-true
to Base64URL encode the payload for standard JWS serialisation,false
for unencoded payload (RFC 7797).customParams
- The custom parameters, empty map ornull
if none.parsedBase64URL
- The parsed Base64URL,null
if the header is created from scratch.
-
JWSHeader
Deep copy constructor.- Parameters:
jwsHeader
- The JWS header to copy. Must not benull
.
-
-
Method Details
-
getRegisteredParameterNames
Gets the registered parameter names for JWS headers.- Returns:
- The registered parameter names, as an unmodifiable set.
-
getAlgorithm
Gets the algorithm (alg
) parameter.- Overrides:
getAlgorithm
in classHeader
- Returns:
- The algorithm parameter.
-
isBase64URLEncodePayload
Returns the Base64URL-encode payload (b64
) parameter.- Returns:
true
to Base64URL encode the payload for standard JWS serialisation,false
for unencoded payload (RFC 7797).
-
getIncludedParams
Description copied from class:Header
Gets the names of all included parameters (registered and custom) in the header instance.- Returns:
- The included parameters.
-
toJSONObject
Description copied from class:Header
Returns a JSON object representation of the header. All custom parameters are included if they serialise to a JSON entity and their names don't conflict with the registered ones.- Returns:
- The JSON object representation of the header.
-
parse
Parses a JWS header from the specified JSON object.- Parameters:
jsonObject
- The JSON object to parse. Must not benull
.- Returns:
- The JWS header.
- Throws:
ParseException
- If the specified JSON object doesn't represent a valid JWS header.
-
parse
public static JWSHeader parse(Map<String, Object> jsonObject, Base64URL parsedBase64URL) throws ParseExceptionParses a JWS header from the specified JSON object.- Parameters:
jsonObject
- The JSON object to parse. Must not benull
.parsedBase64URL
- The original parsed Base64URL,null
if not applicable.- Returns:
- The JWS header.
- Throws:
ParseException
- If the specified JSON object doesn't represent a valid JWS header.
-
parse
Parses a JWS header from the specified JSON object string.- Parameters:
jsonString
- The JSON string to parse. Must not benull
.- Returns:
- The JWS header.
- Throws:
ParseException
- If the specified JSON object string doesn't represent a valid JWS header.
-
parse
Parses a JWS header from the specified JSON object string.- Parameters:
jsonString
- The JSON string to parse. Must not benull
.parsedBase64URL
- The original parsed Base64URL,null
if not applicable.- Returns:
- The JWS header.
- Throws:
ParseException
- If the specified JSON object string doesn't represent a valid JWS header.
-
parse
Parses a JWS header from the specified Base64URL.- Parameters:
base64URL
- The Base64URL to parse. Must not benull
.- Returns:
- The JWS header.
- Throws:
ParseException
- If the specified Base64URL doesn't represent a valid JWS header.
-
getJWKURL
Gets the public JSON Web Key (JWK) Set URL (jku
) parameter.- Returns:
- The public JSON Web Key (JWK) Set URL parameter,
null
if not specified.
-
getJWK
Gets the public JSON Web Key (JWK) (jwk
) parameter.- Returns:
- The public JSON Web Key (JWK) parameter,
null
if not specified.
-
getX509CertURL
Gets the X.509 certificate URL (x5u
) parameter.- Returns:
- The X.509 certificate URL parameter,
null
if not specified.
-
getX509CertThumbprint
Deprecated.Gets the X.509 certificate SHA-1 thumbprint (x5t
) parameter.- Returns:
- The X.509 certificate SHA-1 thumbprint parameter,
null
if not specified.
-
getX509CertSHA256Thumbprint
Gets the X.509 certificate SHA-256 thumbprint (x5t#S256
) parameter.- Returns:
- The X.509 certificate SHA-256 thumbprint parameter,
null
if not specified.
-
getX509CertChain
Gets the X.509 certificate chain (x5c
) parameter corresponding to the key used to sign or encrypt the JWS / JWE object.- Returns:
- The X.509 certificate chain parameter as a unmodifiable
list,
null
if not specified.
-
getKeyID
Gets the key ID (kid
) parameter.- Returns:
- The key ID parameter,
null
if not specified.
-