사용자 인증 및 권한 관리 시스템 구현
개요
Spring Security를 활용한 사용자 인증 및 권한 관리 시스템을 구현했습니다.
이 구현은 데이터베이스 기반의 사용자 정보 저장 및 관리 기능을 제공합니다.
주요 변경 사항
-
UserConfiguration
클래스 추가- 비밀번호 암호화를 위한 BCryptPasswordEncoder Bean 설정 (강도 13)
- 데이터베이스 기반 사용자 관리를 위한 JdbcUserDetailsManager Bean 설정
- 기본 사용자 계정 생성 (USER 및 ADMIN 권한 부여)
-
엔티티 클래스 구현
-
User
엔티티: 사용자 정보 관리, Spring Security의 UserDetails 인터페이스 구현 -
Authority
엔티티: 사용자 권한 정보 관리 -
AuthorityId
복합 키 클래스: 사용자-권한 관계의 고유 식별자
-
-
데이터 스키마
-
users
테이블: 사용자 정보 저장 -
authorities
테이블: 사용자 권한 정보 저장 (인덱스 설정) - 외래 키 제약 조건을 통한 데이터 무결성 보장
-
기술적 세부 사항
- 비밀번호 보안: BCrypt 알고리즘을 사용한 안전한 비밀번호 해싱
- JPA 매핑: Entity, OneToMany 관계, 복합 키 클래스 구현
- Spring Security 통합: UserDetails 및 GrantedAuthority 인터페이스 구현
- 데이터베이스 최적화: 권한 검색을 위한 인덱스 설정
테스트 방법
- 애플리케이션 실행 후 localhost:8080 접속해 다음 기본 계정으로 로그인 테스트:
- 일반 사용자: ID
user
, 비밀번호user123
- 관리자: ID
admin
, 비밀번호admin123
- 일반 사용자: ID
관련 작업
- 회원가입, 비밀번호 재설정 등의 추가 기능 구현 예정
해당 작업 관련 문서
Edited by Zayden(이재성)