Skip to content

Commit

Permalink
feat: (#29) CORS설정 및 ArgumentResolver등록
Browse files Browse the repository at this point in the history
  • Loading branch information
jeomxon committed Jul 19, 2023
1 parent 435348b commit fd4730e
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 4 deletions.
46 changes: 46 additions & 0 deletions backend/src/main/java/com/votogether/config/WebMvcConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.votogether.config;

import com.votogether.global.jwt.JwtAuthorizationArgumentResolver;
import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

private final JwtAuthorizationArgumentResolver jwtAuthorizationArgumentResolver;
private final String origins;

public WebMvcConfig(
final JwtAuthorizationArgumentResolver jwtAuthorizationArgumentResolver,
@Value("${votogether.openapi.prod-url}") final String origins
) {
this.jwtAuthorizationArgumentResolver = jwtAuthorizationArgumentResolver;
this.origins = origins;
}

@Override
public void addArgumentResolvers(final List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(jwtAuthorizationArgumentResolver);
}

@Override
public void addCorsMappings(final CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedOrigins(origins)
.allowedMethods(
HttpMethod.POST.name(),
HttpMethod.GET.name(),
HttpMethod.PATCH.name(),
HttpMethod.PUT.name(),
HttpMethod.DELETE.name()
)
.exposedHeaders(HttpHeaders.LOCATION);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,17 @@
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;

@Component
@RequiredArgsConstructor
@Component
public class JwtAuthorizationArgumentResolver implements HandlerMethodArgumentResolver {

private final TokenProcessor tokenProcessor;
private final MemberService memberService;

@Override
public boolean supportsParameter(final MethodParameter parameter) {
return parameter.hasParameterAnnotation(Auth.class);
return parameter.withContainingClass(Member.class)
.hasParameterAnnotation(Auth.class);
}

@Override
Expand All @@ -34,7 +35,6 @@ public Member resolveArgument(
final String token = webRequest.getHeader(HttpHeaders.AUTHORIZATION);
final String tokenWithoutType = tokenProcessor.resolveToken(token);
final TokenPayload tokenPayload = tokenProcessor.parseToken(tokenWithoutType);

return memberService.findById(tokenPayload.memberId());
}

Expand Down
2 changes: 1 addition & 1 deletion backend/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ logging:
votogether:
openapi:
dev-url: http://localhost:8080
prod-url: http://votogether.com
prod-url: ${PROD_URL}

oauth:
kakao:
Expand Down

0 comments on commit fd4730e

Please sign in to comment.