Class JOSEMatcher

java.lang.Object
com.nimbusds.jose.proc.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 Details

    • 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 Details

    • getJOSEClasses

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

      Returns the JOSE algorithms to match.
      Returns:
      The JOSE algorithms, null if not specified.
    • getEncryptionMethods

      Returns the JOSE encryption methods to match.
      Returns:
      The JOSE encryption methods, null if not specified.
    • getJWKURLs

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

      public Set<String> getKeyIDs()
      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.