728x90
반응형
애플리케이션을 만들기 위해서는 보통 인증/인가 등의 보안이 필요하다.
스프링 시큐리티는 스프링 기반의 애플리케이션을 위한 보안 솔루션을 제공한다.
인증
해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인하는 것.
커뮤니티에서 게시판의 글을 보는 것은 로그인을 하지 않아도 되지만,
댓글을 작성하려면 로그인을 해야한다.
댓글을 달기 위해서는 로그인이라는 인증 절차를 거쳐야 한다.
인가
인증 과정 이후에 일어난다.
커뮤니티를 관리하는 관리자 페이지에 접근하는 URL을 입력했을 때
해당 URL은 커뮤니티의 관리자만 접근할 수 있어야 한다.
이때 접근하는 사용자가 해당 URL에 대해서 인가된 회원인지를 검사하는 것.
의존성 주입
//security dependency
<dependency>
<groupId>org.springframework.boot</gtoupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
스프링 시큐리티 설정
//SecurityConfig
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
//WebSecurityConfigurerAdapter를 상속받는 클래스에 @EnableWebSecurity 선언하면
//SpringSecurityFilterChain이 자동으로 포함됌.
@Override
protected void configure(HttpSecurity http) throws Exception {
//http 요청에 대한 보안을 설정한다.
//페이지 권한 설정, 로그인 페이지 설정, 로그아웃 메소드 등에 대한 설정을 작성한다.
}
@Bean
public PasswordEncoder passwordEncoder() {
//비밀번호를 데이터베이스에 그대로 저장했을 경우, 데이터베이스가 해킹당하면 고객의 회원 정보가
//그대로 노출된다. 이를 해결하기 위해 BCryptPasswordEncoder의 해시 함수를 이용하여 비밀번호를
//암호화하여 저장한다.
return new BCryptPasswordEncoder();
}
}728x90
반응형
'Spring boot' 카테고리의 다른 글
| [ Spring ] @Bean (1) | 2024.01.11 |
|---|---|
| 회원 가입 기능 구현하기 (0) | 2023.09.12 |
| Thymeleaf(타임리프) (0) | 2023.09.04 |
| Spring DATA JPA (2) | 2023.09.02 |
| 쿼리 메소드 (0) | 2023.09.02 |