You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Custom Principal 적용(java.security.Principal) StompChannelInterceptor를 통한 본인 인증 ChatErrorHandler를 통한 인터셉터에서 발생하는 예외 처리
작업 상세 내용 (필수)
TODO: interceptor 작성
TODO: handler 작성
TODO: Principal 추가
참고자료
블로그의 경우 StompSubProtocolErrorHandler를 상속받아 만든 StompErrorHandler에서 MessageDeliveryException 혹은 지정한 다른 인가에 대한 예외, JWT에 대한 예외를 처리해주는데, BuddyBridge 에서는 해당 예외를 전부 RuntimeException을 상속한 BusinessException을 상속해 구현하였기에 예외 발생 시 StompSubProtocolErrorHandler를 상속한 ChatErrorHandler에서 getErrorCode() 메서드를 통해 가져왔습니다.
기본적으로 ChannelInterceptor에서 예외가 발생하면 MessageDeliveryException로 래핑되며 원본 예외는 cause로 저장됩니다.
블로그의 @MessageExceptionHandler 어노테이션을 통해 비즈니스 로직에 대한 검증 예외 처리를 수행하는데 비즈니스 예외에 대한 걸 전부 위에서 수행하고 ChatController에서 발생하는 예외도 ChatErrorHandler에서 처리하고 있어 만약, 적용한다면 어떻게 해야 좋을지 잘 모르겠습니다.
기능 요청
기능 설명 (필수)
Custom Principal 적용(java.security.Principal)
StompChannelInterceptor
를 통한 본인 인증ChatErrorHandler
를 통한 인터셉터에서 발생하는 예외 처리작업 상세 내용 (필수)
참고자료
블로그의 경우
StompSubProtocolErrorHandler
를 상속받아 만든StompErrorHandler
에서MessageDeliveryException
혹은 지정한 다른 인가에 대한 예외, JWT에 대한 예외를 처리해주는데, BuddyBridge 에서는 해당 예외를 전부RuntimeException
을 상속한BusinessException
을 상속해 구현하였기에 예외 발생 시StompSubProtocolErrorHandler
를 상속한ChatErrorHandler
에서getErrorCode()
메서드를 통해 가져왔습니다.기본적으로 ChannelInterceptor에서 예외가 발생하면
MessageDeliveryException
로 래핑되며 원본 예외는 cause로 저장됩니다.블로그의 @MessageExceptionHandler 어노테이션을 통해 비즈니스 로직에 대한 검증 예외 처리를 수행하는데 비즈니스 예외에 대한 걸 전부 위에서 수행하고
ChatController
에서 발생하는 예외도ChatErrorHandler
에서 처리하고 있어 만약, 적용한다면 어떻게 해야 좋을지 잘 모르겠습니다.Blog
https://shout-to-my-mae.tistory.com/434#%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%EC%97%90%20%EB%8C%80%ED%95%9C%20%EA%B2%80%EC%A6%9D%20%EC%98%88%EC%99%B8%20%EC%B2%98%EB%A6%AC-1
MessageDeliveryException Docs
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/messaging/MessageDeliveryException.html
The text was updated successfully, but these errors were encountered: