001package com.nimbusds.jose.proc;
002
003
004/**
005 * Base abstract processor of received {@link com.nimbusds.jose.JOSEObject}s.
006 * Provides getters and setters for JWS / JWE key selectors and JWS verifier /
007 * JWE decrypter factories.
008 *
009 * @author Vladimir Dzhuvinov
010 * @version 2015-06-30
011 */
012public abstract class BaseJOSEProcessor<C extends SecurityContext> {
013
014
015        /**
016         * The JWS key selector.
017         */
018        private JWSKeySelector<C> jwsKeySelector;
019
020
021        /**
022         * The JWE key selector.
023         */
024        private JWEKeySelector<C> jweKeySelector;
025
026
027        /**
028         * The JWS verifier factory.
029         */
030        private JWSVerifierFactory jwsVerifierFactory = new DefaultJWSVerifierFactory();
031
032
033        /**
034         * The JWE decrypter factory.
035         */
036        private JWEDecrypterFactory jweDecrypterFactory = new DefaultJWEDecrypterFactory();
037
038
039
040        /**
041         * Gets the JWS key selector.
042         *
043         * @return The JWS key selector, {@code null} if not specified.
044         */
045        public JWSKeySelector<C> getJWSKeySelector() {
046
047                return jwsKeySelector;
048        }
049
050
051        /**
052         * Sets the JWS key selector.
053         *
054         * @param jwsKeySelector The JWS key selector, {@code null} if not
055         *                       specified.
056         */
057        public void setJWSKeySelector(final JWSKeySelector<C> jwsKeySelector) {
058
059                this.jwsKeySelector = jwsKeySelector;
060        }
061
062
063        /**
064         * Gets the JWE key selector.
065         *
066         * @return The JWE key selector, {@code null} if not specified.
067         */
068        public JWEKeySelector<C> getJWEKeySelector() {
069
070                return jweKeySelector;
071        }
072
073
074        /**
075         * Sets the JWE key selector.
076         *
077         * @param jweKeySelector The JWE key selector, {@code null} if not
078         *                       specified.
079         */
080        public void setJWEKeySelector(final JWEKeySelector<C> jweKeySelector) {
081
082                this.jweKeySelector = jweKeySelector;
083        }
084
085
086        /**
087         * Gets the factory for creating JWS verifier instances.
088         *
089         * @return The JWS verifier factory, {@code null} if not specified.
090         */
091        public JWSVerifierFactory getJWSVerifierFactory() {
092
093                return jwsVerifierFactory;
094        }
095
096
097        /**
098         * Sets the factory for creating JWS verifier instances.
099         *
100         * @param factory The JWS verifier factory, {@code null} if not
101         *                specified.
102         */
103        public void setJWSVerifierFactory(final JWSVerifierFactory factory) {
104
105                jwsVerifierFactory = factory;
106        }
107
108
109        /**
110         * Gets the factory for creating JWE decrypter instances.
111         *
112         * @return The JWE decrypter factory, {@code null} if not specified.
113         */
114        public JWEDecrypterFactory getJWEDecrypterFactory() {
115
116                return jweDecrypterFactory;
117        }
118
119
120        /**
121         * Sets the factory for creating JWE decrypter instances.
122         *
123         * @param factory The JWE decrypter factory, {@code null} if not
124         *                specified.
125         */
126        public void setJWEDecrypterFactory(final JWEDecrypterFactory factory) {
127
128                jweDecrypterFactory = factory;
129        }
130}