인증(Authentication)절차를 거친 후에 권한(Authorization)절차를 진행하게 된다.
Spring Security에서는 이러한 인증과 인가를 위해 Principal을 아이디로, Credential을 비밀번호로 사용하는 Credential 기반의 인증 방식을 사용한다.
- Principal(접근 주체): 보호받는 Resource에 접근하는 대상
- Credential(비밀번호): Resource에 접근하는 대상의 비밀번호
spring security의 의존성이 추가되지 않은 경우 해당 url을 접속하였을 때 아무런 보안, 인증 없이 접속이 가능합니다. 그러한 프로젝트에 다음과 같이 spring security의존성을 추가해보겠습니다.
Maven 방식
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Gradle방식
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
security의존성을 추가하면 다음 사진과 같이 특정 url에 접속을 할 때 인증을 받게 됩니다.
해당 로그인 화면은 Spring Security에서 제공하는 기본적인 로그인 페이지이며 사용자의 설정에 따라 사용자가 직접 만든 디자인의 페이지로 변경이 가능합니다.
해당 페이지의 로그인 정보는 기본 설정으로 Username, 즉 id는 user
가 기본 아이디이며 패스워드는 아래의 이미지의 네모로 표시된 부분이 기본 비밀번호가 됩니다.
해당 아이디와 비밀번호를 입력을 하여 접속을 하면 접속하고자 하였던 url에 접속을 하실 수 있습니다.
아이디와 비밀번호는
application.properties
에서 다음과 같이 고정된 id/pw를 설정하여 테스트를 할 수도 있습니다.spring.security.user.name=user spring.security.user.password=1111
오늘은 Spring Security가 무엇인가와 Spring Security의 의존성 추가 방법에 대해 알아봤습니다. 다음 포스트부터 더욱 구체적으로 Spring Security에 대해 알아보겠습니다.