반응형
java.lang.IllegalStateException: No thread-bound request found
Spring Framwork 환경인 xml 파일을 Spring Boot인 java 파일로 변경하는 과정에서 java.lang.IllegalStateException: No thread-bound request found 라는 에러가 발생하였다.
에러 발생
java.lang.IllegalStateException: No thread-bound request found:
Are you referring to request attributes outside of an actual web request,
or processing a request outside of the originally receiving thread?
If you are actually operating within a web request and still receive this message,
your code is probably running outside of DispatcherServlet:
In this case, use RequestContextListener or RequestContextFilter to expose
the current request.
at org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131)
at template.login.CustomAuthenticationProvider.authenticate(CustomAuthenticationProvider.java:47)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:175)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:200)
원인
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
...
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
...
디버그를 통해 확인해보니 해당 부분이 문제였다.
equestContextHolder를 생성하지 못하는 문제였기때문에 RequestContextListener가 필요하다.
해결
// WebConfig
@Bean
public RequestContextListener requestContextListener(){
return new RequestContextListener();
}
나의 경우에는 WebConfig.java 파일에 해당 내용을 추가하여 문제를 해결하였다.
반응형
'Back-End > Java' 카테고리의 다른 글
[Java] Path with "WEB-INF" or "META-INF" 에러 발생 (0) | 2024.08.07 |
---|---|
[Java] 스트림(Stream) 사용 방법 및 예제 (0) | 2022.12.27 |
[Java] DTO 또는 Domain 으로 생성한 컬럼 camelcase 로 변환 (0) | 2022.07.10 |
[Java] 숫자 뒤집기 (0) | 2022.05.12 |
[Java] 향상된 for문 사용하기 (0) | 2022.05.11 |
최근댓글