Spring Security (1)
Spring Security를 몰라서 처음부터 기록합니다.
Spring security를 개발하는 Web App에 적용하려면 gradle 또는 maven에 추가로 설정해주면 된다.
//security
implementation 'org.springframework.boot:spring-boot-starter-security'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
Gradle을 사용하여 연관된 jar 파일들을 받은 후 Web application을 다시 시작하면 login 페이지가 나온다.
흠.. 갑자기 login 페이지가 어떻게 나오는지는 아직 모르겠다. spring-security에서 제공해주는 기능이라고 생각하고 있다.
여기서 로그인을 하려면 user와 password를 알아야 하는데.. 어떻게 알지?
의 비밀을 알아보려면 SecurityProperties.java 파일을 보면된다.
User class를 보니깐 name, password가 있네?
유추해볼 수 있는건 id:user, password: UUID로 생성되는 random string이라는거다.
Web app을 다시 시작하면 콘솔창에 password가 보이는데 아래와 같음 !
WebApp이 재시작 할 때마다 값이 random하게 바뀐다.
이 값을 이용해서 로그인 하면?
접속하려는 API에 접근이 가능하다.
그리고 특이한점은? 다시 해당 API에 접근해도 브라우저 별 Session이 유지된다는 점이다.
흠.. 이것도 spring-security에서 지원을 해주나보다.
그리고 id, password를 application.yml 파일에 직접 정의도 가능한데, spring docs를 참고하면 security에 관한 설정 정보들을 확인할 수 있다.
https://docs.spring.io/spring-boot/reference/web/spring-security.html
Spring Security :: Spring Boot
OAuth2 is a widely used authorization framework that is supported by Spring. Client If you have spring-security-oauth2-client on your classpath, you can take advantage of some auto-configuration to set up OAuth2/Open ID Connect clients. This configuration
docs.spring.io
참고해서 보면 spring.security.user.name, spring.security.user.password 값을 application.yml 파일에 원하는 값으로 설정해주면 변경 가능!
적용 후, 재시작을하면?? 콘솔창에 password가 보이지 않는 걸 확인할 수 있다.
그리고 내가 설정한 id, password로 로그인하면?? 성공한다 !