mirror of https://github.com/shred/acme4j
Add some protected methods for unit testing. Fix bug in URI resolving.
parent
bc8c1e822d
commit
a59f31603d
|
@ -58,25 +58,7 @@ public class LetsEncryptAcmeClientProvider extends AbstractAcmeClientProvider {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AcmeClient connect(URI serverUri) {
|
public AcmeClient connect(URI serverUri) {
|
||||||
if (accepts(serverUri)) {
|
return createAcmeClient(resolve(serverUri));
|
||||||
throw new IllegalArgumentException("Unknown URI " + serverUri);
|
|
||||||
}
|
|
||||||
|
|
||||||
String path = serverUri.getPath();
|
|
||||||
String directoryUri;
|
|
||||||
if (path == null || "v01".equals(path)) {
|
|
||||||
directoryUri = V01_DIRECTORY_URI;
|
|
||||||
} else if ("staging".equals(path)) {
|
|
||||||
directoryUri = STAGING_DIRECTORY_URI;
|
|
||||||
} else {
|
|
||||||
throw new IllegalArgumentException("Unknown URI " + serverUri);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
return new GenericAcmeClient(this, new URI(directoryUri));
|
|
||||||
} catch (URISyntaxException ex) {
|
|
||||||
throw new IllegalArgumentException(directoryUri, ex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -88,6 +70,48 @@ public class LetsEncryptAcmeClientProvider extends AbstractAcmeClientProvider {
|
||||||
return conn;
|
return conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an {@link AcmeClient} for the given directory URI.
|
||||||
|
*
|
||||||
|
* @param directoryUri
|
||||||
|
* Directory {@link URI}
|
||||||
|
* @return {@link AcmeClient}
|
||||||
|
*/
|
||||||
|
protected AcmeClient createAcmeClient(URI directoryUri) {
|
||||||
|
return new GenericAcmeClient(this, directoryUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves the server URI and returns the matching directory URI.
|
||||||
|
*
|
||||||
|
* @param serverUri
|
||||||
|
* Server {@link URI} to resolve
|
||||||
|
* @return Directory {@link URI}
|
||||||
|
* @throws IllegalArgumentException
|
||||||
|
* if the server URI cannot be resolved
|
||||||
|
*/
|
||||||
|
protected URI resolve(URI serverUri) {
|
||||||
|
if (!accepts(serverUri)) {
|
||||||
|
throw new IllegalArgumentException("Unknown URI " + serverUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
String path = serverUri.getPath();
|
||||||
|
String directoryUri;
|
||||||
|
if (path == null || "".equals(path) || "/".equals(path) || "/v01".equals(path)) {
|
||||||
|
directoryUri = V01_DIRECTORY_URI;
|
||||||
|
} else if ("/staging".equals(path)) {
|
||||||
|
directoryUri = STAGING_DIRECTORY_URI;
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("Unknown URI " + serverUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return new URI(directoryUri);
|
||||||
|
} catch (URISyntaxException ex) {
|
||||||
|
throw new IllegalArgumentException(directoryUri, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lazily creates an {@link SSLSocketFactory} that exclusively accepts the Let's
|
* Lazily creates an {@link SSLSocketFactory} that exclusively accepts the Let's
|
||||||
* Encrypt certificate.
|
* Encrypt certificate.
|
||||||
|
|
Loading…
Reference in New Issue