-
Notifications
You must be signed in to change notification settings - Fork 309
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
[톰캣 구현하기 - 1,2단계] 베로(김은솔) 미션 제출합니다. #325
Merged
Merged
Changes from 20 commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
839ce23
test: 학습 테스트 완료
Cyma-s cc4330d
feat: index.html 응답하도록 수정
Cyma-s d9fbe85
feat: CSS, js 파일을 지원하도록 수정
Cyma-s f9ed141
feat: 로그인 시 user 정보 logging 기능 추가
Cyma-s b464eb2
feat: 로그인 결과에 따라 적절한 페이지로 리다이렉트 하도록 추가
Cyma-s 3abf0bd
feat: 회원가입 기능 추가
Cyma-s 2da4b10
feat: 쿠키에 JSESSIONID 값 저장하는 기능 추가
Cyma-s a72d6c4
feat: 유효한 Session이 존재하면 index.html 로 리다이렉트하는 기능 추가
Cyma-s 6ed967f
test: 통합 테스트 추가
Cyma-s 823621a
fix: 헤더 알파벳 순 정렬 추가
Cyma-s 5ee4610
refactor: optional 값 변수로 추출
Cyma-s da74a18
refactor: stream 에 try-with-resources 적용
Cyma-s 07b61d8
fix: 로깅 삭제
Cyma-s fa0d6f9
refactor: 생성자 접근 제어자 변경
Cyma-s 5189da0
refactor: 불필요한 출력문 삭제
Cyma-s 1b152ef
refactor: 쿠키 파싱 로직 리팩터링
Cyma-s 5c588a0
refactor: static 클래스 private 생성자 추가
Cyma-s 22379dc
refactor: EnumMap 으로 변경
Cyma-s 9ecd360
refactor: 변수 이름 변경
Cyma-s 48141c7
refactor: assertAll 로 감싸도록 변경
Cyma-s b354bfa
refactor: HttpMethod가 같은지 확인하는 메서드 추가
Cyma-s 509870e
refactor: 사용하지 않는 생성자 삭제
Cyma-s 74b22bf
refactor: 생성자 접근 제어자를 private 으로 변경
Cyma-s 36ab2de
refactor: 세션 검증 메서드 추가
Cyma-s 8971b54
refactor: HttpRequest 생성 책임 분리
Cyma-s 67e89de
refactor: 빈 favicon 파일 추가
Cyma-s 2e58ab4
refactor: 메서드 이름 변경
Cyma-s ca77c9e
refactor: 어색하지 않은 변수 이름으로 변경
Cyma-s 5323db0
refactor: 메서드 이름 오타 수정
Cyma-s File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package nextstep.filter; | ||
|
||
import org.apache.coyote.http11.HttpRequest; | ||
import org.apache.coyote.http11.HttpResponse; | ||
|
||
public interface Interceptor { | ||
|
||
boolean preHandle(final HttpRequest httpRequest, final HttpResponse httpResponse); | ||
|
||
boolean support(final HttpRequest httpRequest); | ||
} |
33 changes: 33 additions & 0 deletions
33
tomcat/src/main/java/nextstep/filter/LoginInterceptor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package nextstep.filter; | ||
|
||
import static org.apache.coyote.http11.StaticPages.INDEX_PAGE; | ||
|
||
import java.util.List; | ||
import nextstep.jwp.exception.InvalidSessionException; | ||
import org.apache.catalina.SessionManager; | ||
import org.apache.coyote.http11.HttpRequest; | ||
import org.apache.coyote.http11.HttpResponse; | ||
import org.apache.coyote.http11.Session; | ||
|
||
public class LoginInterceptor implements Interceptor { | ||
|
||
private static final List<String> SUPPORT_PATH = List.of( | ||
"/login" | ||
); | ||
|
||
@Override | ||
public boolean support(final HttpRequest httpRequest) { | ||
return SUPPORT_PATH.contains(httpRequest.getPath()); | ||
} | ||
|
||
@Override | ||
public boolean preHandle(final HttpRequest httpRequest, final HttpResponse httpResponse) { | ||
if (httpRequest.containsCookieAndJSessionID()) { | ||
final Session session = SessionManager.getInstance().findSession(httpRequest.getCookie().getJSessionID()) | ||
.orElseThrow(InvalidSessionException::new); | ||
httpResponse.sendRedirect(INDEX_PAGE); | ||
return false; | ||
} | ||
return true; | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
tomcat/src/main/java/nextstep/jwp/controller/Controller.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package nextstep.jwp.controller; | ||
|
||
import java.io.IOException; | ||
import org.apache.coyote.http11.HttpRequest; | ||
|
||
public interface Controller { | ||
|
||
ResponseEntity service(final HttpRequest httpRequest) throws IOException; | ||
|
||
boolean canHandle(final HttpRequest httpRequest); | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
session 이 사용되지 않고 있는데 혹시 Exception 처리 때문에 사용하신걸까요??
현재에는 별다른 로직이 없어서 사용되지 않는 것 같긴합니다만,,
현재 요구사항에 맞는 메서드를 하나 추가하시는건 어떠실까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exception 처리 때문에 사용한 게 맞습니다 예리하시군요
그리고 sonar cloud 에서 orElseThrow 를 할 때는 변수를 만들어야 한다고 경고해서 변수를 만들어주도록 했습니다.
우르 말대로 요구사항에 맞는 메서드가 있는 게 좋을 것 같아서
validateSession
이라는 메서드를 추가해서 사용했습니다 !