spring security
spring의 프레임워크 중 하나로 spring기반 애플리케이션의 보안을 담당하는 역할을 하고, filter를 기반으로 인증(Authentication)과 인가(Authorization)을 처리한다.
이름에서도 알 수 있듯이 많은 보안 관련 옵션을 제공하여 보안 관련 로직에 대한 개발자의 수고를 덜어준다.
- 인증(Authentication) : 사용자의 신원을 확인하는 행위
- 인가(Authorization) : 사용자의 권한을 확인하는 행위
쉽게 말해서 인증은 로그인과 같이 본인이 누구인지 확인하는 절차이고,
인가는 로그인 후 할 수 있는 행동의 범위라고 생각하면 된다.
spring security를 사용하려면 프레임워크를 추가해줘야한다.build.gradle에 아래의 정보를 입력하여 spring security를 사용하겠다고 선언한다.
implementation 'org.springframework.boot:spring-boot-starter-security'
선언 후에는 꼭 쥐모양 옆에 새로고침을 눌러서 spring이 security를 활성화하도록 작동시켜줘야한다.
활성화가 되고 나서는 security 패키지를 만들어서 보안 관련한 객체들을 따로 관리해 주는 것이 좋다.
@Configuration
@EnableWebSecurity // 스프링 Security 지원을 가능하게 함
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// 어떤 요청이든 '인증'
.anyRequest().authenticated()
.and()
// 로그인 기능 허용
.formLogin()
.defaultSuccessUrl("/")
.permitAll()
.and()
// 로그아웃 기능 허용
.logout()
.permitAll();
}
}
WebSecurityConfig 클래스를 만들어 위와 같이 입력만하면 spring security가 만들어 놓은 아주 기본적인 로그인을 사용할 수 있게 된다.
localhost:8080/login url로 접속을 해보면 우리가 따로 만들지 않았지만 spring security에 의해 만들어져 있는 로그인 화면을 볼 수가 있다.
이때 로그인을 할 수 있지만 우리가 아직 ID나 password를 설정해 놓지 않았기 때문에 spring security에서 제공하는 것들을 사용해야 한다. ID는 user이고 비밀번호는 spring을 구동시킬 때마다 바뀌기 때문에 spring의 로그창을 보면 중간쯤에 랜덤하게 password라고 나오는데 그것을 입력하면 로그인이 된다. 이러면 로그인 기능의 가장 기초공사의 첫 삽은 떴다고 볼 수 있다.
'TIL' 카테고리의 다른 글
37_Step : spring security로 로그인 기능 만들기(3) (0) | 2022.09.05 |
---|---|
36_Step : spring security로 로그인 기능 만들기(2) (0) | 2022.09.01 |
34_Step : spring과 spring boot (0) | 2022.08.25 |
33_Step : loC 컨테이너 제대로 사용하기(@bean, @component) (0) | 2022.08.11 |
32_Step : 404 Error (0) | 2022.08.10 |