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 classBuilder 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.booleanReturns the Base64URL-encode payload (b64) parameter.static JWSHeaderParses a JWS header from the specified Base64URL.static JWSHeaderParses a JWS header from the specified JSON object string.static JWSHeaderParses a JWS header from the specified JSON object string.static JWSHeaderParses a JWS header from the specified JSON object.static JWSHeaderParses 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
PlainHeaderto 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
PlainHeaderto create a header with algorithmnone.- Parameters:
alg- The JWS algorithm (alg) parameter. Must not be "none" ornull.typ- The type (typ) parameter,nullif not specified.cty- The content type (cty) parameter,nullif not specified.crit- The names of the critical header (crit) parameters, empty set ornullif none.jku- The JSON Web Key (JWK) Set URL (jku) parameter,nullif not specified.jwk- The X.509 certificate URL (jwk) parameter,nullif not specified.x5u- The X.509 certificate URL parameter (x5u),nullif not specified.x5t- The X.509 certificate SHA-1 thumbprint (x5t) parameter,nullif not specified.x5t256- The X.509 certificate SHA-256 thumbprint (x5t#S256) parameter,nullif not specified.x5c- The X.509 certificate chain (x5c) parameter,nullif not specified.kid- The key ID (kid) parameter,nullif not specified.customParams- The custom parameters, empty map ornullif none.parsedBase64URL- The parsed Base64URL,nullif 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
PlainHeaderto create a header with algorithmnone.- Parameters:
alg- The JWS algorithm (alg) parameter. Must not be "none" ornull.typ- The type (typ) parameter,nullif not specified.cty- The content type (cty) parameter,nullif not specified.crit- The names of the critical header (crit) parameters, empty set ornullif none.jku- The JSON Web Key (JWK) Set URL (jku) parameter,nullif not specified.jwk- The X.509 certificate URL (jwk) parameter,nullif not specified.x5u- The X.509 certificate URL parameter (x5u),nullif not specified.x5t- The X.509 certificate SHA-1 thumbprint (x5t) parameter,nullif not specified.x5t256- The X.509 certificate SHA-256 thumbprint (x5t#S256) parameter,nullif not specified.x5c- The X.509 certificate chain (x5c) parameter,nullif not specified.kid- The key ID (kid) parameter,nullif not specified.b64-trueto Base64URL encode the payload for standard JWS serialisation,falsefor unencoded payload (RFC 7797).customParams- The custom parameters, empty map ornullif none.parsedBase64URL- The parsed Base64URL,nullif 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:
getAlgorithmin classHeader- Returns:
- The algorithm parameter.
-
isBase64URLEncodePayload
Returns the Base64URL-encode payload (b64) parameter.- Returns:
trueto Base64URL encode the payload for standard JWS serialisation,falsefor unencoded payload (RFC 7797).
-
getIncludedParams
Description copied from class:HeaderGets the names of all included parameters (registered and custom) in the header instance.- Returns:
- The included parameters.
-
toJSONObject
Description copied from class:HeaderReturns 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,nullif 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,nullif 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,
nullif not specified.
-
getJWK
Gets the public JSON Web Key (JWK) (jwk) parameter.- Returns:
- The public JSON Web Key (JWK) parameter,
nullif not specified.
-
getX509CertURL
Gets the X.509 certificate URL (x5u) parameter.- Returns:
- The X.509 certificate URL parameter,
nullif not specified.
-
getX509CertThumbprint
Deprecated.Gets the X.509 certificate SHA-1 thumbprint (x5t) parameter.- Returns:
- The X.509 certificate SHA-1 thumbprint parameter,
nullif not specified.
-
getX509CertSHA256Thumbprint
Gets the X.509 certificate SHA-256 thumbprint (x5t#S256) parameter.- Returns:
- The X.509 certificate SHA-256 thumbprint parameter,
nullif 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,
nullif not specified.
-
getKeyID
Gets the key ID (kid) parameter.- Returns:
- The key ID parameter,
nullif not specified.
-