일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 면접
- springboot
- 이클립스
- EL태그
- SESSION
- 깃허브
- 알고리즘
- 자바스크립트
- html
- 설정
- java
- 버튼
- 설치
- MySQL
- jsp
- 폼태그
- Oracle
- 셋업
- 오라클
- 깃허브 간단요약
- 스프링
- 필터체인
- Spring
- Eclipse
- 마이바티스
- jstl
- 자바
- jsp 내부객체
- jquery
- 제이쿼리
- Today
- Total
은은하게 코드 뿌시기
스프링 시큐리티 기본 설정 / 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
'웹 > Spring Boot' 카테고리의 다른 글
스프링 시큐리티 / Spring security 란? (0) | 2023.04.18 |
---|---|
스프링 부트 프로파일 / Springboot profile 설정! (0) | 2023.04.18 |
SPEL (Spring Expression Language) / 스프링 표현언어 (0) | 2023.04.17 |
스프링 부트 application.properties (0) | 2023.04.17 |
@ConfigurationProperties(prefix="custom.prop") 이게뭐야 / 스프링부트 application.properties 값 받아오기/ 매핑 (0) | 2023.04.17 |