본문 바로가기
728x90

Programming/Spring Security5

[Spring Boot] Spring Security (5) - 역할(hasRole)과 권한(hasAuthority)의 차이는 무엇일까? [Spring Boot] Spring Security (5) - 역할(Role)과 권한(Authority)의 차이는 무엇일까? 흔히 Spring Security에서 제공하는 역할(Role)과 권한(Authority)을 혼동하는 사용하는 경우가 많은데 비슷하면서도 다르다. 예를 들어 A계정과 B계정은 둘다 시스템관리자로서 SYSTEM 역할을 가지고 있지만 원칙상 A 계정은 게시판의 글을 등록할 수만 있으며, B 계정은 등록된 글을 삭제만 할 수 있다고 했을 때 역할은 같지만 권한은 다르게 설정해야 할 것이다. 소규모 프로젝트에서는 둘 중 한가지로 사용해서도 충분히 접근제어를 할 수 있지만 역할과 권한을 분리하여 명시함으로써 유지보수성도 높아질 것이다. 자유롭게 혼용하여 사용하는 것이 Spirng Secur.. 2022. 8. 22.
[Spring Boot] Spring Security (4) - 역할 별 페이지 접근제어 [Spring Boot] Spring Security (4) - 역할 별 페이지 접근제어 개발환경 Eclipse IDE 2022-06 Spring Boot 2.7.2 Gradle 7.0 Lombok PostgreSQL 지난 시간에 이어서 이번에는 사용자가 가지고 있는 역할을 확인하여 페이지 별 접근제어를 해보자. sysetm 계정은 SYSTEM 역할을 가지고 있어 모든 페이지에 접근이 가능하고 user 계정은 USER 역할과 BOARD 권한을 가지고 있어 SYSTEM 역할을 가져야만 접근할 수 있는 페이지에는 접근이 불가하다. 이때 오류페이지로 사용자에게 안내해줄 수 있도록 해보자. SecurityConfiguration.java package com.example.security; import org... 2022. 8. 19.
[Spring Boot] Spring Security (3) - 로그인 시 사용자 역할 조회 및 부여 [Spring Boot] Spring Security (3) - 로그인 시 사용자 역할 조회 및 부여 개발환경 Eclipse IDE 2022-06 Spring Boot 2.7.2 Gradle 7.0 Lombok PostgreSQL 지난 시간에 이어서 이번에는 로그인 시 사용자가 가지고 있는 역할을 데이터베이스에서 조회하여 부여하고 이를 확인하는 페이지를 만들어보려고 한다. 추가/수정된 파일의 소스코드만 업로드 하니 지난 시간에 쓴 글을 참조하여 따라하길 바란다. 우선 테이블과 기초데이터를 등록하자. -- TB_USER CREATE TABLE public.tb_user ( id varchar(255) NOT NULL, name varchar(255) NULL, "password" varchar(255) N.. 2022. 8. 17.
[Spring Boot] Spring Security (2) - 회원가입 및 로그인을 위한 데이터베이스 연동 Spring Security (2) - 회원가입 및 로그인을 위한 데이터베이스 연동 개발환경 Eclipse IDE 2022-06 Spring Boot 2.7.2 Gradle 7.0 Lombok PostgreSQL 지난 시간에 이어서 이번에는 사용자 정보를 메모리에서 가져오는 것 대신에 데이터베이스에서 가져와 로그인을 해보자. 데이터베이스에서 로그인을 하려면 DB구축, JPA 설정 등 이 선행되어야 한다. 구축되어 있는 데이터베이스가 없다거나 JPA 설정에 대하여 궁금하다면 필자가 이전에 쓴 글을 참고하면 좋을 것 같다. Windows에 PostgreSQL14 설치하기 Windows에 PostgreSQL14 설치하기 개발환경을 구축하기 위해 Windows에 PostgreSQL을 설치하려고 한다. 공식 사이.. 2022. 8. 16.
[Spring Boot] Spring Security (1) - 기본 프로젝트 생성 [Spring Boot] Spring Security (1) - 기본 프로젝트 생성 개발환경 Eclipse IDE 2022-06 Spring Boot 2.7.2 Gradle 7.0 Lombok PostgreSQL Spring Security는 Spring Boot의 하위 프레임 워크이며 Java 어플리케이션에 인증과 권한 부여를 제공하는데 중점을 둔 프레임워크이다. Spring에서는 사실상 Spring Security를 표준으로 하여 보안기능을 제공하며 필터기반으로 처리한다. 사용자의 ID와 PASSWORD를 입력받아 인증을 하고 역할 및 권한을 부여할 수 있으며 CSRF(Cross Stie Script Forgery) 같은 취약점에도 대응이 가능하다. 우선 샘플 프로젝트를 생성하여 얕은 지식과 기능을 .. 2022. 7. 21.
728x90