Spring Security
Spring Security는 Spring 기반의 애플리케이션의 보안(인증 및 권한, 인가 등)을 담당하는 프레임워크입니다.
웹 보안 및 메소드 보안, CSRF(Cross Site Request Forgery) 방지, 세션 관리 등 다양한 보안 기능을 제공합니다.
의존성 설치 방법은 build.gradle
에 아래 한 줄을 추가하면 된다
implementation 'org.springframework.boot:spring-boot-starter-security' // 스프링 시큐리티 제공
Spring Security의 주요 특징
- Comprehensive and extensible support: 인증, 인가, 세션 관리, 비밀번호 인코딩 등 다양한 보안 기능을 지원하며, 이를 커스터마이즈 할 수 있는 방법을 제공합니다.
- Protection against attacks: CSRF, Session Fixation, Clickjacking 등 다양한 웹 기반 공격으로부터 보호합니다.
- Servlet API integration: Servlet API와 통합되어, Role-Based Access Control (RBAC) 등의 기능을 쉽게 사용할 수 있게 해줍니다.
Spring Security의 기본적인 작동 프로세스
- Request: 사용자가 애플리케이션에 요청을 보냅니다.
- Intercept: Spring Security Filter Chain이 요청을 가로챕니다.
- Authentication: 사용자가 제공한 자격증명(예: 사용자 이름, 패스워드)을 이용하여 사용자를 인증합니다. 이 과정에서는
AuthenticationManager
와UserDetailsService
등이 사용됩니다. - Authorization: 사용자가 요청한 자원에 대한 접근 권한을 확인합니다. 이 과정에서는
AccessDecisionManager
와SecurityMetadataSource
등이 사용됩니다. - Handle Access: 접근이 승인되면, 요청을 처리하고 결과를 사용자에게 반환합니다. 만약 접근이 거부되면, Spring Security는 적절한 에러 응답을 반환합니다.
질문 : Spring Security의 자동 리다이렉션 원리는 어떻게 되는가
의존성만 다운로드한 프로젝트를 실행했더니 자동으로 login form으로 이동하는 것을 보았습니다
왜 난 form을 만들지 않았는데, 어디서 등장했을까 궁금해서 찾아보았습니다
결론부터 말하자면, Spring Security는 기본적으로 Form-Based Login을 지원합니다.
기본 설정에서는 /login
URL로 이동하면 자동으로 Spring Security의 기본 로그인 폼이 표시됩니다.
최초 ID는 user이며, 비밀번호는 프로젝트 실행 할 때 콘솔 창에서 확인 할 수 있습니다.
저의 경우 로그인에는 성공했지만, 아직 아무 페이지도 만들지 않아 error가 뜹니다
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'DEV > Java' 카테고리의 다른 글
DispatcherServlet 왜 필요한가 (0) | 2023.07.05 |
---|---|
Spring의 @RequestMapping (0) | 2023.07.05 |
Easy Random (0) | 2023.06.02 |
JDBC (0) | 2023.06.02 |
데이터 변환 with Spring (0) | 2023.05.27 |