Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jpa회원가입
- 복합키
- 인텔리제이
- JPA주의사항
- uncheck Exception
- JPA
- 스프링 부트 공식 문서
- REST API 규칙
- Error creating bean with name
- git
- Q 클래스
- 1차캐시
- Unsatisfied dependency
- github
- @IdClass
- jpa에러
- JoinColumn
- 스프링 부트 기능
- json
- REST란
- spring서버
- 스프링부트오류
- jwt메서드
- 최종 프로젝트
- json gson 차이
- Spring Spring boot 차이
- queryDSL
- 빈생성안됨
- ERD 작성
- Filter
Archives
- Today
- Total
Everyday Dev System
Spring Secutiry 본문
Spring Security가 Filter 기반으로 동작을 함.
Security가 Session 방식으로 동작을 하는 것을 알아야 함.
그러므로 이전 강의에 만들어놓은 Filter 클래스의 @Component 코드 주석 처리
Filter 관련 참조 글 :
2023.06.20 - [분류 전체보기] - Filter
전체 코드 :
package com.sparta.springauth.config;
import org.springframework.boot.autoconfigure.security.servlet.PathRequest;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity // Spring Security 지원을 가능하게 함
public class WebSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
// CSRF 설정
http.csrf((csrf) -> csrf.disable());
http.authorizeHttpRequests((authorizeHttpRequests) ->
authorizeHttpRequests
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() // resources 접근 허용 설정
.anyRequest().authenticated() // 그 외 모든 요청 인증처리
);
// 로그인 사용
http.formLogin(Customizer.withDefaults());
return http.build();
}
}
코드 분석:
@Configuration
@EnableWebSecurity // Spring Security 지원을 가능하게 함
public class WebSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { }
}
@EnableWebSecurity
해당 어노테이션을 기재해야 Spring Security 활용 가능.
@Configuration
클래스 내에 메서드를 Bean으로 수동 등록할 때 활용.
메서드에 @Bean 어노테이션을 기재해서 해당 메서드를 Bean으로 수동 등록함.
해당 메서드에서 반환하여 반환된 객체가 Bean으로 등록이 된다.
위와 같은 예시는 SecurityFilterChain 타입의 Bean이 등록된다.
http.authorizeHttpRequests((authorizeHttpRequests) ->
authorizeHttpRequests
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
// resources 접근 허용 설정
.requestMatchers("/api/user/**").permitAll()
.anyRequest().authenticated() // 그 외 모든 요청 인증처리
);
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
[resources]로 들어오는 접근들에 대해서 permitAll한다. 허가하므로 인증 처리를 진행하지 않는다.
.requestMatchers("/api/user/**").permitAll()
/api/user/로 시작하는 어떤 요청들 모두 인증처리를 하지 않겠다.
.anyRequest().authenticated()
그외 모든 요청은 인증 처리를 한다.
'내배캠 주요 학습 > Spring 숙련' 카테고리의 다른 글
Validation, 회원가입 데이터에 적용하기 (0) | 2023.06.20 |
---|---|
중요한 Validation, 예외처리 (0) | 2023.06.20 |
Spring 에서 Filter란? (0) | 2023.06.20 |
로그인 구현하기 (0) | 2023.06.19 |
회원가입 구현하기 (0) | 2023.06.19 |