Spring Security의 JWT 토큰 관리와 보안 필터 처리 log에 [doFilterInternal] 유효한 JWT 토큰이 없습니다, uri: 라는 메시지가 표시되어 해당 인증이 필요없는 CSS 및 JavaScript 파일에도 이 메시지가 표시되는 문제가 생겼다. public class JwtAuthenticationFilter ext...
Spring security: 인증과 권한 관리
Spring Security: 인증과 권한 관리 back과 front를 분리하면서 해당 권한에 해당하는 api 주소를 back에 맞게 변경했다. 그리고 해당 주소 중 관리자만 사용할 수 있게 권한을 Security에 설정했다. 문득 이 권한은 로그인한 사용자 정보를 얻기 위해 SecurityContextHolder.getContext().se...
Cors
CORS 기존 브라우저 정책은 서로 다른 도메인으로부터 리소스가 필요한 경우, 보안상의 이유로 다른 도메인의 리소스를 가져오는 것이 불가능했다. (SOP : Single-Origin-Policy) 하지만 어플리케이션을 개선하고 쉽게 개발하기 위해선 다른 도메인에 요청을 보내는 일은 필연적이다. 이를 해결하고자 등장한 표준 기술이 CORS이다. ...
Authenticationprincipal null 값
@AuthenticationPrincipal을 활용한 사용자 정보 주입 @AuthenticationPrincipal은 Spring Security에서 현재 인증된(principal) 사용자의 정보를 주입받을 때 사용하는 어노테이션이다. 이를 통해 컨트롤러나 서비스에서 현재 사용자의 정보에 쉽게 접근할 수 있다. 문제 User가 UserDetai...
동시성을 통한 다중 접속자 관리
동시성을 통한 다중 접속자 관리 동시성(Concurrency)은 단일 코어에서 여러 스레드가 번갈아가면서 실행되는 것처럼 보이는 개념이다. 이는 실제로는 하나의 코어에서 각 스레드가 번갈아가면서 실행되기 때문에 동시에 실행되는 것은 아니다. 이때 thread들은 작업을 진행하다가 일시적으로 중단되고 다른 스레드가 실행되는 형태로 동작한다. 이...
Https 기본
HTTPS 적용 사전 지식 HTTPS를 적용하면서 적용과정만 작성했기 때문에 이곳에 관련 지식들을 정리해봤다. HTTPS란 HTTPS는 HTTP 프로토콜에 SSL 기술이 더하여 전달되는 데이터를 SSL 암호화하여 보안성을 더 높였다. 간단히 말하자면 HTTPS(Hypertext Transfer Protocol Secure)는 이름처럼 HTT...
배포 후 oauth2 수정
배포_OAUTH2 + Security back과 front가 분리되기 전에는 <a href="/oauth2/authorization/kakao">Kakao</a> 위와 같이 설정만 해도 소셜 로그인을 하는데 문제가 없었다. 문제는 back과 front를 분리하면서 해당 url을 페이지로 변환하려고 하면서 에러가 발생했다. ...
배포하면서 생긴 채팅 관련 오류
배포하면서 생긴 채팅 관련 오류 모음 집(+SSE) 로컬에서 https를 적용했을 때는 문제가 되지 않았으나 배포하면서 발견한 에러들을 정리해봤다. 1. 공통 JS와 페이지별 기능 JS 채팅 관련 js를 작성한 곳이 chat.js이고 여러 페이지에서 공통적으로 사용한 변수들과 메소드를 모아놓은 곳이 global.js다. global.js에...
Connection timed out: connect
Connection timed out: connect. DB를 연결하려고 보니 Connection timed out: connect. 에러가 떴다. 이 글을 보고 EC2의 보안그룹을 체크해봤다. 유형 : MYSQL, 포트 범위 : 330으로 설정은 했으나 소스 부분에서 팀원이 “내 IP”만 허용해둬서 나는 접근을 할 수가 없었다. 그...
배포_redis
Redis 이 전 글에서 redis를 application.properties에 아래와 같이 설정했다. spring.redis.host = host.docker.internal host.docker.internal은 Docker for Windows 및 Docker for Mac에서 로컬 호스트를 가리키는 특수한 DNS 이름이다. 따라서 Li...