Skip to content

Commit 6bb1fb9

Browse files
committed
1. Renamed FirstLevelHashIdentity/HashedDiiIdentity/RawUidIdentity to FirstLevelHash/HashedDii/RawUid
2. Removed the abstract class UserIdentity 3. fixed a unit test as removing UserIdentity broke it
1 parent 4476ee1 commit 6bb1fb9

24 files changed

+276
-296
lines changed

src/main/java/com/uid2/operator/model/AdvertisingTokenRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@
22

33
import java.time.Instant;
44

5-
import com.uid2.operator.model.userIdentity.RawUidIdentity;
5+
import com.uid2.operator.model.identities.RawUid;
66
import com.uid2.operator.util.PrivacyBits;
77
import com.uid2.shared.model.TokenVersion;
88

99
// class containing enough information to create a new uid token (aka advertising token)
1010
public class AdvertisingTokenRequest extends VersionedTokenRequest {
1111
public final OperatorIdentity operatorIdentity;
1212
public final SourcePublisher sourcePublisher;
13-
public final RawUidIdentity rawUidIdentity;
13+
public final RawUid rawUid;
1414
public final PrivacyBits privacyBits;
1515
public final Instant establishedAt;
1616

1717
public AdvertisingTokenRequest(TokenVersion version, Instant createdAt, Instant expiresAt, OperatorIdentity operatorIdentity,
18-
SourcePublisher sourcePublisher, RawUidIdentity rawUidIdentity, PrivacyBits privacyBits,
18+
SourcePublisher sourcePublisher, RawUid rawUid, PrivacyBits privacyBits,
1919
Instant establishedAt) {
2020
super(version, createdAt, expiresAt);
2121
this.operatorIdentity = operatorIdentity;
2222
this.sourcePublisher = sourcePublisher;
23-
this.rawUidIdentity = rawUidIdentity;
23+
this.rawUid = rawUid;
2424
this.privacyBits = privacyBits;
2525
this.establishedAt = establishedAt;
2626
}

src/main/java/com/uid2/operator/model/IdentityMapRequestItem.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package com.uid2.operator.model;
22

3-
import com.uid2.operator.model.userIdentity.HashedDiiIdentity;
3+
import com.uid2.operator.model.identities.HashedDii;
44

55
import java.time.Instant;
66

77
public final class IdentityMapRequestItem {
8-
public final HashedDiiIdentity hashedDiiIdentity;
8+
public final HashedDii hashedDii;
99
public final OptoutCheckPolicy optoutCheckPolicy;
1010
public final Instant asOf;
1111

1212
public IdentityMapRequestItem(
13-
HashedDiiIdentity hashedDiiIdentity,
13+
HashedDii hashedDii,
1414
OptoutCheckPolicy optoutCheckPolicy,
1515
Instant asOf) {
16-
this.hashedDiiIdentity = hashedDiiIdentity;
16+
this.hashedDii = hashedDii;
1717
this.optoutCheckPolicy = optoutCheckPolicy;
1818
this.asOf = asOf;
1919
}

src/main/java/com/uid2/operator/model/TokenGenerateRequest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
package com.uid2.operator.model;
22

3-
import com.uid2.operator.model.userIdentity.HashedDiiIdentity;
3+
import com.uid2.operator.model.identities.HashedDii;
44
import com.uid2.operator.util.PrivacyBits;
55

66
import java.time.Instant;
77

88
public final class TokenGenerateRequest {
99
public final SourcePublisher sourcePublisher;
10-
public final HashedDiiIdentity hashedDiiIdentity;
10+
public final HashedDii hashedDii;
1111
public final OptoutCheckPolicy optoutCheckPolicy;
1212

1313
public final PrivacyBits privacyBits;
1414
public final Instant establishedAt;
1515

1616
public TokenGenerateRequest(
1717
SourcePublisher sourcePublisher,
18-
HashedDiiIdentity hashedDiiIdentity,
18+
HashedDii hashedDii,
1919
OptoutCheckPolicy tokenGeneratePolicy,
2020
PrivacyBits privacyBits,
2121
Instant establishedAt) {
2222
this.sourcePublisher = sourcePublisher;
23-
this.hashedDiiIdentity = hashedDiiIdentity;
23+
this.hashedDii = hashedDii;
2424
this.optoutCheckPolicy = tokenGeneratePolicy;
2525
this.privacyBits = privacyBits;
2626
this.establishedAt = establishedAt;
2727
}
2828

2929
public TokenGenerateRequest(
3030
SourcePublisher sourcePublisher,
31-
HashedDiiIdentity hashedDiiIdentity,
31+
HashedDii hashedDii,
3232
OptoutCheckPolicy tokenGeneratePolicy) {
33-
this(sourcePublisher, hashedDiiIdentity, tokenGeneratePolicy, PrivacyBits.DEFAULT, Instant.now());
33+
this(sourcePublisher, hashedDii, tokenGeneratePolicy, PrivacyBits.DEFAULT, Instant.now());
3434

3535
}
3636

src/main/java/com/uid2/operator/model/TokenRefreshRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@
22

33
import java.time.Instant;
44

5-
import com.uid2.operator.model.userIdentity.FirstLevelHashIdentity;
5+
import com.uid2.operator.model.identities.FirstLevelHash;
66
import com.uid2.operator.util.PrivacyBits;
77
import com.uid2.shared.model.TokenVersion;
88

99
// class containing enough data to create a new refresh token
1010
public class TokenRefreshRequest extends VersionedTokenRequest {
1111
public final OperatorIdentity operatorIdentity;
1212
public final SourcePublisher sourcePublisher;
13-
public final FirstLevelHashIdentity firstLevelHashIdentity;
13+
public final FirstLevelHash firstLevelHash;
1414
// by default, inherited from the previous refresh token's privacy bits
1515
public final PrivacyBits privacyBits;
1616

1717

1818
public TokenRefreshRequest(TokenVersion version, Instant createdAt, Instant expiresAt, OperatorIdentity operatorIdentity,
19-
SourcePublisher sourcePublisher, FirstLevelHashIdentity firstLevelHashIdentity, PrivacyBits privacyBits) {
19+
SourcePublisher sourcePublisher, FirstLevelHash firstLevelHash, PrivacyBits privacyBits) {
2020
super(version, createdAt, expiresAt);
2121
this.operatorIdentity = operatorIdentity;
2222
this.sourcePublisher = sourcePublisher;
23-
this.firstLevelHashIdentity = firstLevelHashIdentity;
23+
this.firstLevelHash = firstLevelHash;
2424
this.privacyBits = privacyBits;
2525
}
2626
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.uid2.operator.model.identities;
2+
3+
import com.uid2.operator.model.IdentityScope;
4+
import com.uid2.operator.model.IdentityType;
5+
6+
import java.time.Instant;
7+
import java.util.Arrays;
8+
9+
/**
10+
* Contains a first level salted hash computed from Hashed DII (email/phone number)
11+
* @param establishedAt for brand new token generation, it should be the time it is generated if the first level hash is from token/refresh call, it will be when the raw UID was originally created in the earliest token generation
12+
*/
13+
public record FirstLevelHash(IdentityScope identityScope, IdentityType identityType, byte[] firstLevelHash,
14+
Instant establishedAt) {
15+
16+
// explicitly not checking establishedAt - this is only for making sure the first level hash matches a new input
17+
public boolean matches(FirstLevelHash that) {
18+
return this.identityScope.equals(that.identityScope) &&
19+
this.identityType.equals(that.identityType) &&
20+
Arrays.equals(this.firstLevelHash, that.firstLevelHash);
21+
}
22+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.uid2.operator.model.identities;
2+
3+
import com.uid2.operator.model.IdentityScope;
4+
import com.uid2.operator.model.IdentityType;
5+
6+
// Contains a hash DII,
7+
// This hash can either be computed from a raw email/phone number DII input or provided by the UID Participant directly
8+
public record HashedDii(IdentityScope identityScope, IdentityType identityType, byte[] hashedDii) {
9+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.uid2.operator.model.identities;
2+
3+
import com.uid2.operator.model.IdentityScope;
4+
import com.uid2.operator.model.IdentityType;
5+
6+
import java.util.Arrays;
7+
8+
// A raw UID is stored inside
9+
public record RawUid(IdentityScope identityScope, IdentityType identityType, byte[] rawUid) {
10+
11+
public boolean matches(RawUid that) {
12+
return this.identityScope.equals(that.identityScope) &&
13+
this.identityType.equals(that.identityType) &&
14+
Arrays.equals(this.rawUid, that.rawUid);
15+
}
16+
}

src/main/java/com/uid2/operator/model/userIdentity/FirstLevelHashIdentity.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/main/java/com/uid2/operator/model/userIdentity/HashedDiiIdentity.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/main/java/com/uid2/operator/model/userIdentity/RawUidIdentity.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/main/java/com/uid2/operator/model/userIdentity/UserIdentity.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)