11package app .component ;
22
3- import common .EnvUtil ;
4- import common .HttpClient ;
5- import common .Mapper ;
63import com .fasterxml .jackson .databind .JsonNode ;
74import com .google .gson .JsonArray ;
85import com .google .gson .JsonObject ;
96import com .uid2 .client .IdentityScope ;
107import com .uid2 .client .*;
8+ import common .Const ;
9+ import common .EnvUtil ;
10+ import common .HttpClient ;
11+ import common .Mapper ;
12+ import lombok .Getter ;
1113import okhttp3 .Request ;
1214import okhttp3 .RequestBody ;
1315
@@ -45,9 +47,9 @@ public String toString() {
4547
4648 public enum CloudProvider {
4749 PUBLIC ("" ),
48- AWS ("AWS-NITRO " ),
49- GCP ("GCP-OIDC " ),
50- AZURE ("Azure-CC " );
50+ AWS ("aws-nitro " ),
51+ GCP ("gcp-oidc " ),
52+ AZURE ("azure-cc " );
5153
5254 private final String name ;
5355
@@ -64,32 +66,37 @@ public String toString() {
6466 private record V2Envelope (String envelope , byte [] nonce ) {
6567 }
6668
67- private static final SecureRandom SECURE_RANDOM = new SecureRandom ();
68-
6969 // When running via the pipeline, environment variables are defined in the uid2-shared-actions repo.
7070 // When running via IntelliJ, environment variables are defined in the uid2-dev-workspace repo under .idea/runConfigurations.
71- //
7271 // Test data is defined in the uid2-admin repo.
7372
74- public static final String CLIENT_API_KEY = EnvUtil .getEnv ("UID2_E2E_API_KEY" );
75- public static final String CLIENT_API_SECRET = EnvUtil .getEnv ("UID2_E2E_API_SECRET" );
76- private static final String CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF = EnvUtil .getEnv ("UID2_E2E_API_KEY_OLD" );
77- private static final String CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF = EnvUtil .getEnv ("UID2_E2E_API_SECRET_OLD" );
78- public static final String CLIENT_API_KEY_SHARING_RECIPIENT = EnvUtil .getEnv ("UID2_E2E_API_KEY_SHARING_RECIPIENT" );
79- public static final String CLIENT_API_SECRET_SHARING_RECIPIENT = EnvUtil .getEnv ("UID2_E2E_API_SECRET_SHARING_RECIPIENT" );
80- public static final String CLIENT_API_KEY_NON_SHARING_RECIPIENT = EnvUtil .getEnv ("UID2_E2E_API_KEY_NON_SHARING_RECIPIENT" );
81- public static final String CLIENT_API_SECRET_NON_SHARING_RECIPIENT = EnvUtil .getEnv ("UID2_E2E_API_SECRET_NON_SHARING_RECIPIENT" );
82- private static final String CLIENT_SIDE_TOKEN_GENERATE_SUBSCRIPTION_ID = EnvUtil .getEnv ("UID2_E2E_SUBSCRIPTION_ID" );
83- private static final String CLIENT_SIDE_TOKEN_GENERATE_SERVER_PUBLIC_KEY = EnvUtil .getEnv ("UID2_E2E_SERVER_PUBLIC_KEY" );
84- private static final String CLIENT_SIDE_TOKEN_GENERATE_ORIGIN = EnvUtil .getEnv ("UID2_E2E_ORIGIN" );
85- private static final String CLIENT_SIDE_TOKEN_GENERATE_INVALID_ORIGIN = EnvUtil .getEnv ("UID2_E2E_INVALID_ORIGIN" );
86- public static final IdentityScope IDENTITY_SCOPE = IdentityScope .valueOf (EnvUtil .getEnv ("UID2_E2E_IDENTITY_SCOPE" ));
73+ private static final SecureRandom SECURE_RANDOM = new SecureRandom ();
8774 private static final int TIMESTAMP_LENGTH = 8 ;
8875 private static final int PUBLIC_KEY_PREFIX_LENGTH = 9 ;
8976 private static final int AUTHENTICATION_TAG_LENGTH_BITS = 128 ;
9077 private static final int IV_BYTES = 12 ;
9178 private static final String TC_STRING = "CPhJRpMPhJRpMABAMBFRACBoALAAAEJAAIYgAKwAQAKgArABAAqAAA" ;
9279
80+ public static final String CLIENT_API_KEY = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_KEY );
81+ public static final String CLIENT_API_SECRET = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_SECRET );
82+
83+ // Optout cutoff
84+ public static final String CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF );
85+ public static final String CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF );
86+
87+ // Local only - Sharing
88+ public static final String CLIENT_API_KEY_SHARING_RECIPIENT = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_KEY_SHARING_RECIPIENT );
89+ public static final String CLIENT_API_SECRET_SHARING_RECIPIENT = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_SECRET_SHARING_RECIPIENT );
90+ public static final String CLIENT_API_KEY_NON_SHARING_RECIPIENT = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_KEY_NON_SHARING_RECIPIENT );
91+ public static final String CLIENT_API_SECRET_NON_SHARING_RECIPIENT = EnvUtil .getEnv (Const .Config .Operator .CLIENT_API_SECRET_NON_SHARING_RECIPIENT );
92+
93+ // Local only - CSTG
94+ public static final String CSTG_SUBSCRIPTION_ID = EnvUtil .getEnv (Const .Config .Operator .CSTG_SUBSCRIPTION_ID );
95+ public static final String CSTG_SERVER_PUBLIC_KEY = EnvUtil .getEnv (Const .Config .Operator .CSTG_SERVER_PUBLIC_KEY );
96+ public static final String CSTG_ORIGIN = EnvUtil .getEnv (Const .Config .Operator .CSTG_ORIGIN );
97+ public static final String CSTG_INVALID_ORIGIN = EnvUtil .getEnv (Const .Config .Operator .CSTG_INVALID_ORIGIN );
98+
99+ @ Getter
93100 private final Type type ;
94101 private final PublisherUid2Client publisherClient ;
95102 private final PublisherUid2Client oldPublisherClient ;
@@ -122,10 +129,6 @@ public Operator(String host, String name, Type type) {
122129 this (host , null , name , type );
123130 }
124131
125- public Type getType () {
126- return type ;
127- }
128-
129132 public JsonNode v0TokenGenerate (String type , String identity ) throws Exception {
130133 String response = HttpClient .get (getBaseUrl () + "/token/generate?" + type + "=" + URLEncoder .encode (identity , StandardCharsets .UTF_8 ), CLIENT_API_KEY );
131134 return Mapper .OBJECT_MAPPER .readTree (response );
@@ -229,19 +232,19 @@ public JsonNode v2TokenGenerateUsingPayload(String payload, boolean asOldPartici
229232 }
230233
231234 public JsonNode v2ClientSideTokenGenerate (String requestBody , boolean useValidOrigin ) throws Exception {
232- final byte [] serverPublicKeyBytes = base64ToByteArray (CLIENT_SIDE_TOKEN_GENERATE_SERVER_PUBLIC_KEY .substring (PUBLIC_KEY_PREFIX_LENGTH ));
235+ final byte [] serverPublicKeyBytes = base64ToByteArray (CSTG_SERVER_PUBLIC_KEY .substring (PUBLIC_KEY_PREFIX_LENGTH ));
233236
234237 final PublicKey serverPublicKey = KeyFactory .getInstance ("EC" )
235238 .generatePublic (new X509EncodedKeySpec (serverPublicKeyBytes ));
236239
237240 final KeyPair keyPair = generateKeyPair ();
238241 final SecretKey sharedSecret = generateSharedSecret (serverPublicKey , keyPair );
239242
240- final JsonObject cstgEnvelope = createCstgEnvelope (requestBody , CLIENT_SIDE_TOKEN_GENERATE_SUBSCRIPTION_ID , keyPair .getPublic (), sharedSecret );
243+ final JsonObject cstgEnvelope = createCstgEnvelope (requestBody , keyPair .getPublic (), sharedSecret );
241244
242245 final Request .Builder requestBuilder = new Request .Builder ()
243246 .url (getBaseUrl () + "/v2/token/client-generate" )
244- .addHeader ("Origin" , useValidOrigin ? CLIENT_SIDE_TOKEN_GENERATE_ORIGIN : CLIENT_SIDE_TOKEN_GENERATE_INVALID_ORIGIN )
247+ .addHeader ("Origin" , useValidOrigin ? CSTG_ORIGIN : CSTG_INVALID_ORIGIN )
245248 .post (RequestBody .create (cstgEnvelope .toString (), HttpClient .JSON ));
246249
247250 final String encryptedResponse = HttpClient .execute (requestBuilder .build (), HttpClient .HttpMethod .POST );
@@ -275,7 +278,7 @@ private static SecretKey generateSharedSecret(PublicKey serverPublicKey, KeyPair
275278 }
276279 }
277280
278- private static JsonObject createCstgEnvelope (String request , String subscriptionId , PublicKey clientPublicKey , SecretKey sharedSecret ) {
281+ private static JsonObject createCstgEnvelope (String request , PublicKey clientPublicKey , SecretKey sharedSecret ) {
279282 final long now = Clock .systemUTC ().millis ();
280283
281284 final byte [] iv = new byte [IV_BYTES ];
@@ -295,7 +298,7 @@ private static JsonObject createCstgEnvelope(String request, String subscription
295298 body .addProperty ("iv" , byteArrayToBase64 (iv ));
296299 body .addProperty ("public_key" , byteArrayToBase64 (clientPublicKey .getEncoded ()));
297300 body .addProperty ("timestamp" , now );
298- body .addProperty ("subscription_id" , subscriptionId );
301+ body .addProperty ("subscription_id" , CSTG_SUBSCRIPTION_ID );
299302
300303 return body ;
301304 }
0 commit comments