spring boot 3.x.x 버전을 사용하다보니 기존 레퍼런스를 참고하면 정상 작동하지 않는 현상이 발생한다.
기존
implementation 'de.codecentric:spring-boot-admin-starter-server:2.4.1'
해당 라이브러리를 임포트하여 spring boot admin 페이지를 구축하려고 했다.
세팅은 다음과 같다.
@Bean
fun filterChain(http: HttpSecurity): SecurityFilterChain {
val successHandler = SavedRequestAwareAuthenticationSuccessHandler()
successHandler.setTargetUrlParameter("redirectTo")
successHandler.setDefaultTargetUrl(adminServerProperties.contextPath + "/")
http.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringRequestMatchers(
adminServerProperties.contextPath + "/instances",
adminServerProperties.contextPath + "/actuator/**"
)
.and()
.authorizeHttpRequests()
.requestMatchers(adminServerProperties.contextPath + "/login").permitAll()
.requestMatchers(adminServerProperties.contextPath + "/assets/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage(adminServerProperties.contextPath + "/login")
.successHandler(successHandler)
.permitAll()
.and()
.logout()
.logoutUrl(adminServerProperties.contextPath + "/logout")
.permitAll()
http.headers().frameOptions().disable()
http.headers().xssProtection().disable()
return http.build()
}
그리고 /login 페이지 접속을 하니
ERR_TOO_MANY_REDIRECTS
오류가 발생했다. 실제 개발자창을 확인해보니 계속 /login 지점으로 redirect를 하고 있었다.
뭐가 문제일까 하다가 저번에 스웨거도 3.x.x 버전에서 버전이 달랐던게 생각나 혹시나해서 공식 가이드를 들어가 봤다.
https://docs.spring-boot-admin.com/current/getting-started.html
그랬더니 버전이 다른걸 발견하고
implementation("de.codecentric:spring-boot-admin-starter-server:3.1.0")
새버전을 적용해줬다. 그랬더니 정상 작동하는걸 확인했다~