Class JOSEMatcher


  • public class JOSEMatcher
    extends Object
    JOSE object / header matcher. May be used to ensure a JOSE object / header matches a set of application-specific criteria.

    Supported matching criteria:

    • Any, one or more JOSE classes (plain, JWS, JWE).
    • Any, one or more algorithms (alg).
    • Any, one or more encryption methods (enc).
    • Any, one or more JWK URLs (jku).
    • Any, one or more JWK IDs (kid).

    Matching by X.509 certificate URL, thumbprint and chain is not supported.

    Version:
    2022-01-24
    Author:
    Vladimir Dzhuvinov
    • Constructor Detail

      • JOSEMatcher

        public JOSEMatcher​(Set<Class<? extends JOSEObject>> classes,
                           Set<Algorithm> algs,
                           Set<EncryptionMethod> encs,
                           Set<URI> jkus,
                           Set<String> kids)
        Creates a new JOSE matcher.
        Parameters:
        classes - The JOSE classes to match, null if not specified.
        algs - The JOSE algorithms to match, null if not specified.
        encs - The JOSE encryption methods to match, null if not specified.
        jkus - The JWK URLs to match, null if not specified.
        kids - The key IDs to match, null if not specified.
    • Method Detail

      • getJOSEClasses

        public Set<Class<? extends JOSEObject>> getJOSEClasses()
        Returns the JOSE classes to match.
        Returns:
        The JOSE classes, null if not specified.
      • getAlgorithms

        public Set<AlgorithmgetAlgorithms()
        Returns the JOSE algorithms to match.
        Returns:
        The JOSE algorithms, null if not specified.
      • getJWKURLs

        public Set<URIgetJWKURLs()
        Returns the JWK URLs to match.
        Returns:
        The JWK URLs, null if not specified.
      • getKeyIDs

        public Set<StringgetKeyIDs()
        Returns the key IDs to match.
        Returns:
        The key IDs, null if not specified.
      • matches

        public boolean matches​(JOSEObject joseObject)
        Returns true if the specified JOSE object matches.
        Parameters:
        joseObject - The JOSE object. Must not be null.
        Returns:
        true if the JOSE object matches, else false.