처음 프로젝트 생성 시 Spring Web Mvc만 의존성을 추가해 보았다. 그리고 간단한 Controller를 만들었다.
build.gradle 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-web'
HelloController.class
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam(required = false, defaultValue = "guest") String name) {
return "hello " + name;
}
}
localhost:8080/hello에 접속을 하면 정상적으로 작동한다.
이제 build.gradle Spring Security 의존성을 추가해준다.
// Spring Security 추가
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
프로젝트를 실행하니 처음 보는 security password가 콘솔에 찍히게 된다.
똑같이 localhost:8080/hello에 접근을 해보았다.
302 상태가 반환되며 localhost:8080/login으로 리다이렉트가 되었다.
로그인 화면은 Spring Security가 기본으로 제공해주는 화면이다.
Username에 user, Password에 콘솔에 찍힌 문자열을 입력하면 정상적으로 localhost:8080/hello로 넘어가게 된다.
참고로 localhost:8080/logout을 요청하면 로그아웃 페이지가 나온다.
그리고 application.properties에 username과 password를 지정할 수 있다.
spring.security.user.name=user
spring.security.user.password=1234
이렇듯 Spring Security 의존성만을 추가했음에도 기본적인 로그인 기능이 추가되었다.
Spring Security이 기본적으로 제공하는 로그인은 Session을 이용한 로그인이다.
로그인한 브라우저의 요청 헤더 JSESSIONID값을 복사해 로그인하지 않은 브라우저에 JSESSIONID값을 넣어 주면 로그인이 된 상태가 된다. 반대로 로그인이 된 브라우저에서 JSESSIONID값을 지우면 로그인이 풀리게 된다.
'Spring Security' 카테고리의 다른 글
Spring Security -HttpSecurity (0) | 2021.11.30 |
---|---|
Spring Security - WebSecurityConfigurerAdapter (0) | 2021.11.23 |
Spring Security 공부하기 앞서서.. (0) | 2021.11.22 |
댓글