일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- iterator
- 데비안
- 자료구조와 함께 배우는 알고리즘 입문
- 코드로배우는스프링웹프로젝트
- 리눅스
- 스프링 시큐리티
- 네트워크 설정
- 구멍가게코딩단
- resttemplate
- 이터레이터
- 자료구조와함께배우는알고리즘입문
- 페이징
- 깃
- 목록처리
- 스프링부트핵심가이드
- merge
- /etc/network/interfaces
- 처음 만나는 AI수학 with Python
- 코드로배우는스프링부트웹프로젝트
- 처음 만나는 AI 수학 with Python
- 티스토리 쿠키 삭제
- 자바편
- 서버설정
- 선형대수
- 친절한SQL튜닝
- Kernighan의 C언어 프로그래밍
- GIT
- 알파회계
- network configuration
- 병합
- Today
- Total
bright jazz music
[Spring security] 1.2 사용자 정의 보안 기능 구현 본문
WebSecurityConfigurerAdapter
: 스프링 시큐리티의 웹 보안 기능을 초기화 하고 설정하는 핵심 클래스이다.
의존성 추가하고 스프링 시큐리티가 초기화 보안 기능을 활성화 하고 보안 기능을 설정하는 클래스가 이 클래스이다.
여기서 HttpSecurity 클래스를 생성하고, 이 클래스가 세부적인 보안 설정을 가능케 하는 API를 제공한다.
SecurityConfig 클래스 생성 - WebSecurityConfigurerAdapter 상속 - 내부에서 HttpSecurity 클래스 생성
스프링 시큐리티가 추가된 상태에서 서버를 기동하면 WebSecurityConfigurerAdapter 클래스가 작동한다.
HttpSecurity 객체를 생성하고 그 것을 사용해서 대략 11개 정도의 API들을 호출하면서 설정 초기화 작업을 한다.
이 API들은 설정 클래스로 이동하는 것인다. 예를 들어 exceptionHandling()은 ExceptionHandlingConfigurer 예외 처리 설정 클래스로 이동한다. 여기서는 ExceptionTranslation과 같은 필터를 생성한다.
즉 각각의 API가 설정 클래스로 이동하고 그에 해당하는 필터를 생성하고 있다고 보면 된다.
여기서는 configure메서드를 호출하고 그안에서 추가적인 설정을 한다.
anyRequest: 어떠한 요청에도 인증을 받도록 API를 설정한다.
.httpBasic() 이 구문은 사용자가 http방식으로 요청할 때 보안검사를 한다는 것이다. 인증방식은 formLogin방식과 httpBasic()방식 두 개를 제공하겠다는 것이다.
이러한 설정을 덕분에 우리가 "/"로 접근하더라도 인증을 받지 않으면 다시 폼로그인 방식으로 로그인하도록 로그인 페이지가 제공되는 것이다. 바로 여기서 웹 보안 기능이 활성화 되는 것이다.
따라서 우리는 configure()메소드를 오버라이드 하여 이 안에서 인증과 인가를 설정하면 우리의 설정이 적용되는 것이다.
자 이제 만들자.
SecurityConfig.java
package io.security.basicsecurity;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration //설정파일이므로
@EnableWebSecurity //여러 클래스들을 임포트 해서 실행시키는 어노테이션이다. 그래야 웹 보안이 활성화 된다.
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests() //요청에 대한 보안검사 시작
.anyRequest().authenticated(); //어떤 요청에도 인가 받도록 설정
//이제 인증방식
http
.formLogin();
}
}
콘솔에 발생하는 랜덤 비밀번호를 로그인 비밀번호로 사용할 수 없으므로 application.properties 파일에 계정을 설정해 준다.
#application.properties 파일에 아래와 같이 적어주기
#시큐리티 로그인 계정 설정
spring.security.user.name=user
spring.security.user.password=1111
'Framework > Spring Security' 카테고리의 다른 글
스프링 시큐리티 설정 (1) | 2022.09.13 |
---|---|
[Spring security] 1.5 Logout 처리, LogoutFilter (0) | 2022.09.11 |
[Spring security] 1.4 Form Login 인증 필터 : UsernamePasswordAuthenticationFilter (0) | 2022.09.09 |
[Spring security] 1.3 Form Login 인증 (0) | 2022.09.09 |
[Spring security] 1.1 프로젝트 구성과 의존성 추가 (0) | 2022.09.08 |