프로젝트 정보
nginx 프록시 패스 변경
포트번호가 다른 프로젝트를 같은 도메인을 쓰도록 하고 싶었습니다. 따라서 nginx 가 포트번호에 따라 요청을 알맞게 돌릴 수 있도록 변경하였는데요, 서버에 있는 8085 프로젝트에 해당하는 요청인경우 다음과 같은 응답헤더를 넣어줘야 합니다.
"X-Route-To" : 8085
이는 필터를 만들어서 자동으로 붙이게 해놨으며, 파일은 CustomHeaderFilter.java 입니다.
토큰 인증 인가
공통
이제 이메일이 유일값이 아니기 때문에 유저를 멤버 아이디를 기준으로 찾아야 합니다. 따라서 그에따른 변경점이 생겼습니다.
토큰
•
레디스에 리프레시 토큰을 저장할 때, 키 값을 userId 로 변경
•
토큰에서 이메일을 뽑아 인증하는 경우가 있었는데요, 이는 userId 를 뽑아내는 것으로 변경하였습니다.
•
토큰을 뽑아내서 tokenUtil 의 getAuthenticationFromToken 메서도를 쓰면 알아서 인증까지 마치도록 변경하였습니다.
•
tokenUtil 의 불필요한 메서드는 제거하였습니다.
•
토큰은 유저 인덱스를 이용하여 만들었습니다.
웹소켓
•
웹소켓 토큰의 경우 겹치는 부분이 있어서 tokenUtil 에서 StompSessionHandlerAdapter 상속받았습니다.
•
아직 WebSocketUtil -> tokenUtil 로 고치는 작업을 안했는데, 고치면서 테스트 해보면 될것 같습니다!
유저 찾기
•
유저를 찾을때 이메일을 기준점으로 찾았으나 이제는 provider 도 같이 포함해야 합니다.
•
회원가입시 로컬 회원가입은 provider 가 local 이 되도록 변경하였습니다.
•
이제 특정 유저를 이메일만으로 찾을 수 없기 때문에 Authorization 헤더에 오는 토큰을 이용하여 유저 정보를뽑아내야 합니다. 토큰을 가져와서 유저인덱스를 얻고 이를 이용하여 멤버를 찾으면 됩니다. 때문에 컨트롤러에 HttpServeletRequest 부분이 추가되었습니다.
ValidatingService
•
웹소켓과 일반 요청은 헤더를 가져오는 방식이 다릅니다. 따라서 둘을 구분하였습니다.
◦
일반요청 : HttpServeletRequest 에서 가져옴
◦
웹소켓 : 컨트롤러에서 @Header("Authorization") 으로 바로 가져옴
ETC
•
변수명을 수정하고 코드를 좀더 간결하게 만들었습니다.
•
날잡아서 리팩토링 한번 가시죠...
프로젝트 작업
보드
작업
Search