티스토리 뷰
Spring Security에서 `SecurityFilterChain`은 요청에 대한 인증 및 인가를 관리하는 핵심 구성 요소입니다. 이를 설정할 때 다양한 인증 방식을 선택하여 구현할 수 있습니다. 아래는 `SecurityFilterChain`에서 사용할 수 있는 주요 인증 방식들과 그에 대한 설명입니다.
---
### 1. **폼 기반 인증 (Form Login)**
- **설명**: 사용자가 브라우저에서 로그인 페이지를 통해 인증 정보를 입력하는 방식입니다.
- **설정 예시**:
```java
http.formLogin(form -> form
.loginPage("/login") // 사용자 정의 로그인 페이지
.permitAll()
);
```
---
### 2. **HTTP 기본 인증 (HTTP Basic Authentication)**
- **설명**: 브라우저의 기본 팝업을 통해 사용자 이름과 비밀번호를 입력받아 인증하는 간단한 방식입니다. 주로 API를 보호하는 데 사용됩니다.
- **설정 예시**:
```java
http.httpBasic();
```
---
### 3. **OAuth2 로그인 (OAuth2 Login)**
- **설명**: Google, Facebook 등 외부 인증 제공자를 통해 인증을 처리합니다.
- **설정 예시**:
```java
http.oauth2Login(oauth -> oauth
.loginPage("/oauth-login")
);
```
---
### 4. **JWT (JSON Web Token)**
- **설명**: 토큰 기반 인증으로, 클라이언트가 서버로부터 받은 JWT를 요청마다 헤더에 포함해 인증을 수행합니다.
- **설정 예시**:
```java
http.oauth2ResourceServer(resourceServer -> resourceServer
.jwt()
);
```
---
### 5. **LDAP 인증 (Lightweight Directory Access Protocol)**
- **설명**: 기업 환경에서 주로 사용되며, 디렉터리 서비스(예: Active Directory)를 통한 인증 방식입니다.
- **설정 예시**:
```java
http.ldapAuthentication(auth -> auth
.userDnPatterns("uid={0},ou=people")
.groupSearchBase("ou=groups")
);
```
---
### 6. **기본 인증 없이 공개 자원 허용**
- **설명**: 인증 없이 누구나 접근 가능한 URL을 설정할 수 있습니다.
- **설정 예시**:
```java
http.authorizeHttpRequests(auth -> auth
.requestMatchers("/public/**").permitAll()
);
```
---
### 7. **기타 사용자 정의 인증 방식**
- **설명**: `CustomAuthenticationProvider` 등을 활용해 직접 인증 로직을 구현할 수 있습니다.
- **설정 예시**:
```java
http.authenticationProvider(new CustomAuthenticationProvider());
```
---
### 요약
- 인증 방식은 프로젝트의 요구사항에 따라 적절히 선택해야 합니다.
- `SecurityFilterChain`에서 설정된 인증 방식은 요청마다 호출되는 필터를 통해 동작합니다.
- 위 방식들을 조합하거나 특정 인증 경로에만 적용할 수도 있습니다.
필요한 방식에 따라 더 구체적인 구현을 도와드릴 수 있으니 추가적인 요청이 있다면 말씀해주세요! 😊
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 표현 언어(expression language)
- await
- java 키워드 정리
- 인텔리제이(intellij)
- 메이븐(maven)
- jstl(java standard tag library)-core
- nl2br
- 제품 등록
- System.Diagnostics
- 스프링 시큐리티(spring security)-http basic 인증
- 스프링 프레임워크(spring framewordk)
- java.sql
- system.io
- docker
- error-java
- .submit()
- React
- java web-mvc
- In App Purchase
- 람다식(lambda expression)
- java-개발 환경 설정하기
- jstl(java standard tag library)
- 스프링 시큐리티(spring security)
- MainActor
- 특정 문자를 기준으로 자르기
- jsp 오픈 소스
- 문자 자르기
- 스프링 프레임워크(spring framework)
- REST API
- 진수 변환
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함