인프런 커뮤니티 질문&답변

공룡님의 프로필 이미지

작성한 질문수

스프링 시큐리티

6) 웹 기반 인가처리 실시간 반영하기

DB에서 권한과 리소스를 읽어오지를 못합니다.

해결된 질문

작성

·

353

0

제 프로젝트에서 강의에서 하신대로 FilterSecurityInterceptor을 구현했으나 디버깅을 해보니UrlResourceMapFactoryBean 에서 resourceMap이 null인 상태로 넘어옵니다.

제가 코드를 작성할 때 listener 패키지 아래의 SetupDataLoader를 작성해서 스프링 부트가 실행될 때 DB에 초기 Role, Resource를 넣었으나 막상 디버그할 때는 해당 데이터가 null로 리턴되서 그런지,  기존의 securityConfig에서 addFilterBefore을 주석처리할 때는 잘 되던것이 주석처리를 해제하면 다시 인증과 인가가 모두 먹통이 되어버립니다.

문제 원인은 알았으나 해결 방법을 모르겠네요..

https://github.com/drynod/Spring-Security-Practice-Project

제 코드 주소입니다. 강사님이 진행하신 뷰 페이지와는 상당히 다르나 강의를 보고 진행했기 때문에 내부 내용은 거의 같습니다.

현재 문제가 되고 있는 부분이

UrlResourceMapFatoryBean 클래스 내부의

resourceMap이 null로 리턴되어서 인가가 제대로 작동되지않는것이 문제인것같은데 해결방법을 몰라서 질문 올렸습니다.

답변 3

0

정수원님의 프로필 이미지
정수원
지식공유자

음.. 확실히는 모르겠습니다.

다만 저는 postgresql 로 테스트 하긴 했습니다.

혹시 모르니 postgresql 로 변경해서 다시 시도해 보시기 바랍니다.

0

공룡님의 프로필 이미지
공룡
질문자

방금 해보았으나 저는 localhost:8080/admin으로 들어갔을 때 그냥 들어가집니다..

또한 그냥 localhost:8080으로 접속했을대 login창으로 가지않고 로그인 해야만 갈수있는 Home 으로 다이렉트로 가고 있습니다.

저는 h2 DB를 이용하고있는데 이게 혹시 h2 DB를 사용하는것과 관련이 있는건가요?

0

정수원님의 프로필 이미지
정수원
지식공유자

제가 하니까 정상적으로 동작하고 있는 것으로 확인됩니다.

UrlResourceMapFatoryBean 에서 resourceMap 이 최초에는 null 이기 때문에 securityResourceService.getResourceList() 에서 가지고 오고 있습니다.

그리고 관리자 사이트로 이동하면 로그인 페이지가 뜨고 admin 계정으로 로그인하면 관리자 페이지로 접속하고 있습니다.

인증 및 인가 기능이 정상작동하는 것 같습니다.

다시 한번 살펴 보시기 바랍니다.

공룡님의 프로필 이미지

작성한 질문수

질문하기