Skip to content

Commit d3804c5

Browse files
committed
feat: ResponseEntity 에 redirect 메서드 생성
1 parent b672c07 commit d3804c5

File tree

3 files changed

+20
-26
lines changed

3 files changed

+20
-26
lines changed

tomcat/src/main/java/org/apache/coyote/http11/controller/LoginController.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ public LoginController(LoginService loginService) {
2424
@Override
2525
public ResponseEntity<? extends Object> doGet(HttpRequest httpRequest) {
2626
if (SessionManager.loggedIn(httpRequest)) {
27-
return ResponseEntity.status(302)
28-
.addHeader(LOCATION_HEADER, INDEX_PAGE)
29-
.build();
27+
return ResponseEntity.redirect(INDEX_PAGE);
3028
}
3129
ResponseEntity<Object> responseEntity = ResponseEntity.status(200).build();
3230
responseEntity.responseView("/login.html");
@@ -36,9 +34,7 @@ public ResponseEntity<? extends Object> doGet(HttpRequest httpRequest) {
3634
@Override
3735
public ResponseEntity<? extends Object> doPost(HttpRequest httpRequest) {
3836
if (SessionManager.loggedIn(httpRequest)) {
39-
return ResponseEntity.status(302)
40-
.addHeader(LOCATION_HEADER, INDEX_PAGE)
41-
.build();
37+
return ResponseEntity.redirect(INDEX_PAGE);
4238
}
4339

4440
Optional<String> loginSession = login(httpRequest);
@@ -49,9 +45,7 @@ public ResponseEntity<? extends Object> doPost(HttpRequest httpRequest) {
4945
.build();
5046
}
5147

52-
return ResponseEntity.status(302)
53-
.addHeader(LOCATION_HEADER, "/401.html")
54-
.build();
48+
return ResponseEntity.redirect("/401.html");
5549
}
5650

5751
private Optional<String> login(HttpRequest httpRequest) {
@@ -66,13 +60,11 @@ private Optional<String> login(HttpRequest httpRequest) {
6660

6761
@Override
6862
public ResponseEntity<? extends Object> doPut(HttpRequest httpRequest) {
69-
return ResponseEntity.status(405)
70-
.build();
63+
return ResponseEntity.notAllowed();
7164
}
7265

7366
@Override
7467
public ResponseEntity<? extends Object> doDelete(HttpRequest httpRequest) {
75-
return ResponseEntity.status(405)
76-
.build();
68+
return ResponseEntity.notAllowed();
7769
}
7870
}

tomcat/src/main/java/org/apache/coyote/http11/controller/SignUpController.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ public SignUpController(LoginService loginService) {
2525
@Override
2626
public ResponseEntity<? extends Object> doGet(HttpRequest httpRequest) {
2727
if (SessionManager.loggedIn(httpRequest)) {
28-
return ResponseEntity.status(302)
29-
.addHeader(LOCATION_HEADER, INDEX_PAGE)
30-
.build();
28+
return ResponseEntity.redirect(INDEX_PAGE);
3129
}
3230
ResponseEntity<Object> responseEntity = ResponseEntity.status(200).build();
3331
responseEntity.responseView("/register.html");
@@ -38,19 +36,15 @@ public ResponseEntity<? extends Object> doGet(HttpRequest httpRequest) {
3836
public ResponseEntity<? extends Object> doPost(HttpRequest httpRequest) {
3937
try {
4038
if (SessionManager.loggedIn(httpRequest)) {
41-
return ResponseEntity.status(302)
42-
.addHeader(LOCATION_HEADER, INDEX_PAGE)
43-
.build();
39+
return ResponseEntity.redirect(INDEX_PAGE);
4440
}
4541
String loginSession = signUp(httpRequest);
4642
return ResponseEntity.status(302)
4743
.addHeader(LOCATION_HEADER, INDEX_PAGE)
4844
.addHeader("Set-Cookie", "JSESSIONID" + "=" + loginSession)
4945
.build();
5046
} catch (MemberAlreadyExistsException e) {
51-
return ResponseEntity.status(302)
52-
.addHeader(LOCATION_HEADER, "/register.html")
53-
.build();
47+
return ResponseEntity.redirect("/register.html");
5448
}
5549
}
5650

@@ -64,13 +58,11 @@ private String signUp(HttpRequest httpRequest) {
6458

6559
@Override
6660
public ResponseEntity<? extends Object> doPut(HttpRequest httpRequest) {
67-
return ResponseEntity.status(405)
68-
.build();
61+
return ResponseEntity.notAllowed();
6962
}
7063

7164
@Override
7265
public ResponseEntity<? extends Object> doDelete(HttpRequest httpRequest) {
73-
return ResponseEntity.status(405)
74-
.build();
66+
return ResponseEntity.notAllowed();
7567
}
7668
}

tomcat/src/main/java/org/apache/coyote/http11/response/ResponseEntity.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ public static ResponseBuilder status(int statusCode) {
2121
return new ResponseBuilderImpl(statusCode);
2222
}
2323

24+
public static ResponseEntity<Object> redirect(String path) {
25+
Map<String, String> headers = new HashMap<>();
26+
headers.put("Location", path);
27+
return new ResponseEntity<>(302, headers, null);
28+
}
29+
30+
public static ResponseEntity<Object> notAllowed() {
31+
return new ResponseEntity<>(405, null, null);
32+
}
33+
2434
public void responseView(String viewPath) {
2535
this.viewResponse = true;
2636
this.viewPath = viewPath;

0 commit comments

Comments
 (0)