Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2단계 - 리팩터링 #7

Open
wants to merge 2 commits into
base: kang-hyungu
Choose a base branch
from

Conversation

kang-hyungu
Copy link

피드백 강의를 참고해서 막혔던 부분 해결했습니다~!
인가 로직을 좀 더 고도화 할 필요가 있어 보이는데 먼저 리뷰 요청 보내요.

Copy link
Collaborator

@byjo byjo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

인증 필터에서 인가 관련 로직이 분리되니 훨씬 깔끔하네요!
코드 보다보니 요구사항이 누락된 부분이 보이는데요.
이 부분 추가하면서 말씀주신 것처럼 인가 로직 고도화를 하시면 좋겠습니다~

public class AuthorizationFilter extends GenericFilterBean {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이번 요구사항에서 추가된 GET /members/me 요청은 사용자가 인증이 완료 되었으면 접근 가능합니다.
즉, 모든 Member는 권한이 없더라도 자신의 정보를 볼 수 있죠.

먼저 AuthorizationFilter에 인증이 완료된 사용자일 때 403 에러를 받지 않도록 로직을 추가한 후, 리팩터링을 해보면 좋을 것 같네요.
리팩터링 과정에서 요청에 맞는 인가 방법을 확인할 때, AuthConfig에서 설정한 AuthorizeRequestMatcherRegistry 를 참고하시면 되겠습니다!

Comment on lines +25 to +44
protected ExtractableResponse<Response> get(final String path,
final Map<String, ?> cookies) {
return RestAssured.given().log().all()
.cookies(cookies)
.contentType(MediaType.APPLICATION_JSON_VALUE)
.when()
.get(path)
.then().log().all()
.extract();
}
protected ExtractableResponse<Response> post(final String path,
final Map<String, ?> parameters) {
return RestAssured.given().log().all()
.formParams(parameters)
.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.when()
.post(path)
.then().log().all()
.extract();
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 메서드 덕분에 테스트 코드가 훨씬 깔끔해졌네요 👍👍

@@ -10,4 +10,6 @@ public interface Authentication {
Set<String> getAuthorities();

boolean isAuthenticated();

boolean isAdmin();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 메서드가 프레임워크의 인터페이스까지 들어와야하나 조금 고민이 되네요.
모든 애플리케이션의 인증 객체에 admin이란 권한이 들어가나 싶어서요 ㅎㅎ
구구는 어떻게 생각하시나요?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants