Skip to content

Commit acbe078

Browse files
author
서원지
authored
관리자 페이지를 새 admin-web(Next.js) 앱으로 리다이렉트 (#346)
## 변경 기존 관리자 페이지(`/api/v1/admin/**`, Thymeleaf)를 신규 Next.js 관리자 앱(admin-web)으로 리다이렉트합니다. - `/api/v1/admin/login` → admin-web `/login` (OAuth `?code` 쿼리 보존) - `/api/v1/admin/picke/list` → `/picke/list` - `/api/v1/admin/picke` → `/picke/create` - `/api/v1/admin/picke/notice` → `/notice` - 대상 URL은 `admin.web.url` (기본: admin-web Railway URL)로 설정 ## 참고 - 새 앱은 picke.store 관리자 API를 그대로 소비(BFF 프록시). - OAuth redirect_uri는 기존 `picke.store/api/v1/admin/login` 등록값 유지 → Server가 새 앱으로 포워딩. https://claude.ai/code/session_01X32DuLFrYS7B7gR2vPkmJY
1 parent 17f35a4 commit acbe078

1 file changed

Lines changed: 23 additions & 23 deletions

File tree

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
11
package com.swyp.picke.domain.admin.controller;
22

33
import io.swagger.v3.oas.annotations.Hidden;
4+
import jakarta.servlet.http.HttpServletRequest;
45
import org.springframework.beans.factory.annotation.Value;
56
import org.springframework.stereotype.Controller;
6-
import org.springframework.ui.Model;
77
import org.springframework.web.bind.annotation.GetMapping;
88
import org.springframework.web.bind.annotation.RequestMapping;
99

10+
/**
11+
* 관리자 페이지는 별도 Next.js 앱(admin-web)으로 이관되었다.
12+
* 기존 admin 경로(picke.store/api/v1/admin/**)는 새 앱으로 리다이렉트한다.
13+
* OAuth 콜백(?code=...)은 쿼리스트링을 보존해 새 앱 로그인 페이지로 전달한다.
14+
*/
1015
@Hidden
1116
@Controller
1217
@RequestMapping("/api/v1/admin")
1318
public class AdminPickeController {
1419

15-
@Value("${oauth.kakao.client-id}")
16-
private String kakaoClientId;
20+
@Value("${admin.web.url:https://admin-web-production-f2a2.up.railway.app}")
21+
private String adminWebUrl;
1722

18-
@Value("${oauth.google.client-id}")
19-
private String googleClientId;
20-
21-
@Value("${picke.baseUrl}")
22-
private String baseUrl;
23+
private String redirect(String path, HttpServletRequest request) {
24+
String qs = request.getQueryString();
25+
return "redirect:" + adminWebUrl + path + (qs != null ? "?" + qs : "");
26+
}
2327

2428
@GetMapping({"", "/"})
25-
public String index() {
26-
return "redirect:/api/v1/admin/login";
29+
public String index(HttpServletRequest request) {
30+
return redirect("/login", request);
2731
}
2832

2933
@GetMapping("/login")
30-
public String adminLoginPage(Model model) {
31-
model.addAttribute("kakaoClientId", kakaoClientId);
32-
model.addAttribute("googleClientId", googleClientId);
33-
model.addAttribute("redirectUri", baseUrl + "/api/v1/admin/login");
34-
35-
return "admin/admin-login";
34+
public String adminLoginPage(HttpServletRequest request) {
35+
return redirect("/login", request);
3636
}
3737

3838
@GetMapping("/picke/list")
39-
public String pickeListPage() {
40-
return "admin/picke-list";
39+
public String pickeListPage(HttpServletRequest request) {
40+
return redirect("/picke/list", request);
4141
}
4242

4343
@GetMapping("/picke")
44-
public String pickeCreatePage() {
45-
return "admin/picke-create";
44+
public String pickeCreatePage(HttpServletRequest request) {
45+
return redirect("/picke/create", request);
4646
}
4747

4848
@GetMapping("/picke/notice")
49-
public String noticePage() {
50-
return "admin/admin-notice";
49+
public String noticePage(HttpServletRequest request) {
50+
return redirect("/notice", request);
5151
}
52-
}
52+
}

0 commit comments

Comments
 (0)