001package com.nimbusds.oauth2.sdk.jose.jwk;
002
003
004import java.util.List;
005
006import com.nimbusds.jose.jwk.JWK;
007import com.nimbusds.jose.jwk.JWKSelector;
008import com.nimbusds.jose.jwk.JWKSet;
009import com.nimbusds.jose.jwk.OctetSequenceKey;
010import com.nimbusds.oauth2.sdk.auth.Secret;
011import com.nimbusds.oauth2.sdk.id.ClientID;
012import com.nimbusds.oauth2.sdk.id.Identifier;
013import net.jcip.annotations.Immutable;
014
015
016/**
017 * Immutable client secret.
018 */
019@Immutable
020@Deprecated
021public final class ImmutableClientSecret extends ImmutableJWKSet {
022
023
024        /**
025         * Creates a new immutable client secret.
026         *
027         * @param id     The client identifier. Must not be {@code null}.
028         * @param secret The client secret. Must not be {@code null}.
029         */
030        public ImmutableClientSecret(final ClientID id, final Secret secret) {
031
032                this(id, new OctetSequenceKey.Builder(secret.getValueBytes()).build());
033        }
034
035
036        /**
037         * Creates a new immutable client secret.
038         *
039         * @param id     The client identifier. Must not be {@code null}.
040         * @param secret The client secret. Must not be {@code null}.
041         */
042        public ImmutableClientSecret(final ClientID id, final OctetSequenceKey secret) {
043                super(id, new JWKSet(secret));
044        }
045
046
047        /**
048         * Returns the client secret.
049         *
050         * @return The client secret.
051         */
052        public OctetSequenceKey getClientSecret() {
053
054                return (OctetSequenceKey) getJWKSet().getKeys().get(0);
055        }
056
057
058        @Override
059        public List<JWK> get(final Identifier id, final JWKSelector jwkSelector) {
060                // Owner not checked, we have a shared secret
061                return jwkSelector.select(getJWKSet());
062        }
063}