no image
[Spring Security] 05 - BCrypt 암호화 메서드
Security BCrypt Spring Security는 사용자 인증(로그인)시 비밀번호에 대해 단방향 해시 암호화를 진행하여 저장되어 있는 비밀번호와 대조한다. 따라서 회원가입 시 비밀번호 항목에 대해서 암호화를 진행해야한다. Spring Security는 암호화를 위해 BCrypt Password Encoder를 제공하고 권장한다. 따라서 해당 클래스를 return하는 메소드를 만들어 @Bean으로 등록하여 사용하면 된다. package com.gdy.springsecurity.Config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; impo..
2024.02.21
no image
[Spring Security] 04 - 커스텀 로그인
Config 설정 후 로그인 페이지 Spring Security Config 클래스 설정 후 특정 경로에 대한 접근 권한이 없는 경우 자동으로 로그인 페이지로 리다이렉팅 되지 않고 오류 페이지가 발생한다. 위 문제를 해결하기 위해 Config 클래스를 설정하면 로그인 페이지 설정도 진행해야 한다. Security Config 로그인 페이지 설정 및 로그인 경로 package com.gdy.springsecurity.Config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config...
2024.02.21
no image
[Spring Security] 03 - Security Config 클래스
인가 특정한 경로에 요청이 오면 Controller 클래스에 도달하기 전 필터에서 Spring Security가 검증을 한다. 해당 경로의 접근은 누구에게 열려 있는지 로그인이 완료된 사용자인지 해당되는 role을 가지고 있는지 Security Configuration 인가 설정을 진행하는 클래스 package com.gdy.springsecurity.Config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity..
2024.02.21
no image
[Spring Security] 02 - 프로젝트 생성
버전 Spring Boot : 3.2.2 Security 6.1.5 Spring Data JPA - MySQL mustache IntelliJ 의존성 Spring Web Lombok Mustache Spring Security Spring Data JPA MySQL Driver
2024.02.19
no image
[Spring Security] 01 - 목표 및 동작 원리
1. Spring Security Spring Security는 스프링 기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임 워크 보안과 관련해서 체계적으로 많은 옵션들을 제공해주기 때문에 개발자의 입장에서는 하나 하나 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. 2. 용어 인증(Authentication) : 해당 사용자가 본인인지 확인하는 절차 인가(Authorization) : 인증된 사용자가 요청한 자원에 접근 가능한지 결정하는 절차 접근 주체(Principal) : 보호받는 Resource에 접근하는 대상 비밀번호(Credential) : Resource에 접근하는 대상의 비밀번호 권한 : 인증된 주체가 애플리케이션으 동작을 수행할 수 있도록 허락되어 있는지 결정 인증 과정을 통해 ..
2024.02.19
[Spring] Spring type - 스프링의 종류
Spring의 종류 Spring Boot 스프링의 개발 환경의 어려움을 보완하고자 만들었다. 환경 설정을 최소화 하고 개발자가 비즈니스 로직에 집줄 할 수 있도록 도와준다. Spring Framework 스프링의 핵심이 되는 DI(의존성 주입), AOP(관점지향 프로그래밍) 기능들을 제공한다. 웹 애플리케이션을 개발할 때는 스프링 MVC를 사용하는 등 여러가지 기능이 있다. Spring Data 데이터 연동을 위한 단일 API를 제공한다. 이 API를 기반으로 JPA, MongoDB, MySQL 이러한 RDBMS나 NoSQL과의 연동을 적은 양의 코드로 처리할 수 있도록 도와준다. Spring Cloud 스프링 클라우드 서비스 레지스트리(Service Registry)와 컨피규레이션 서버(Configur..
2024.02.19