@Immutable public final class JWSHeader extends Header
Supports all registered header
parameters of the JWS specification (RFC 7515) and the "b64" header from
JWS Unencoded Payload Option (RFC 7797):
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"
}
| Modifier and Type | Class and Description |
|---|---|
static class |
JWSHeader.Builder
Builder for constructing JSON Web Signature (JWS) headers.
|
| Constructor and Description |
|---|
JWSHeader(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.
|
JWSHeader(JWSHeader jwsHeader)
Deep copy constructor.
|
| Modifier and Type | Method and Description |
|---|---|
JWSAlgorithm |
getAlgorithm()
Gets the algorithm (
alg) parameter. |
Set<String> |
getIncludedParams()
Gets the names of all included parameters (registered and custom) in
the header instance.
|
JWK |
getJWK()
Gets the JSON Web Key (JWK) (
jwk) parameter. |
URI |
getJWKURL()
Gets the JSON Web Key (JWK) Set URL (
jku) parameter. |
String |
getKeyID()
Gets the key ID (
kid) parameter. |
static Set<String> |
getRegisteredParameterNames()
Gets the registered parameter names for JWS headers.
|
List<Base64> |
getX509CertChain()
Gets the X.509 certificate chain (
x5c) parameter
corresponding to the key used to sign or encrypt the JWS / JWE
object. |
Base64URL |
getX509CertSHA256Thumbprint()
Gets the X.509 certificate SHA-256 thumbprint (
x5t#S256)
parameter. |
Base64URL |
getX509CertThumbprint()
Deprecated.
|
URI |
getX509CertURL()
Gets the X.509 certificate URL (
x5u) parameter. |
boolean |
isBase64URLEncodePayload()
Returns the Base64URL-encode payload (
b64) parameter. |
static JWSHeader |
parse(Base64URL base64URL)
Parses a JWS header from the specified Base64URL.
|
static JWSHeader |
parse(net.minidev.json.JSONObject jsonObject)
Parses a JWS header from the specified JSON object.
|
static JWSHeader |
parse(net.minidev.json.JSONObject jsonObject,
Base64URL parsedBase64URL)
Parses a JWS header from the specified JSON object.
|
static JWSHeader |
parse(String jsonString)
Parses a JWS header from the specified JSON object string.
|
static JWSHeader |
parse(String jsonString,
Base64URL parsedBase64URL)
Parses a JWS header from the specified JSON object string.
|
net.minidev.json.JSONObject |
toJSONObject()
Returns a JSON object representation of the header.
|
getContentType, getCriticalParams, getCustomParam, getCustomParams, getParsedBase64URL, getType, parseAlgorithm, toBase64URL, toStringpublic JWSHeader(JWSAlgorithm alg)
Note: Use PlainHeader to create a header with algorithm
none.
alg - The JWS algorithm (alg) parameter. Must not be
"none" or null.@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)
Note: Use PlainHeader to create a header with algorithm
none.
alg - The JWS algorithm (alg) parameter.
Must not be "none" or null.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 or
null 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 or
null if none.parsedBase64URL - The parsed Base64URL, null if the
header is created from scratch.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)
Note: Use PlainHeader to create a header with algorithm
none.
alg - The JWS algorithm (alg) parameter.
Must not be "none" or null.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 or
null 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 or
null if none.parsedBase64URL - The parsed Base64URL, null if the
header is created from scratch.public static Set<String> getRegisteredParameterNames()
public JWSAlgorithm getAlgorithm()
alg) parameter.getAlgorithm in class Headerpublic boolean isBase64URLEncodePayload()
b64) parameter.true to Base64URL encode the payload for standard
JWS serialisation, false for unencoded payload (RFC
7797).public Set<String> getIncludedParams()
Headerpublic net.minidev.json.JSONObject toJSONObject()
Headerpublic static JWSHeader parse(net.minidev.json.JSONObject jsonObject) throws ParseException
jsonObject - The JSON object to parse. Must not be
null.ParseException - If the specified JSON object doesn't
represent a valid JWS header.public static JWSHeader parse(net.minidev.json.JSONObject jsonObject, Base64URL parsedBase64URL) throws ParseException
jsonObject - The JSON object to parse. Must not be
null.parsedBase64URL - The original parsed Base64URL, null
if not applicable.ParseException - If the specified JSON object doesn't
represent a valid JWS header.public static JWSHeader parse(String jsonString) throws ParseException
jsonString - The JSON string to parse. Must not be
null.ParseException - If the specified JSON object string doesn't
represent a valid JWS header.public static JWSHeader parse(String jsonString, Base64URL parsedBase64URL) throws ParseException
jsonString - The JSON string to parse. Must not be
null.parsedBase64URL - The original parsed Base64URL, null
if not applicable.ParseException - If the specified JSON object string doesn't
represent a valid JWS header.public static JWSHeader parse(Base64URL base64URL) throws ParseException
base64URL - The Base64URL to parse. Must not be null.ParseException - If the specified Base64URL doesn't represent
a valid JWS header.public URI getJWKURL()
jku) parameter.null if
not specified.public JWK getJWK()
jwk) parameter.null if not
specified.public URI getX509CertURL()
x5u) parameter.null if not
specified.@Deprecated public Base64URL getX509CertThumbprint()
x5t) parameter.null if not specified.public Base64URL getX509CertSHA256Thumbprint()
x5t#S256)
parameter.null if not specified.public List<Base64> getX509CertChain()
x5c) parameter
corresponding to the key used to sign or encrypt the JWS / JWE
object.null if not specified.Copyright © 2021 Connect2id Ltd.. All rights reserved.