스프링 시큐리티 기본 설정 / springsecurity 기초
스프링 시큐리티 를 설정한 프로젝트를 로컬에서 돌리면
메인 페이지가 뜨는게 아니고
아래 사진처럼 난 이런거 만든적없는데 하는 페이지가 뜬다..
왤까?
아이디는 머고.. 비밀번호는 뭘쓰라는걸까... 나한테왜.. 이러는걸....ㄲ.ㅏ?
스프링 시큐리티를 추가하면 간단하게 설명하면 아래와같은 흐름으로 진행이 된다.
1. 스프링시큐리티 기본 설정
사용자 인증(Authentication) | 스프링 시큐리티은 사용자의 인증을 처리하는데 사용되며, 기본적으로 폼 기반 로그인을 지원합니다. 사용자의 아이디와 비밀번호를 이용하여 인증을 처리하며, 데이터베이스를 사용한 인증을 기본으로 제공합니다. |
인가(Authorization) | 스프링 시큐리티은 인증된 사용자의 권한을 처리하는데 사용되며, 인가를 통해 사용자가 특정 URL이나 리소스에 접근 가능한지 여부를 결정합니다. 기본적으로 모든 URL에 대한 인가가 설정되어 있어 로그인한 사용자만 접근할 수 있습니다. |
세션 관리(Session Management) | 스프링 시큐리티은 사용자의 세션을 관리하는데 사용됩니다. 세션은 사용자의 로그인 상태를 유지하고, 세션 관리를 통해 세션 공격과 같은 보안 위협으로부터 보호할 수 있습니다. |
CSRF(Cross-Site Request Forgery) 방어 | 스프링 시큐리티은 CSRF 공격을 방어하기 위한 기능을 제공합니다. CSRF 공격은 사용자의 인증 정보를 도용하여 악의적인 요청을 전송하는 공격입니다. 스프링 시큐리티은 CSRF 토큰을 사용하여 요청의 유효성을 검증하여 이를 방어합니다. |
기본 로그인 페이지 | 스프링 시큐리티은 기본적으로 "/login" URL을 통해 로그인 페이지를 제공합니다. 사용자가 인증되지 않았을 경우에 해당 페이지로 리다이렉트되어 로그인을 처리할 수 있도록 합니다.![]() 인증에 성공하면 정상적으로 기존에 설정한 홈화면을 볼 수있지만 실패하면 인증 실패 화면이 출력됩니다. |
기본 인증 정보 | 스프링 시큐리티은 기본적으로 사용자의 아이디와 비밀번호를 사용하여 인증을 처리합니다. 기본 인증 정보는 "user"라는 사용자 이름과 랜덤한 비밀번호를 가지고 있습니다.![]() |
+ 기본 name/password 설정이 application.properties에 설정이 가능하다
spring.security.user.name=user spring.security.user.password=1234 |
+ 그런데 메인페이지에는 로그인이 필요없는데.. 시큐리티를 설정하면 메인페이지 전에 인증을 요구하는걸까?
궁금햇다.
1. 리소스 보호 : 메인페이지가 보호된 리소스에 속할경우
2. 사용자인증 요구 : 시큐리티를 설정하면 사용자의 인증을 요구 할 수 있습니다. 메인페이
3. 보안정책 : 애플리케이션의 보안정책에 따라 메인페이지에서 로그인이 필요한 경우
4. 일관성있는 보안설정 : 스프링 시큐리티를 사용하여 애플리케이션 전체적으로 일관성있는 보안설정을 구현하려는 경우, 메인ㅇ페이지를 포함한 모든 페이지에 로그인이 필요하도록 설정할 수있습니다. 이를 통해 애플리케이션 전체에서 보안이 일관되게 적용되고 관리되며, 보안위협으로부터 더욱 안전하게 보호될 수 있습니다.
라고한다.
2. 스프링 시큐리티 활성화하기
- 메이븐 프로젝트일 경우 pom.xml 에설정
<dependencies> <!-- ... 기타 의존성 ... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> </dependencies> |
- 그래들 프로젝트 일 경우 build.gradle 파일 에 설정
dependencies { // ... 기타 의존성 ... implementation 'org.springframework.boot:spring-boot-starter-security' } |
2. 시큐리티 로그설정 바꾸기..
스프링 부트는 기본적으로 INFO 레벨 이상의 로그만 출력하도록 되어있다.
따라서 시큐리티와 관련된 더 많은 로그 메세지를 확인하기 위해서는 로그 레벨을 DEBUG 레벨로 변경 해야한다.
application.properties |
logging.level.org.springframework.security=DEBUG |
위 내용 참고 포스트
https://catsbi.oopy.io/c0a4f395-24b2-44e5-8eeb-275d19e2a536
스프링 시큐리티 기본 API및 Filter 이해
목차
catsbi.oopy.io