mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Actionize the EPP endpoints.
This introduces Actions and Dagger up until FlowRunner. The changes to the servlets are relatively simple, but the required changes to the tests, as well as to auxillary EPP endpoints (such as the http check api and the load test servlet) were vast. I've added some comments in critique to make the review easier that don't really make sense as in-code comments for the future. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=124593546
This commit is contained in:
parent
6ba1d5e6df
commit
0ce293325c
63 changed files with 1911 additions and 1630 deletions
|
@ -17,38 +17,37 @@ package google.registry.tools;
|
|||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Strings.isNullOrEmpty;
|
||||
import static com.google.common.io.Resources.getResource;
|
||||
import static google.registry.flows.EppXmlTransformer.unmarshal;
|
||||
import static google.registry.tools.CommandUtilities.runFlow;
|
||||
import static google.registry.util.X509Utils.getCertificateHash;
|
||||
import static google.registry.util.X509Utils.loadCertificate;
|
||||
import static java.nio.charset.StandardCharsets.US_ASCII;
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import com.google.common.net.InetAddresses;
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.template.soy.SoyFileSet;
|
||||
import com.google.template.soy.data.SoyMapData;
|
||||
|
||||
import com.beust.jcommander.Parameter;
|
||||
import com.beust.jcommander.Parameters;
|
||||
|
||||
import google.registry.flows.Flow;
|
||||
import google.registry.flows.EppXmlTransformer;
|
||||
import google.registry.flows.FlowRunner;
|
||||
import google.registry.flows.FlowRunner.CommitMode;
|
||||
import google.registry.flows.FlowRunner.UserPrivileges;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.HttpSessionMetadata;
|
||||
import google.registry.flows.TlsCredentials;
|
||||
import google.registry.flows.picker.FlowPicker;
|
||||
import google.registry.flows.session.LoginFlow;
|
||||
import google.registry.model.eppcommon.Trid;
|
||||
import google.registry.model.eppinput.EppInput;
|
||||
import google.registry.tools.Command.GtechCommand;
|
||||
import google.registry.tools.Command.RemoteApiCommand;
|
||||
import google.registry.tools.params.PathParameter;
|
||||
import google.registry.tools.soy.LoginSoyInfo;
|
||||
import google.registry.util.BasicHttpSession;
|
||||
import google.registry.util.SystemClock;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
@ -102,44 +101,20 @@ final class ValidateLoginCredentialsCommand implements RemoteApiCommand, GtechCo
|
|||
.setData(new SoyMapData("clientIdentifier", clientIdentifier, "password", password))
|
||||
.render()
|
||||
.getBytes(UTF_8);
|
||||
EppInput eppInput = unmarshal(inputXmlBytes);
|
||||
Class<? extends Flow> flowClass = FlowPicker.getFlowClass(eppInput);
|
||||
System.out.println(runFlow(
|
||||
new FlowRunner(
|
||||
flowClass,
|
||||
eppInput,
|
||||
Trid.create(eppInput.getCommandWrapper().getClTrid()),
|
||||
new SessionMetadata() {
|
||||
|
||||
private final Map<String, Object> properties = new HashMap<>();
|
||||
|
||||
{
|
||||
setTransportCredentials(new TlsCredentials(
|
||||
LoginFlow.class,
|
||||
EppXmlTransformer.<EppInput>unmarshal(inputXmlBytes),
|
||||
Trid.create(null),
|
||||
new HttpSessionMetadata(
|
||||
new TlsCredentials(
|
||||
clientCertificateHash,
|
||||
InetAddresses.forString(clientIpAddress),
|
||||
"placeholder")); // behave as if we have SNI on, since we're validating a cert
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setProperty(String key, Object value) {
|
||||
properties.put(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object getProperty(String key) {
|
||||
return properties.get(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionSource getSessionSource() {
|
||||
return SessionSource.TOOL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {}
|
||||
},
|
||||
Optional.of(clientIpAddress),
|
||||
"placeholder"), // behave as if we have SNI on, since we're validating a cert
|
||||
new BasicHttpSession()),
|
||||
inputXmlBytes,
|
||||
null),
|
||||
null,
|
||||
new SystemClock()),
|
||||
CommitMode.DRY_RUN,
|
||||
UserPrivileges.NORMAL));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue