[Spring Security] 1. 회원가입/로그인 - SSR

김주희's avatar
Jul 25, 2025
[Spring Security] 1. 회원가입/로그인 - SSR
프로젝트 생성
notion image
notion image
### 1. html로 폼 로그인 ### 2. 뭐한댓더라.. ### 3. oauth
 
Spring Security를 써야 하는 이유
이 서버가 꼭 들고 있어야 하는 보안 정책이 있는데 (예 - 비번 해시) 기본적으로 positive 전략이기 때문에 내가 직접 막아야 한다. Security를 적용하면 negative 전략이므로 내가 선택해서 해제해줘야 한다. 따라서 실무에서는 풀어줘야 하는 것들만 임의로 해제하면 나머지는 block 되기 때문에 사용한다.
 
로그인 = db에 username과 password 있으면 세션을 준다는 것
 
 
spring security filter chain
 
notion image
 
notion image
security가 만든 login 화면
username에 user넣고
password에
 
→ 임시 테스트 코드 같은거
⇒ Authentication 객체 만들어진거임
notion image
 
chainㅇ르 감시하는 감시자 리스너가 security에 존재
 

 

SecurityConfig

세션이 없으면 내가 만든 login 페이지로 가줘!라고 Security 라이브러리를 설정하기
 
@Configuration : 설정 파일을 만들기 위한 어노테이션
 
필터체인객체를 IOC에 걸어놓음 = 디폴트 필터체인
내가 커스터마이징 해서 다시 IOC에 걸어놓을거면 @Bean
 
 
현재 /user/** 주소의 페이지들은 전부 인증이 필요하기 때문에 login-form 페이지로 redirection 되도록 되어있다.
 
notion image
 
/join-form 회원가입 페이지는 인증이 필요하지 않기 때문에 security filter에 의해 막히지 않도록 설정해두었으므로 localhost:8080/join-form했을때 막히지 않는다.
notion image
 
builder 패턴할걸그랫다는데 뭐지
/login이라고 데이터가 날아가면 ?가 낚아챈다고..?
 
loginProcessingUrl
notion image
 
 

세션에 security context holder 영역이 있고 그 안에는 Authentication 객체
Authentication 객체는 principalDetails, role, credential 필드 가지고 있음
꺼내보면서 누군지 체킹함
 
Authentication 객체에 principalDetails 꼽혀야 됨?
 
 
 
 
notion image
 
 

 
 
인증 = 로그인
인가 = 로그인 된 사람들의 권한을 체크
 
인가와 인증의 처리를 시큐리티에게 맡김
 
  1. 보안 개념 파악
  1. 기존에 만들어진 거 커스터마이징 하는 방법
 
지금 하는건 시스템 돌아가는 전체적인 흐름 파악
notion image
 

250725 1교시 복습
ExceptionTranslationFilter = 필터 체인에서 예외를 전역적으로 제어하기 위한 필터
 
/join-form
aware filter가 인증 안필요한 주소는 그냥 쭉 통과시켜줌
/join
도 통과
사용자마다 request 가방 줌 (여기에 username, password, email 담겨있음)
DS가 reflection으로 매개변수 분석해서 request 가방에 똑같은거 잇는지 찾아서 주입해줌
service한테 전달
transaction시작 - db에 고립이 걸림
db insert되고 transaction 종료되고 stack 무너지면서
 
main으로 redirect
response 가방 줌
가방에 302, location(/main) 들고 감
request 가방은 반납
근데 main으로 가면 aware filter한테 걸림 → 수정하자!
/login-form으로 가도록 수정함
 
/login-form
쭉 들어가서
파일 내용 응답 (버퍼)
 
username=ssar&password=1234
/login
aware filter 인증 필요없는 거네 통과!
근데 UsernamePasswordAuthenticationFilter가 낚아챔
 
UPAF가 낚아채서하는 일 이제부터 공부할거임
 
 
Share article

jay0628