Skip to content

사용자 인증 및 권한 관리 시스템 구현

Zayden(이재성) requested to merge feat/user-auth into main

개요

Spring Security를 활용한 사용자 인증 및 권한 관리 시스템을 구현했습니다.
이 구현은 데이터베이스 기반의 사용자 정보 저장 및 관리 기능을 제공합니다.

주요 변경 사항

  1. UserConfiguration 클래스 추가

    • 비밀번호 암호화를 위한 BCryptPasswordEncoder Bean 설정 (강도 13)
    • 데이터베이스 기반 사용자 관리를 위한 JdbcUserDetailsManager Bean 설정
    • 기본 사용자 계정 생성 (USER 및 ADMIN 권한 부여)
  2. 엔티티 클래스 구현

    • User 엔티티: 사용자 정보 관리, Spring Security의 UserDetails 인터페이스 구현
    • Authority 엔티티: 사용자 권한 정보 관리
    • AuthorityId 복합 키 클래스: 사용자-권한 관계의 고유 식별자
  3. 데이터 스키마

    • users 테이블: 사용자 정보 저장
    • authorities 테이블: 사용자 권한 정보 저장 (인덱스 설정)
    • 외래 키 제약 조건을 통한 데이터 무결성 보장

기술적 세부 사항

  • 비밀번호 보안: BCrypt 알고리즘을 사용한 안전한 비밀번호 해싱
  • JPA 매핑: Entity, OneToMany 관계, 복합 키 클래스 구현
  • Spring Security 통합: UserDetails 및 GrantedAuthority 인터페이스 구현
  • 데이터베이스 최적화: 권한 검색을 위한 인덱스 설정

테스트 방법

  1. 애플리케이션 실행 후 localhost:8080 접속해 다음 기본 계정으로 로그인 테스트:
    • 일반 사용자: ID user, 비밀번호 user123
    • 관리자: ID admin, 비밀번호 admin123

관련 작업

  • 회원가입, 비밀번호 재설정 등의 추가 기능 구현 예정

해당 작업 관련 문서

Edited by Zayden(이재성)

Merge request reports