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}