Backend/Spring Security

Spring Security (1)

sliver__ 2025. 1. 18. 14:35
728x90

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로 로그인하면?? 성공한다 !

728x90