Skip to content

Commit baf55d1

Browse files
authored
Merge pull request #99 from IABTechLab/swi-UID2-6511-remove-optout-check
UID2-6511 Remove "policy" field from JSON request
2 parents 9050cb3 + 0370c80 commit baf55d1

File tree

3 files changed

+28
-26
lines changed

3 files changed

+28
-26
lines changed

src/main/java/com/uid2/client/TokenGenerateInput.java

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,23 @@ TokenGenerateInput doNotHash() {
4949
return this;
5050
}
5151

52-
// Always use .doNotGenerateTokensForOptedOut(), which applies policy=1. Support for policy=0 will be removed soon.
52+
/**
53+
* @deprecated This method is deprecated and no longer has any effect. It is kept for backwards compatibility.
54+
* The policy parameter has been removed from the /token/generate endpoint.
55+
*/
56+
@Deprecated
5357
public TokenGenerateInput doNotGenerateTokensForOptedOut() {
54-
generateForOptedOut = false;
58+
// No-op: kept for backwards compatibility only
5559
return this;
5660
}
5761

5862
String getAsJsonString() {
5963
if (alreadyHashed) {
60-
return createAlreadyHashedJsonRequestForGenerateToken(identityType, emailOrPhone, transparencyAndConsentString, generateForOptedOut);
64+
return createAlreadyHashedJsonRequestForGenerateToken(identityType, emailOrPhone, transparencyAndConsentString);
6165
} else if (needHash) {
62-
return createHashedJsonRequestForGenerateToken(identityType, emailOrPhone, transparencyAndConsentString, generateForOptedOut);
66+
return createHashedJsonRequestForGenerateToken(identityType, emailOrPhone, transparencyAndConsentString);
6367
} else {
64-
return createJsonRequestForGenerateToken(identityType, emailOrPhone, transparencyAndConsentString, generateForOptedOut);
68+
return createJsonRequestForGenerateToken(identityType, emailOrPhone, transparencyAndConsentString);
6569
}
6670
}
6771

