mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 07:57:13 +02:00
Add FlowMetadata (containing isSuperuser) to custom flow logic
This also bypasses signed mark validation during domain creation if the flow is being executed as superuser. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=145435268
This commit is contained in:
parent
d5160213e5
commit
f3388326d6
21 changed files with 213 additions and 74 deletions
|
@ -14,6 +14,7 @@
|
|||
|
||||
package google.registry.flows.custom;
|
||||
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.model.eppinput.EppInput;
|
||||
|
||||
|
@ -25,10 +26,13 @@ public abstract class BaseFlowCustomLogic {
|
|||
|
||||
private final EppInput eppInput;
|
||||
private final SessionMetadata sessionMetadata;
|
||||
private final FlowMetadata flowMetadata;
|
||||
|
||||
protected BaseFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
protected BaseFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
this.eppInput = eppInput;
|
||||
this.sessionMetadata = sessionMetadata;
|
||||
this.flowMetadata = flowMetadata;
|
||||
}
|
||||
|
||||
protected EppInput getEppInput() {
|
||||
|
@ -38,4 +42,8 @@ public abstract class BaseFlowCustomLogic {
|
|||
protected SessionMetadata getSessionMetadata() {
|
||||
return sessionMetadata;
|
||||
}
|
||||
|
||||
protected FlowMetadata getFlowMetadata() {
|
||||
return flowMetadata;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
package google.registry.flows.custom;
|
||||
|
||||
import google.registry.config.RegistryConfig.ConfigModule;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.model.eppinput.EppInput;
|
||||
|
||||
|
@ -32,42 +33,42 @@ import google.registry.model.eppinput.EppInput;
|
|||
public class CustomLogicFactory {
|
||||
|
||||
public DomainApplicationCreateFlowCustomLogic forDomainApplicationCreateFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainApplicationCreateFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainApplicationCreateFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainCreateFlowCustomLogic forDomainCreateFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainCreateFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainCreateFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainCheckFlowCustomLogic forDomainCheckFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainCheckFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainCheckFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainInfoFlowCustomLogic forDomainInfoFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainInfoFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainInfoFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainUpdateFlowCustomLogic forDomainUpdateFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainUpdateFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainUpdateFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainRenewFlowCustomLogic forDomainRenewFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainRenewFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainRenewFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainDeleteFlowCustomLogic forDomainDeleteFlow(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainDeleteFlowCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainDeleteFlowCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
public DomainPricingCustomLogic forDomainPricing(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return new DomainPricingCustomLogic(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
return new DomainPricingCustomLogic(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ package google.registry.flows.custom;
|
|||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.model.eppinput.EppInput;
|
||||
|
||||
|
@ -25,49 +26,73 @@ public class CustomLogicModule {
|
|||
|
||||
@Provides
|
||||
static DomainApplicationCreateFlowCustomLogic provideDomainApplicationCreateFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainApplicationCreateFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainApplicationCreateFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainCreateFlowCustomLogic provideDomainCreateFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainCreateFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainCreateFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainCheckFlowCustomLogic provideDomainCheckFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainCheckFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainCheckFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainInfoFlowCustomLogic provideDomainInfoFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainInfoFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainInfoFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainUpdateFlowCustomLogic provideDomainUpdateFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainUpdateFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainUpdateFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainRenewFlowCustomLogic provideDomainRenewFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainRenewFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainRenewFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainDeleteFlowCustomLogic provideDomainDeleteFlowCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainDeleteFlow(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainDeleteFlow(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
@Provides
|
||||
static DomainPricingCustomLogic provideDomainPricingCustomLogic(
|
||||
CustomLogicFactory factory, EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
return factory.forDomainPricing(eppInput, sessionMetadata);
|
||||
CustomLogicFactory factory,
|
||||
EppInput eppInput,
|
||||
SessionMetadata sessionMetadata,
|
||||
FlowMetadata flowMetadata) {
|
||||
return factory.forDomainPricing(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import com.google.auto.value.AutoValue;
|
|||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.net.InternetDomainName;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainApplicationCreateFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -35,8 +36,8 @@ import google.registry.model.reporting.HistoryEntry;
|
|||
public class DomainApplicationCreateFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainApplicationCreateFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
|
|
|
@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableList;
|
|||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.net.InternetDomainName;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainCheckFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -34,13 +35,12 @@ import org.joda.time.DateTime;
|
|||
*/
|
||||
public class DomainCheckFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainCheckFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainCheckFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/**
|
||||
* A hook that runs before any validation. This is useful to e.g. add allowable extensions.
|
||||
*/
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
@SuppressWarnings("unused")
|
||||
public void beforeValidation() throws EppException {
|
||||
// Do nothing.
|
||||
|
|
|
@ -19,6 +19,7 @@ import com.google.common.base.Optional;
|
|||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.net.InternetDomainName;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainCreateFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -35,8 +36,9 @@ import google.registry.model.reporting.HistoryEntry;
|
|||
*/
|
||||
public class DomainCreateFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainCreateFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainCreateFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
|
|
|
@ -17,6 +17,7 @@ package google.registry.flows.custom;
|
|||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainDeleteFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -33,8 +34,9 @@ import google.registry.model.reporting.HistoryEntry;
|
|||
*/
|
||||
public class DomainDeleteFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainDeleteFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainDeleteFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
|
@ -65,10 +67,9 @@ public class DomainDeleteFlowCustomLogic extends BaseFlowCustomLogic {
|
|||
/**
|
||||
* A hook that runs before the response is returned.
|
||||
*
|
||||
* <p>This takes the {@link Result.Code} and {@link ResponseExtension}s as input and returns
|
||||
* them, potentially with modifications.
|
||||
* <p>This takes the {@link Result.Code} and {@link ResponseExtension}s as input and returns them,
|
||||
* potentially with modifications.
|
||||
*/
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public BeforeResponseReturnData beforeResponse(BeforeResponseParameters parameters)
|
||||
throws EppException {
|
||||
|
@ -114,7 +115,6 @@ public class DomainDeleteFlowCustomLogic extends BaseFlowCustomLogic {
|
|||
|
||||
public abstract HistoryEntry historyEntry();
|
||||
|
||||
|
||||
public abstract EntityChanges entityChanges();
|
||||
|
||||
public static Builder newBuilder() {
|
||||
|
@ -136,7 +136,7 @@ public class DomainDeleteFlowCustomLogic extends BaseFlowCustomLogic {
|
|||
public abstract BeforeSaveParameters build();
|
||||
}
|
||||
}
|
||||
/** A class to encapsulate parameters for a call to {@link #beforeResponse}. */
|
||||
/** A class to encapsulate parameters for a call to {@link #beforeResponse}. */
|
||||
@AutoValue
|
||||
public abstract static class BeforeResponseParameters extends ImmutableObject {
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ package google.registry.flows.custom;
|
|||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainInfoFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -31,8 +32,9 @@ import google.registry.model.eppoutput.EppResponse.ResponseExtension;
|
|||
*/
|
||||
public class DomainInfoFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainInfoFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainInfoFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
|
|
|
@ -17,6 +17,7 @@ package google.registry.flows.custom;
|
|||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.net.InternetDomainName;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainPricingLogic;
|
||||
import google.registry.flows.domain.FeesAndCredits;
|
||||
|
@ -33,8 +34,9 @@ import org.joda.time.DateTime;
|
|||
*/
|
||||
public class DomainPricingCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainPricingCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainPricingCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that customizes the application update price. */
|
||||
|
|
|
@ -17,6 +17,7 @@ package google.registry.flows.custom;
|
|||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainRenewFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -34,8 +35,9 @@ import org.joda.time.DateTime;
|
|||
*/
|
||||
public class DomainRenewFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainRenewFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainRenewFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
|
|
|
@ -16,6 +16,7 @@ package google.registry.flows.custom;
|
|||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowMetadata;
|
||||
import google.registry.flows.SessionMetadata;
|
||||
import google.registry.flows.domain.DomainUpdateFlow;
|
||||
import google.registry.model.ImmutableObject;
|
||||
|
@ -30,8 +31,9 @@ import google.registry.model.reporting.HistoryEntry;
|
|||
*/
|
||||
public class DomainUpdateFlowCustomLogic extends BaseFlowCustomLogic {
|
||||
|
||||
protected DomainUpdateFlowCustomLogic(EppInput eppInput, SessionMetadata sessionMetadata) {
|
||||
super(eppInput, sessionMetadata);
|
||||
protected DomainUpdateFlowCustomLogic(
|
||||
EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) {
|
||||
super(eppInput, sessionMetadata, flowMetadata);
|
||||
}
|
||||
|
||||
/** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */
|
||||
|
@ -95,7 +97,6 @@ public class DomainUpdateFlowCustomLogic extends BaseFlowCustomLogic {
|
|||
|
||||
public abstract HistoryEntry historyEntry();
|
||||
|
||||
|
||||
public abstract EntityChanges entityChanges();
|
||||
|
||||
public static Builder newBuilder() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue