
org.lognet.springboot.grpc.autoconfigure.GRpcValidationConfiguration Maven / Gradle / Ivy
// Generated by delombok at Mon Jul 31 05:34:41 UTC 2023
package org.lognet.springboot.grpc.autoconfigure;
import io.grpc.Status;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Validator;
import java.util.Optional;
import org.lognet.springboot.grpc.FailureHandlingSupport;
import org.lognet.springboot.grpc.GRpcErrorHandler;
import org.lognet.springboot.grpc.GRpcGlobalInterceptor;
import org.lognet.springboot.grpc.recovery.ErrorHandlerAdapter;
import org.lognet.springboot.grpc.recovery.GRpcExceptionHandler;
import org.lognet.springboot.grpc.recovery.GRpcExceptionScope;
import org.lognet.springboot.grpc.recovery.GRpcServiceAdvice;
import org.lognet.springboot.grpc.validation.ValidatingInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
@Configuration
@ConditionalOnClass({Validator.class})
@EnableConfigurationProperties(GRpcValidationProperties.class)
public class GRpcValidationConfiguration {
@Bean
@ConditionalOnBean(Validator.class)
@GRpcGlobalInterceptor
public ValidatingInterceptor validatingInterceptor(
@Lazy Validator validator,
GRpcValidationProperties validationProperties,
@Lazy FailureHandlingSupport failureHandlingSupport) {
return new ValidatingInterceptor(validator, failureHandlingSupport)
.order(validationProperties.getInterceptorOrder());
}
@ConditionalOnMissingErrorHandler(ConstraintViolationException.class)
@Configuration
static class DefaultValidationHandlerConfig {
@GRpcServiceAdvice
public static class DefaultValidationErrorHandler extends ErrorHandlerAdapter {
@java.lang.SuppressWarnings("all")
private static final org.slf4j.Logger log =
org.slf4j.LoggerFactory.getLogger(DefaultValidationErrorHandler.class);
public DefaultValidationErrorHandler(Optional errorHandler) {
super(errorHandler);
}
@GRpcExceptionHandler
public Status handle(ConstraintViolationException e, GRpcExceptionScope scope) {
return handle(e, scope.getHintAs(Status.class).get(), scope);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy