로그인한 상태에서 회원 권한을 변경했을 때 시큐리티 콘텍스트가 가지고 있는 권한 정보도 변경하는 방법에 대한 문의입니다.
- 작성자 :
- 이*
- 작성일 :
- 2022-07-20 16:04:34
- 조회수 :
- 1,025
- 구분 :
- 개발환경 / 3.6
- 진행상태 :
- 완료
Q
안녕하세요, DB에 저장되어 있는 회원 및 권한 데이터와 전자정부표준 프레임워크 기본 시큐리티를 구현하여 인증 로직을 처리하던 중 문의사항이 있어 글을 작성해 봅니다.
하고자 하는 것은 'ROLE_USER_MEMBER' 권한을 가진 '일반회원'이 로그인 한 후
'회원정보수정' 페이지를 통해 'ROLE_ENTERPRISE' 권한으로 변경이 되었을 때 시큐리티 콘텍스트가 가지고 있는 ROLE 정보도 알맞게 변경되게 코드를 수정하고 싶습니다.
이유는 사용자 페이지에서 보여져야하는 메뉴 목록이 'ROLE_USER_MEMBER' 권한과 'ROLE_ENTERPRISE'이 서로 달라야 하기 때문인데요.
(현재 사용자 페이지 모든 메뉴(URL Pattern: /site/menu/**) 접근 시 구현한 Interceptor에서 유저 권한을 확인하여 접근 가능여부를 판단하고 있습니다. )
회원정보수정을 통해 권한이 변경되고 나서 로그아웃 -> 로그인을 하면 정상적으로 변경된 권한으로 서비스 이용이 가능하지만,
로그아웃을 하지않는 다면 변경 되기 전 권한으로 남아 있어 원치 않는 동작이 일어나고 있는 상황입니다.
이런 경우 어떤 부분을 확인해 보아야 하는지 문의드립니다.
하고자 하는 것은 'ROLE_USER_MEMBER' 권한을 가진 '일반회원'이 로그인 한 후
'회원정보수정' 페이지를 통해 'ROLE_ENTERPRISE' 권한으로 변경이 되었을 때 시큐리티 콘텍스트가 가지고 있는 ROLE 정보도 알맞게 변경되게 코드를 수정하고 싶습니다.
이유는 사용자 페이지에서 보여져야하는 메뉴 목록이 'ROLE_USER_MEMBER' 권한과 'ROLE_ENTERPRISE'이 서로 달라야 하기 때문인데요.
(현재 사용자 페이지 모든 메뉴(URL Pattern: /site/menu/**) 접근 시 구현한 Interceptor에서 유저 권한을 확인하여 접근 가능여부를 판단하고 있습니다. )
회원정보수정을 통해 권한이 변경되고 나서 로그아웃 -> 로그인을 하면 정상적으로 변경된 권한으로 서비스 이용이 가능하지만,
로그아웃을 하지않는 다면 변경 되기 전 권한으로 남아 있어 원치 않는 동작이 일어나고 있는 상황입니다.
이런 경우 어떤 부분을 확인해 보아야 하는지 문의드립니다.
환경정보
-
- OS 정보 : Local - MacOS, Dev - CentOS 7
- 표준프레임워크 버전 : 3.6.0
- JDK(JRE) 정보 : OpenJDK 1.8
- WAS 정보 : Tomcat 7
- DB 정보 : MariaDB 10.4.17
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
서버 재기동 없이 권한 설정을 적용하는 방법은 해당 클래스를 @Autowired나 @Resource로 의존주입받아 reload() 메서드를 적용하시면 됩니다.
이 방법은 현재 설정이 Session 모드일때와 Security 모드일 때 방법이 다소 차이가 있으므로 상세 사항은 다음 링크를 통해 확인 바랍니다.
https://www.egovframe.go.kr/home/faqinfo/faqinfoRead.do?menuNo=68&faqId=FAQ_0000000000000801
또한 권한 인증방식에 대해서는
/src/main/resources/egovframework/egovProps/globals.properties의
Globals.Auth 부분을 참고하여 보시길 바랍니다.
감사합니다.
표준프레임워크센터 입니다.
서버 재기동 없이 권한 설정을 적용하는 방법은 해당 클래스를 @Autowired나 @Resource로 의존주입받아 reload() 메서드를 적용하시면 됩니다.
이 방법은 현재 설정이 Session 모드일때와 Security 모드일 때 방법이 다소 차이가 있으므로 상세 사항은 다음 링크를 통해 확인 바랍니다.
https://www.egovframe.go.kr/home/faqinfo/faqinfoRead.do?menuNo=68&faqId=FAQ_0000000000000801
또한 권한 인증방식에 대해서는
/src/main/resources/egovframework/egovProps/globals.properties의
Globals.Auth 부분을 참고하여 보시길 바랍니다.
감사합니다.