Spring Security 로그인 시 접근 제어 문의
- 작성자 :
- S***k
- 작성일 :
- 2021-05-21 17:06:49
- 조회수 :
- 5,211
- 구분 :
- 개발환경 / 3.8
- 진행상태 :
- 완료
Q
안녕하세요. 전자정부프레임워크 3.8 에서 제공하는 공통 컴포넌트 사용 도중 궁금한 점이 생겨 글을 남깁니다.
현재 Spring Security 간소화를 통해 로그인을 처리하고 있습니다.
이렇게 로그인을 하게 되면 DB 상에 부여된 권한과 그 권한에 부여된 롤을 바탕으로 URL 이나 METHOD 별 접근 제어가 가능하다고 알고 있습니다.
테스트를 위해 COMTNROLES_HIERARCHY 테이블의 데이터는 생성하지 않았고, COMTNROLEINFO 테이블에는 기본 DML 에서 모든접근제한에 해당하는 데이터만 입력 하였습니다.
그 이후 해당 롤은 모든 권한에 미 등록 상태 입니다.
지금까지 묻고답하기 내용을 검색해본 결과, COMTNROLEINFO 테이블에 등록된 롤 패턴에 해당하는 URL 은 접근이 제한되고, 제한을 풀기 위해서는 권한에 롤을 부여하면 된다 입니다.
그런데, 로그인 후 메인 화면뿐 아니라 뒤에 기타 다른 페이지도 모두 호출이 되고 있습니다.
제가 혹시 뭔가 잘못 이해하고 있는것이 있는지, 혹은 설정을 빠트린 것이 있는지 잘 모르겠어서 글을 남겨 봅니다.
참고로 Spring Security 간소화 설정 당시에는 기본적으로 제공해주는 스크립트를 활용하여 롤을 생성, 권한에 부여 하였고, 테스트 하고자 하는 계정의 권한을
ROLE_ADMIN 의 하위 권한으로 설정하여 정상 동작하는 것을 확인 하였습니다.
그리고 한가지 더 문의 드릴 내용이 있는데요
현재 테스트 진행중인 서버가 WildFly 18 과 톰캣 8.5 두 개로 테스트 진행중입니다.
톰캣으로 서버 구동 후 context-path 로 접근하게 되면
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
해당 오류가 발생하게 됩니다.
WildFly 18 서버 구동시에는 해당 오류가 발생하지 않습니다.
혹시 Spring Security 관련하여 후속작업이 필요한 것인지, 설정의 문제인지 잘 모르겠어서요....
답변 부탁 드리겠습니다.
현재 Spring Security 간소화를 통해 로그인을 처리하고 있습니다.
이렇게 로그인을 하게 되면 DB 상에 부여된 권한과 그 권한에 부여된 롤을 바탕으로 URL 이나 METHOD 별 접근 제어가 가능하다고 알고 있습니다.
테스트를 위해 COMTNROLES_HIERARCHY 테이블의 데이터는 생성하지 않았고, COMTNROLEINFO 테이블에는 기본 DML 에서 모든접근제한에 해당하는 데이터만 입력 하였습니다.
그 이후 해당 롤은 모든 권한에 미 등록 상태 입니다.
지금까지 묻고답하기 내용을 검색해본 결과, COMTNROLEINFO 테이블에 등록된 롤 패턴에 해당하는 URL 은 접근이 제한되고, 제한을 풀기 위해서는 권한에 롤을 부여하면 된다 입니다.
그런데, 로그인 후 메인 화면뿐 아니라 뒤에 기타 다른 페이지도 모두 호출이 되고 있습니다.
제가 혹시 뭔가 잘못 이해하고 있는것이 있는지, 혹은 설정을 빠트린 것이 있는지 잘 모르겠어서 글을 남겨 봅니다.
참고로 Spring Security 간소화 설정 당시에는 기본적으로 제공해주는 스크립트를 활용하여 롤을 생성, 권한에 부여 하였고, 테스트 하고자 하는 계정의 권한을
ROLE_ADMIN 의 하위 권한으로 설정하여 정상 동작하는 것을 확인 하였습니다.
그리고 한가지 더 문의 드릴 내용이 있는데요
현재 테스트 진행중인 서버가 WildFly 18 과 톰캣 8.5 두 개로 테스트 진행중입니다.
톰캣으로 서버 구동 후 context-path 로 접근하게 되면
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
해당 오류가 발생하게 됩니다.
WildFly 18 서버 구동시에는 해당 오류가 발생하지 않습니다.
혹시 Spring Security 관련하여 후속작업이 필요한 것인지, 설정의 문제인지 잘 모르겠어서요....
답변 부탁 드리겠습니다.
환경정보
-
- OS 정보 : Windows10
- 표준프레임워크 버전 : 3.8
- JDK(JRE) 정보 : 1.8
- WAS 정보 : Tomcat 8.5
- DB 정보 : Tibero5
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
기재하신 내용만으로 모든 내용을 알수는 없으나
"70. 권한그룹관리"에서 권한그룹을 지정하신 것으로 보이고
"모든 사용자"는 기본 배포될때 없는것으로
별도 추가하신것으로 예상됩니다.
해당 계정이 ROLE_ANONYMOUS를 사용하거나
모든 접근이 허용된 ROLE을 사용하시는게 아닌가 예상됩니다.
다음 설정파일에
/src/main/resources/egovframework/egovProps/globals.properties
다음과 같이 설정되어 있는지도 확인이 필요해 보입니다.
Globals.Auth = security
다음과 같은 메시지와 관련해서는
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
다음과 같은 자료가 확인이 됩니다.
https://stackoverflow.com/questions/48453980/spring-5-0-3-requestrejectedexception-the-request-was-rejected-because-the-url
아마도 URL에 //가 2번 지정되어 있는지 확인이 필요해 보입니다.
감사합니다.
표준프레임워크센터 입니다.
기재하신 내용만으로 모든 내용을 알수는 없으나
"70. 권한그룹관리"에서 권한그룹을 지정하신 것으로 보이고
"모든 사용자"는 기본 배포될때 없는것으로
별도 추가하신것으로 예상됩니다.
해당 계정이 ROLE_ANONYMOUS를 사용하거나
모든 접근이 허용된 ROLE을 사용하시는게 아닌가 예상됩니다.
다음 설정파일에
/src/main/resources/egovframework/egovProps/globals.properties
다음과 같이 설정되어 있는지도 확인이 필요해 보입니다.
Globals.Auth = security
다음과 같은 메시지와 관련해서는
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
다음과 같은 자료가 확인이 됩니다.
https://stackoverflow.com/questions/48453980/spring-5-0-3-requestrejectedexception-the-request-was-rejected-because-the-url
아마도 URL에 //가 2번 지정되어 있는지 확인이 필요해 보입니다.
감사합니다.