role 값을 int형으로 주려했으나
ROLE_USER 이런식으로 시큐리티 내부적으로 정해진 값이 있는 듯 하다.
앞에 ROLE_만 붙여주면 되는 줄 알고
ROLE_1
ROLE_2
이런식으로 구성을 했더니
로그인시 username값과 해쉬화된 비밀번호도 다 찾는데 principal 세션이 생성 안 되었다.
그래서 이 이유를 찾느라 이것저것 다른 오류 해결하며 공부하다보니 이틀이나 걸려버렸다.
그래서
role 타입은 RoleType에
일단 26행과 같이 회원가입시 Role값 들어가게 설정했다.
그러고 실행했더니
principal 세션이 활성화된거 같긴한데
DB에 role값이 이상해서 그런지 로그아웃이 되지도 않고 오류메세지가 뜬다.
RoelType을 설정하니 변화가 있긴한데 그래도 제대로 작동하지 않는다.
DB갈아 엎고 다시해봐도 안 된다.
알고보니 JSP파일에 이상하게 써둔 코드가 있어서 문제를 일으켰고 지우니 principal 오작동 문제는 해결 됐는데
시큐리티 로그인 문제는 해결되지 않았다.
참고싸이트
c. Role과 권한(Privilege) 설계 예시
이전의 플젝 경험을 바탕으로, Role과 권한 관계를 어떻게 설계할 수 있는지 예를 들어 확인해보자.
Role가 권한(Privilege)은 시스템 전반에 영향을 끼치는 high-level 범위에서 설계가 되어야 한다. 사업부 체크와 같은 비지니스별 권한 체크는 여기서 제외하며, 추후에 구체적으로 다루도록 하겠다.
“경영지표를 확인하는 대쉬보드 시스템”
실적을 조회하는 대쉬보드 형태의 시스템이었고, Role은 일반 사용자와 사용자 관리를 할 수 있는 어드민 사용자로 구분이 되었다.
- ROLE_USER (일반 사용자)
- READ_AUTHORITY 만 가짐
- ROLE_ADMIN (관리자)
- WRITE_AUTHORITY : 사용자 관리, 메뉴 관리(등록, 수정, 삭제)
- READ_AUTHORITY
“프로젝트의 공정, 일감을 관리하는 시스템”
누구나 사용을 할 수 있지만 회원가입을 한 최초 사용자는 “임시 사용자”로써 프로젝트 공지사항, 메일, 일정등 가장 기본적인 커뮤니케이션 기능만 사용할 수 있다.
프로젝트 관리자가 승인을 해주면, “일반 사용자”로 역할이 변경되면서 프로젝트에서 상세한 공정, 일감, 요구사항 관리들의 기능을 수행할 수 있다.
프로젝트의 어드민 관리 기능 (예. 메뉴, 사용자, 권한, 캘린더, 회의실)은 “관리자” 역할자만 변경이 가능했다.
- ROLE_TEMPORARY_USER (임시 사용자)
- 최초 회원가입하면 임시 사용자로써, 메일, 일정 관리등 커뮤니케이션 관련된 기능만 기본적으로 사용할 수 있음
- COMMUNICATION_AUTHORITY : 메일 관리, 일정 관리
- ROLE_USER (일반 사용자)
- 관리자가 승인을 해주면, 일반 사용자로 변경이 되고 COMMUNICATION_AUTHORITY 외에 추가적으로 공정, 일감 관리 기능까지 수행 가능
- COMMUNICATION_AUTHORITY, WORK_AUTHORITY (공정 관리), TASK_AUTHORITY (일감 관리)
- ROLE_ADMIN (관리자)
- 관리자의 경우, 프로젝트가 생성되면 프로젝트 관리자 계정이 자동으로 생성됨
- 프로젝트 관리자 계정은 메뉴, 프로젝트 사용자, 권한 관리등 어드민성 기능을 수행할 수 있다.
- 기본적으로는 일반 사용자의 권한을 사용할 수 있으며, 추가적으로 설정 관리까지 수행 가능하다.
- CONFIG_AUTHORITY (설정 관리 - 메뉴, 사용자 관리 등등)
https://gregor77.github.io/2021/04/21/spring-security-02/
Spring Security - 2. Role과 권한(Privilege)
Role과 권한을 조회하는 UserDetailsService이번 시간에는 SecurityContext에 보관되는 Authentication, Role과 권한(Authority 또는 Privilege)에 대해 알아보겠다.경험을 바탕으로 Role과 권한의 차이는 무엇이고, 실
gregor77.github.io
'Spring (boot) 오류 해결' 카테고리의 다른 글
principal에 anonymousUser 값으로 뻘 짓 (0) | 2022.02.02 |
---|---|
SPRING.JPA.OPEN-IN-VIEW 로그 오류 해결하기 (0) | 2022.02.02 |
[DOM] Found 2 elements with non-unique id #userId: (0) | 2022.02.01 |
"status": 404, "error": "Not Found", "path": (0) | 2022.01.31 |
[springboot] Error creating bean with name 'entityManagerFactory' defined in class path resource (0) | 2022.01.28 |
댓글