diff --git a/src/main/java/com/rabbitmqprac/config/WebConfig.java b/src/main/java/com/rabbitmqprac/config/WebConfig.java index 9ab3bc9..1136745 100644 --- a/src/main/java/com/rabbitmqprac/config/WebConfig.java +++ b/src/main/java/com/rabbitmqprac/config/WebConfig.java @@ -1,21 +1,29 @@ package com.rabbitmqprac.config; +import com.rabbitmqprac.global.converter.OauthProviderConverter; import com.rabbitmqprac.global.interceptor.RequestInterceptor; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; +import org.springframework.format.FormatterRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -@Profile("prod") +import java.util.Optional; + @Configuration @RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { - private final RequestInterceptor requestInterceptor; + private final Optional requestInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(requestInterceptor); + if (requestInterceptor.isPresent()) { + registry.addInterceptor(requestInterceptor.get()); + } } + @Override + public void addFormatters(FormatterRegistry registrar) { + registrar.addConverter(new OauthProviderConverter()); + } } diff --git a/src/main/java/com/rabbitmqprac/global/converter/OauthProviderConverter.java b/src/main/java/com/rabbitmqprac/global/converter/OauthProviderConverter.java new file mode 100644 index 0000000..9f169ff --- /dev/null +++ b/src/main/java/com/rabbitmqprac/global/converter/OauthProviderConverter.java @@ -0,0 +1,22 @@ +package com.rabbitmqprac.global.converter; + +import com.rabbitmqprac.domain.persistence.oauth.constant.OauthProvider; +import org.springframework.core.convert.converter.Converter; +import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; + +public class OauthProviderConverter implements Converter { + @Override + public OauthProvider convert(String provider) { + try { + return OauthProvider.valueOf(provider.toUpperCase()); + } catch (IllegalArgumentException e) { + throw new MethodArgumentTypeMismatchException( + provider, + OauthProvider.class, + "oauthProvider", + null, + e + ); + } + } +}