Class OAuthClientRegistrationWrapperEntityValidator
java.lang.Object
com.broadleafcommerce.auth.client.validation.OAuthClientRegistrationWrapperEntityValidator
- All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
public class OAuthClientRegistrationWrapperEntityValidator
extends Object
implements com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
Validate that a
OAuthClientRegistrationWrapper has a registration id, client id, and
client secret-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidsetClientRegistrationPropertiesService(ClientRegistrationPropertiesService<OAuthClientRegistrationWrapper> clientRegistrationPropertiesService) booleansupports(@NonNull Class<?> serviceClass, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) voidvalidate(@NonNull Object businessInstance, @NonNull org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected voidvalidateCannotMutateInstanceIfDefinedInProperties(Object businessInstance, org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) As implemented inDefaultBroadleafClientRegistrationRepository, when client registrations are defined in both properties and in the database, the property-based registration will always win.voidvalidateForReplace(Object businessInstance, org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) voidvalidateForUpdate(Object updatedBusinessInstance, org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
validateForCreate
-
Constructor Details
-
OAuthClientRegistrationWrapperEntityValidator
public OAuthClientRegistrationWrapperEntityValidator()
-
-
Method Details
-
supports
public boolean supports(@NonNull @NonNull Class<?> serviceClass, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
supportsin interfacecom.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
-
validate
public void validate(@NonNull @NonNull Object businessInstance, @NonNull @NonNull org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
validatein interfacecom.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
-
validateForReplace
public void validateForReplace(Object businessInstance, org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
validateForReplacein interfacecom.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
-
validateForUpdate
public void validateForUpdate(Object updatedBusinessInstance, org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
validateForUpdatein interfacecom.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidator
-
validateCannotMutateInstanceIfDefinedInProperties
protected void validateCannotMutateInstanceIfDefinedInProperties(Object businessInstance, org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) As implemented in
DefaultBroadleafClientRegistrationRepository, when client registrations are defined in both properties and in the database, the property-based registration will always win. This means if someone makes an API call to modify the DB representation, it will have no meaningful effect in system anyway, since the new persisted values will take a backseat to whatever is defined in properties.To avoid confusion around this, we implement this validation to disallow DB mutation of any client registration that is defined via properties. This gives the user a clear indication that their changes are invalid.
- Parameters:
businessInstance- the client registration instance to validateerrors- the errors object on which to register errorscontext- context information around multitenant state
-
setClientRegistrationPropertiesService
@Autowired public void setClientRegistrationPropertiesService(ClientRegistrationPropertiesService<OAuthClientRegistrationWrapper> clientRegistrationPropertiesService)
-