인프런 커뮤니티 질문&답변

정병기님의 프로필 이미지

작성한 질문수

Spring boot redirect

작성

·

167

0

Spring boot redirect질문입니다. 최근 spring boot, thymleaf를 사용하여 사이드 프로젝트를 진행중에 있습니다. spring boot서버를 클라우드에 배포를 하고 서비스를 테스트 과정에서 클라이언트의 요청에 따라 api를 통해 redirect를 하는 과정이 있습니다. 문제는 redirect를 하게되면 배포 서버 도메인으로 요청 되는것이 아니라 localhost로 요청이 되어 원하는 화면으로 넘어가지 않습니다.

예를 들어

(1) https://port-0-teammatchservice-1cupyg2klvm5dc4u.sel5.cloudtype.app/

(2) https://localhost:8080/

첫번째 주소로 redirect를 해야되는데 두번째 주소로 리다이렉트가 됩니다. 메인 페이지에서 다른 페이지로 넘어가는 거는 문제가 없지만 redirect를하게 되면 도메인이 localhost로 바뀌어서 문제가 되고 있습니다. 그래서 이 문제를 해결하기 위해서 RedirectView를 사용해서 배포서버 도메인에 맞게 url을 수정하여 요청하는 방식을 하려고 합니다. 혹시 이 방법 말고 일괄적으로 redirect의 도메인 주소를 바꿀 수있는 방법이 있을까요?없다면 이 상황에서는 어떤 방법으로 하는게 좋을까요?

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

정병기님, Spring Boot와 Thymeleaf를 사용하는 프로젝트 중에서 리다이렉션 문제를 겪고 계시군요. 질문하신 내용과 관련된 구체적인 해결책은 제공된 정보에 포함되어 있지 않지만, Spring Boot에서 리다이렉션 이슈를 해결하는 일반적인 조언을 드릴 수 있습니다.

리다이렉션 도메인 주소 문제는 주로 애플리케이션 내에서 하드코드된 URL 또는 프로퍼티 설정에서의 잘못된 URL 구성 때문에 발생할 수 있습니다. RedirectView를 사용하여 개별적으로 URL을 수정하는 방식도 하나의 해결책이 될 수 있지만, 일괄적으로 리다이렉션 도메인 주소를 바꾸고자 한다면 다음 두 가지 방법을 고려해 볼 수 있습니다.

  1. 애플리케이션 프로퍼티 설정을 통해 기본 호스트명과 포트를 명시적으로 지정합니다. 예를 들어, server.servlet.context-path, server.port 등의 설정을 통해 애플리케이션 기본 URL을 구성하고, 이를 리다이렉션에 사용합니다.

  2. 코드 내에서 URL을 생성할 때 요청 정보(Request 정보)를 기반으로 동적으로 호스트명을 결정하는 방식을 사용합니다. 예를 들어, HttpServletRequest 객체에서 요청된 현재 호스트 정보를 추출하여 리다이렉션 URL을 구성합니다.

또한, 환경별(개발, 테스트, 운영 등)로 다른 URL 설정이 필요한 경우 프로필(profile) 기반의 프로퍼티 파일(application-{profile}.properties)을 사용하여 각 환경에 맞는 URL을 구성하는 것도 고려해 볼 수 있습니다.

Spring 문서나 관련 커뮤니티에서 추가적인 정보와 예시 코드를 찾아보는 것도 도움이 될 수 있습니다. 현재 상황에서 최적의 해결책을 찾길 바랍니다.