OAuth 2.0을 공부하며 여러가지 시도를 하던 중 OAuth2 서비스를 제공하는 페이지로 리다이렉트를 시켜주어야 했다.
Spring Boot를 사용하여 Controller 클래스를 작성할 때는 항상 @RestController
를 사용해 클래스를 작성해왔기 때문에 클라이언트를 리다이렉트 시키는 방법을 잊고 있었으나 검색을 통해 실마리를 찾았다
@RestController
를 이용해 Rest API를 제공하는 Controller 클래스에서 사용자를 리다이렉트 시키려면 HttpServletResponse
를 파라미터로 받는 메서드를 작성해 HttpResponse
객체를 사용하면 된다.
@RestController
@RequestMapping("/oauth")
public class OAuthController{
//...
@GetMapping("/google")
public void oauthLogin(HttpServletResponse response){
String redirect_uri="http://www.google.com";
response.sendRedirect(redirect_uri);
}
//...
}
위와 같이 메서드를 작성하게 되면, 사용자가 /oauth/google
경로로 접근하였을 때, spring은 google.com
경로로 클라이언트를 리다이렉트 시키게 된다.