본문 바로가기
java

spring redirectUrl 생성

by 후린트 2022. 8. 18.
반응형

request를 가지고 redirectUrl 을 생성하는 부분이 애매하기도 하고 해서 
spring에서 사용하고 있는 소스를 기록차 남김

HttpServletRequest 를 가지고 redirectUrl 을 생성한다.

String url = "https://foo.bar.com/this/is/test?param1=value1&param2=value2";

doReturn("https").when(request).getScheme();
doReturn("foo.bar.com").when(request).getServerName();
doReturn(443).when(request).getServerPort();                       
doReturn("/this/is/test").when(request).getRequestURI();
doReturn("param1=value1&param2=value2").when(request).getQueryString();

UriComponentsBuilder builder = ServletUriComponentsBuilder.fromRequest(request);

assertThat(builder.toUriString(), equalTo(url));
assertThat(builder.replaceQuery("").toUriString(), equalTo("https://foo.bar.com/this/is/test"));
assertThat(builder.replacePath("").toUriString(), equalTo("https://foo.bar.com"));


//spring logout redirect
UriComponentsBuilder builder = ServletUriComponentsBuilder.fromRequest(request);
https://a.com/user/logout?spring-security-redirect=builder.toUriString()

 

 

반응형