Spring Framework/스프링 시큐리티
[스프링 시큐리티] 공식문서 번역하며 공부하기 - Hello Spring Security
석이
2022. 1. 2. 16:28
일러두기
- 본 글은 스프링 공식 페이지의 Hello Spring Security 절을 한국어로 번역한 자료입니다.
- 전문적인 교육을 받은 번역가가 번역한 글이 아니기 때문에 다소의 번역 실수가 있을 수 있습니다. (아마 많을..)
- 해당 기능에 대해 전문적인 지식을 갖춘 엔지니어가 아니라, 스프링 시큐러티를 처음 공부하는 학생이 작성한 글이기 때문에 번역 간의 다수의 오역과 의역이 있을 가능성이 있습니다.
- 결론 : 이 문서는 신뢰할 수 없을 가능성이 높습니다.
- 번역이 매끄럽지 못하다고 판단되는 부분은 파란색으로 원본 문장을 첨부하여 원본을 확인할 수 있도록 하였습니다.
원본 출처
https://docs.spring.io/spring-security/reference/servlet/getting-started.html
번역문서
Hello Spring Security
이 절에서는 스프링부트와 함께 스프링 시큐러티를 사용하는 최소 설정에 대해 설명합니다.
<Note>
완성된 애플리케이션은 우리의 샘플 저장소에서 확인할 수 있습니다. 당신의 편의를 위해 이곳을 클릭하면 스프링 부트와 스프링 시큐러티가 탑재된 최소한의 규모의 애플리케이션을 다운받을 수 있습니다. (번역가 주: 다운로드는 원본 페이지로 들어가 진행하시기 바랍니다.)
의존관계 업데이트
Maven이나 Gradle을 사용하여 의존관계를 업데이트 할 수 있습니다.
Hello Spring Security Boot 시작하기
이제 Maven 플러그인의 run을 사용하여 스프링 부트 애플리케이션을 실행할 수 있습니다. 다음의 예는 이 작업의 수행방법을 보여줍니다. The following example shows how to do so (and the beginning of the output from doing so)
$ ./mvn spring-boot:run
...
INFO 23689 --- [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration :
Using generated security password: 8e557245-73e2-4286-969a-ff57fe326336
...
스프링 부트 자동 환경설정
스프링은 자동으로
- springSecurityFilterChain 이라는 이름의 서블릿 필터 빈을 시프링 시큐러티 기본 설정의 활성화를 통해 생성합니다. 이 빈은 당신의 애플리케이션에 필요한 모든 보안을 책임집니다. (애플리케이션 URLs 보호, 제출된 사용자 이름과 비밀번호 검증, 로그인 화면으로의 리다이렉트 등)
- UserDetailsService 라는 이름의 빈을 생성하며 user라는 이름의 사용자와 랜덤값으로 생성되는 비밀번호를 콘솔창에 출력합니다. Creates a UserDetailsService bean with a username of user and a randomly generated password that is logged to the console.
- 모든 요청을 처리하는 서블릿 컨테이너에 springSecurityFilterChain 빈을 등록합니다.
스프링부트는 많은 구성을 필요로 하지 않지만, 많은 기능을 제공합니다. 기능에 대한 요약은 다음과 같습니다. Spring Boot is not configuring much, but it does a lot. A summary of the features follows:
- 애플리케이션과 상호작용하기 위해서는 인가된 사용자가 필요합니다.
- 관리자(you - 당신)을 위한 기본 로그인 폼을 생성합니다. Generate a default login form for you
- user라는 이름의 사용자와 폼 기반의 인증을 위한 비밀번호가 콘솔창에 출력됩니다. (비밀번호의 형태는 다음과 같습니다. 8e557245-73e2-4286-969a-ff57fe326336)
- BCrypt 암호시스템을 사용하여 비밀번호 저장소를 보호합니다.
- 로그아웃 기능을 제공합니다. Lets the user log out - 사용자가 로그아웃 할 수 있습니다.
- CSRF 공격 유형에 대한 보호기능을 제공합니다.
- Session Fixation 공격 유형에 대한 보호기능을 제공합니다.
- 보안 헤더 통합 Security Header integration
- 보안 요청을 위한 HTTP Strict Transport Security
- X-Content-Type-Options 통합
- 캐시 컨트롤 (추후 정적 리소스들을 캐싱할 수 있도록 애플리케이션에서 재정의가 가능합니다.)
- X-XSS-Protection 통합
- ClickJaking을 방지하기 위한 X-Frame-Options 통합
- 다음 서블릿 API 메소드들을 통합합니다.