@@ -74,51 +78,48 @@ private TokenGenerateInput(IdentityType identityType, String emailOrPhone, boole
7478

7579

7680

77-
private static String createJsonRequestForGenerateToken(IdentityType identityType, String value, String tcString, boolean generateForOptedOut) {
81+
private static String createJsonRequestForGenerateToken(IdentityType identityType, String value, String tcString) {
7882
final String property = (identityType == IdentityType.Email) ? "email" : "phone";
79-
return createJsonRequestForGenerateToken(property, value, tcString, generateForOptedOut);
83+
return createJsonRequestForGenerateToken(property, value, tcString);
8084
}
8185

82-
private static String createJsonRequestForGenerateToken(String property, String value, String tcString, boolean generateForOptedOut) {
86+
private static String createJsonRequestForGenerateToken(String property, String value, String tcString) {
8387
JsonObject json = new JsonObject();
8488

8589
json.addProperty(property, value);
8690
if (tcString != null) {
8791
json.addProperty("tcf_consent_string", tcString);
8892
}
89-
if (!generateForOptedOut){
90-
json.addProperty("policy", 1);
91-
}
93+
9294
return json.toString();
9395
}
9496

95-
static String createHashedJsonRequestForGenerateToken(IdentityType identityType, String unhashedValue, String tcString, boolean generateForOptedOut) {
97+
static String createHashedJsonRequestForGenerateToken(IdentityType identityType, String unhashedValue, String tcString) {
9698
if (identityType == IdentityType.Email) {
9799
String hashedNormalizedEmail = InputUtil.normalizeAndHashEmail(unhashedValue);
98-
return createJsonRequestForGenerateToken("email_hash", hashedNormalizedEmail, tcString, generateForOptedOut);
100+
return createJsonRequestForGenerateToken("email_hash", hashedNormalizedEmail, tcString);
99101
} else { //phone
100102
if (!InputUtil.isPhoneNumberNormalized(unhashedValue)) {
101103
throw new IllegalArgumentException("phone number is not normalized");
102104
}
103105

104106
String hashedNormalizedPhone = InputUtil.getBase64EncodedHash(unhashedValue);
105-
return createJsonRequestForGenerateToken("phone_hash", hashedNormalizedPhone, tcString, generateForOptedOut);
107+
return createJsonRequestForGenerateToken("phone_hash", hashedNormalizedPhone, tcString);
106108
}
107109
}
108110

109-
static String createAlreadyHashedJsonRequestForGenerateToken(IdentityType identityType, String hashedValue, String tcString, boolean generateForOptedOut) {
111+
static String createAlreadyHashedJsonRequestForGenerateToken(IdentityType identityType, String hashedValue, String tcString) {
110112
if (identityType == IdentityType.Email) {
111-
return createJsonRequestForGenerateToken("email_hash", hashedValue, tcString, generateForOptedOut);
113+
return createJsonRequestForGenerateToken("email_hash", hashedValue, tcString);
112114
} else { //phone
113-
return createJsonRequestForGenerateToken("phone_hash", hashedValue, tcString, generateForOptedOut);
115+
return createJsonRequestForGenerateToken("phone_hash", hashedValue, tcString);
114116
}
115117
}
116118

117119
private final IdentityType identityType;
118120
private final String emailOrPhone;
119121
private boolean needHash;
120122
private final boolean alreadyHashed;
121-
private boolean generateForOptedOut = true;
122123
private String transparencyAndConsentString;
123124

124125

src/test/java/com/uid2/client/DocSampleCodeTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -373,15 +373,15 @@ public void testPublisherBasicUsageExample() {
373373
PublisherUid2Client publisherUid2Client = new PublisherUid2Client(UID2_BASE_URL, UID2_API_KEY, UID2_SECRET_KEY);
374374

375375
// Documentation sdk-ref-java.md Line 147: Generate token from email with opt-out check
376-
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
376+
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com"));
377377

378378
assertNotNull(tokenGenerateResponse);
379379
}
380380

381381
@Test
382382
public void testPublisherClientServerIntegrationExample() {
383383
// Documentation sdk-ref-java.md Line 147: Publisher Client-Server Integration - generate token response
384-
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
384+
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com"));
385385

386386
// Documentation sdk-ref-java.md Line 165: Send identity as JSON string back to client
387387
String identityJsonString = tokenGenerateResponse.getIdentityJsonString();
@@ -396,7 +396,7 @@ public void testPublisherClientServerIntegrationExample() {
396396
@Test
397397
public void testPublisherServerSideIntegrationExample() {
398398
// Documentation sdk-ref-java.md Line 147: Publisher Server-Side Integration workflow - generate token
399-
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
399+
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com"));
400400

401401
// Documentation sdk-ref-java.md Line 176: Store identity as JSON string
402402
String identityJsonString = tokenGenerateResponse.getIdentityJsonString();
@@ -443,7 +443,7 @@ public void testPublisherAdvancedUsageExample() {
443443
PublisherUid2Helper publisherUid2Helper = new PublisherUid2Helper(UID2_SECRET_KEY);
444444

445445
// Documentation sdk-ref-java.md Line 224: Create envelope for token generate request
446-
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
446+
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com"));
447447

448448
assertNotNull(envelope);
449449
assertNotNull(envelope.getEnvelope());
@@ -472,7 +472,7 @@ public void testPublisherAdvancedUsageExample() {
472472
public void testPublisherAdvancedClientServerExample() {
473473
// Documentation sdk-ref-java.md Line 250-252: Publisher Advanced Client-Server Integration
474474
PublisherUid2Helper publisherUid2Helper = new PublisherUid2Helper(UID2_SECRET_KEY);
475-
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
475+
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com"));
476476

477477
// Documentation sdk-ref-java.md Line 251: Get identity JSON string from token generate response
478478
// tokenGenerateResponse.getIdentityJsonString() - line 251
@@ -485,7 +485,7 @@ public void testPublisherAdvancedServerSideExample() {
485485
PublisherUid2Helper publisherUid2Helper = new PublisherUid2Helper(UID2_SECRET_KEY);
486486

487487
// Simulate the full advanced flow
488-
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
488+
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com"));
489489

490490
// Documentation sdk-ref-java.md Line 275-277: Generate IdentityTokens object from JSON
491491
String identityJsonString = "{}"; // Mock data
@@ -525,7 +525,7 @@ public void testPublisherAdvancedTokenRefreshResponse() {
525525
PublisherUid2Helper publisherUid2Helper = new PublisherUid2Helper(UID2_SECRET_KEY);
526526

527527
// First create a valid identity to use for refresh response
528-
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
528+
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com"));
529529

530530
if (tokenGenerateResponse != null && tokenGenerateResponse.getIdentity() != null) {
531531
IdentityTokens identity = tokenGenerateResponse.getIdentity();

src/test/java/com/uid2/client/PublisherTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,10 +515,11 @@ public void invalidEncryptedString() {
515515

516516
@Test
517517
public void requestToNotGenerateTokensForOptedOutUsers() {
518+
// This method is deprecated and no longer adds a policy field, but we keep it for backwards compatibility
518519
TokenGenerateInput input = TokenGenerateInput.fromEmail("test@example.com").doNotGenerateTokensForOptedOut();
519520

520521
JsonObject json = new Gson().fromJson(input.getAsJsonString(), JsonObject.class);
521-
assertEquals(1, json.get("policy").getAsInt());
522+
assertNull(json.get("policy"));
522523
}
523524

524525
private String encrypt(String body) {

0 commit comments

Comments
 (0)