• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

AffirmativeBased 객체에 대한 질문입니다.

21.10.08 19:43 작성 조회수 138

0

 

안녕하세요. 강의 코드를 직접 타이핑하여 테스트하는중인데 동작이 달라서 질문드립니다.

데이터베이스를 통해 자원 권한처리를 하지 않고 설정클래스로 자원 권한처리를 하였을 때 AcecessDeniedException이 발생하면 화면에 "Access is denied" 메세지가 잘 출력이 되는데요.

 

강의와 같이 MetadataSource, SecurityInterceptor 등 여러 커스텀 객체를 추가하여 데이터베이스에서 자원의 권한정보를 읽어와서 인가처리시 AcecessDeniedException이 발생하면 화면에 물음표의 형태로 출력되어 제대로 메시지가 출력이 안됩니다.

 

보니까 인코딩 문제로 물음표로 표시되는데, 그 새로 추가한 AffirmativeBased에서 예외 발생시 예외 메시지가 한글로 출력이 되어서 인코딩문제로 페이지에 제대로 표시가 안되는 현상인것 같습니다.

 

그런데 제가 궁금한것은 설정 클래스를 통해 인가처리시에는 예외메시지가 영어로 출력되는데,  AffirmativeBased 객체를 생성해서 커스텀 FilterSecurityInterceptor를 사용할 때는 예외메시지가 한글로 나오는데 왜 동작이 다른지 궁금합니다.

 

디버깅모드에서 보니까 AffirmativeBased의 속성중 MessageSource가 설정클래스로 했을때와 다른 것 같은데 직접 생성할때와 설정클래스를 이용할 때 메시지소스 설정이 다르게 되는건가요? 강의 동영상에서는 잘 되는것같은데 저는 왜 안되는지 궁금합니다.

 

감사합니다.

답변 1

답변을 작성해보세요.

0

답변이 늦어 죄송합니다

혹시 소스 공유가 가능할까요?

잠꾸님의 프로필

잠꾸

질문자

2021.10.12

넵 해당 커밋입니다.

https://github.com/nefertirii/core-spring-security/tree/2a106e5533910e46cb6c71478b663b231523901c

 

일단 예외메세지가 계속 한글로 나와서 FormAccessDeniedHandler에서 UTF-8로 인코딩 하도록 코드를 수정하였습니다.

그럼 일단 문제가 해결 되었나요?