Skip to content

Commit 0652a23

Browse files
authored
Merge pull request #14 from auth0/feat/mcd-feature
Feat/mcd feature
2 parents 792d5e8 + 0ce8219 commit 0652a23

34 files changed

Lines changed: 373 additions & 251 deletions

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
![Java Version](https://img.shields.io/badge/java-8%2B-blue)
77
![License](https://img.shields.io/badge/license-MIT-green)
88

9-
A comprehensive Java library for Auth0 JWT authentication with built-in **DPoP (Demonstration of Proof-of-Possession)** support. This project provides Spring Boot integration for secure API development.
9+
A comprehensive Java library for Auth0 JWT authentication with built-in **DPoP (Demonstration of Proof-of-Possession)** and **Multi-Custom Domain (MCD)** support. This project provides Spring Boot integration for secure API development.
1010

1111
## 🏗️ Architecture Overview
1212

@@ -49,6 +49,8 @@ It provides:
4949

5050
- JWT validation with Auth0 JWKS integration
5151
- DPoP proof validation per [RFC 9449](https://datatracker.ietf.org/doc/html/rfc9449)
52+
- Multi-Custom Domain (MCD) support — static domain lists, or dynamic resolution at request time
53+
- Extensible caching — pluggable `AuthCache` interface for distributed backends (Redis, Memcached)
5254
- Flexible authentication strategies
5355

5456

auth0-api-java/src/main/java/com/auth0/AbstractAuthentication.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
import com.auth0.models.AuthToken;
88
import com.auth0.models.AuthenticationContext;
99
import com.auth0.models.HttpRequestInfo;
10-
import com.auth0.validators.DPoPProofValidator;
11-
import com.auth0.validators.JWTValidator;
1210

1311
import java.util.HashMap;
1412
import java.util.List;

auth0-api-java/src/main/java/com/auth0/AllowedDPoPAuthentication.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66
import com.auth0.jwt.interfaces.DecodedJWT;
77
import com.auth0.models.AuthenticationContext;
88
import com.auth0.models.HttpRequestInfo;
9-
import com.auth0.validators.DPoPProofValidator;
10-
import com.auth0.validators.JWTValidator;
119

12-
import java.util.Map;
1310
class AllowedDPoPAuthentication extends AbstractAuthentication {
1411

1512
public AllowedDPoPAuthentication(JWTValidator jwtValidator,

auth0-api-java/src/main/java/com/auth0/cache/AuthCache.java renamed to auth0-api-java/src/main/java/com/auth0/AuthCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.auth0.cache;
1+
package com.auth0;
22

33
/**
44
* Cache abstraction for storing authentication-related data such as

auth0-api-java/src/main/java/com/auth0/AuthClient.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
import com.auth0.models.AuthenticationContext;
55
import com.auth0.models.AuthOptions;
66
import com.auth0.models.HttpRequestInfo;
7-
import com.auth0.validators.DPoPProofValidator;
8-
import com.auth0.validators.JWTValidator;
9-
10-
import java.util.Map;
117

128
public class AuthClient {
139

auth0-api-java/src/main/java/com/auth0/AuthConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.auth0;
22

3-
public class AuthConstants {
3+
class AuthConstants {
44
public static final String AUTHORIZATION_HEADER = "authorization";
55
public static final String DPOP_HEADER = "dpop";
66
public static final String BEARER_SCHEME = "bearer";

auth0-api-java/src/main/java/com/auth0/validators/ClaimValidator.java renamed to auth0-api-java/src/main/java/com/auth0/ClaimValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.auth0.validators;
1+
package com.auth0;
22

33
import com.auth0.exception.*;
44
import com.auth0.jwt.interfaces.DecodedJWT;

auth0-api-java/src/main/java/com/auth0/validators/DPoPProofValidator.java renamed to auth0-api-java/src/main/java/com/auth0/DPoPProofValidator.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.auth0.validators;
1+
package com.auth0;
22

33
import com.auth0.exception.BaseAuthException;
44
import com.auth0.exception.InvalidDpopProofException;
@@ -20,13 +20,13 @@
2020
import java.time.Instant;
2121
import java.util.*;
2222

23-
public class DPoPProofValidator {
23+
class DPoPProofValidator {
2424

2525
private final AuthOptions options;
2626
private final ObjectMapper objectMapper = new ObjectMapper();;
2727

2828

29-
public DPoPProofValidator(AuthOptions options) {
29+
DPoPProofValidator(AuthOptions options) {
3030
this.options = options;
3131
}
3232

@@ -38,7 +38,7 @@ public DPoPProofValidator(AuthOptions options) {
3838
* @param requestInfo HTTP request info: method and URL
3939
* @throws BaseAuthException if the DPoP proof is invalid.
4040
*/
41-
public void validate(String dpopProof, DecodedJWT decodedJwtToken, HttpRequestInfo requestInfo)
41+
void validate(String dpopProof, DecodedJWT decodedJwtToken, HttpRequestInfo requestInfo)
4242
throws BaseAuthException {
4343

4444
DecodedJWT proofJwt = decodeDPoP(dpopProof);
@@ -197,7 +197,7 @@ String calculateJwkThumbprint(Map<String, Object> jwk) throws BaseAuthException
197197
}
198198
}
199199

200-
public static ECPublicKey convertJwkToEcPublicKey(Map<String, Object> jwkMap)
200+
static ECPublicKey convertJwkToEcPublicKey(Map<String, Object> jwkMap)
201201
throws JwkException {
202202

203203
Jwk jwk = Jwk.fromValues(jwkMap);

auth0-api-java/src/main/java/com/auth0/DisabledDPoPAuthentication.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
import com.auth0.jwt.interfaces.DecodedJWT;
66
import com.auth0.models.AuthenticationContext;
77
import com.auth0.models.HttpRequestInfo;
8-
import com.auth0.validators.JWTValidator;
9-
10-
import java.util.Map;
118

129
class DisabledDPoPAuthentication extends AbstractAuthentication {
1310

auth0-api-java/src/main/java/com/auth0/cache/InMemoryAuthCache.java renamed to auth0-api-java/src/main/java/com/auth0/InMemoryAuthCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.auth0.cache;
1+
package com.auth0;
22

33
import java.util.LinkedHashMap;
44
import java.util.Map;

0 commit comments

Comments
 (0)