비교적 최신 버전에서 에러가 발생합니다.
위에 분이 올려주신 https://github.com/spring-projects/spring-boot/issues/29820 참고하여 확인해보니 에러 페이지를 리턴하는 부분에서 /error 에 대한 request는 ServletRequest가 아닌 DummyRequest 로 넘어가는 것을 확인했습니다. (사진) 이 클래스는 getRemoteAddress()를 지원하지 않고요. 위와 같은 에러를 확인하신 분들은 뭔가 다른 에러가 있었고 이 에러로 인해 /error 페이지를 재요청하는데 이때 hasIpAddress() 권한체크로 인해 발생하셨을 거 같습니다. 결론적으로 java.lang.UnsupportedOperationException: public abstract java.lang.String javax.servlet.ServletRequest.getRemoteAddr() 이 에러는 /error에 대한 요청의 권한을 체크하면서 발생한 부분이어서 /error에 대한 부분만 permitAll()로 수정했습니다. http.authorizeRequests() .antMatchers("/error/**").permitAll() .antMatchers("/**") .hasIpAddress("자신의 IP") .and() .addFilter(getAuthenticationFilter()) ; 아예 errorPageSeucirytFilter를 제거하는 방법도 있습니다. https://github.com/spring-projects/spring-security/issues/11055#issuecomment-1098061598