문제&해결

문제&해결

로컬, docker 컨테이너 포트 충돌 : 포트 관리 중요성 (mysql)

문제 상황 로컬에서 mysql이 실행중이고, 동일한 포트(3306)을 사용하여 Docker의 mysql 컨테이너를 시작시켰다. mysql 컨테이너와의 연결이 실패하며 에러가 발생했다. 에러 메세지 [28000][1045] Access denied for user '유저명'@'localhost' (using password: YES) 문제 분석 에러 메세지는 올바른 사용자 인증 정보를 주지 못한다고 나와있다. 하지만 컨테이너에 입력한 유저와 비밀번호 모두 정상적으로 입력했다. 연결에서 문제가 발생한 것으로 유추해볼 수 있다. 문제 원인 포트 충돌 : 로컬 Mysql 서버와 컨테이너 내의 Mysql 서버가 동일한 포트(3306)를 사용하려고 해서 발생한다. 한 포트는 하나의 서비스만 사용할 수 있다. 당연하..

문제&해결

웹소켓 취약점 해결 : 인증 도입 (STOMP, Jwt, Spring Security)

최근에 보완해서 글을 올렸어요~ 최근 글을 보시면 문제 해결이 더 빠를거에요!https://shout-to-my-mae.tistory.com/430 WebSocket에 JWT 인증 적용하기: 실시간 채팅 서비스 개발 경험담 🚀💬서론프로젝트에서 실시간 채팅 기능을 구현하면서 WebSocket을 사용시 JWT를 인증을 처리하는 방법을 작성해보았습니다.혹시 글을 읽고 해결이 안되시는 분들은 댓글로 남겨주시면 도와드릴게요 !shout-to-my-mae.tistory.com  웹소켓을 사용할 때 요청을 보내는 사람의 인증을 처리하는 방법은 여러 가지가 있다.웹소켓은 HTTP 프로토콜을 업그레이드하여 연결을 시작하기 때문에, 연결 초기 단계에서 인증을 수행할 수 있는 방법을 활용할 수 있다. 1. 초기 HTTP..

문제&해결

도커 volume 설정 + 환경 변수를 사용하여 H2 DB Url을 동적으로 설정하기 (로컬 / Docker 환경)

문제를 해결하면서 차근차근 도커 볼륨 설정을 해보자. docker volume이란? 데이터가 컨테이너 수명 주기 이후에도 지속될 수 있도록 보장해주는 솔루션이다. 컨테이너가 재시작해도 h2 데이터베이스의 데이터가 유지될 수 있도록 컨테이너 내부에서 외부에 존재하는 db 데이터를 참조할 수 있다. # url: jdbc:h2:mem:mydb # 인메모리 url: jdbc:h2:file:./data/mydb # 파일 기반 현재 h2 db 설정은 인메모리(in-memory)에서 file 기반으로 바꾸어서 데이터가 file에 계속 유지될 수 있도록 해뒀다. (도커에서 띄워도 데이터가 파일에 계속 기록되도록 하기 위함이다) 문제 상황 설정 파일인 application-local.yml을 로컬 환경과 도커 환경에서 ..

문제&해결

[스프링 시큐리티] Spring Security의 Filter에서 의존성 전달받기 (빈 주입)

배경 - 인증을 위해 JWT를 사용하고 있다. JWT의 Claim을 통해 사용자 정보를 가져온다. - User 엔티티는 AbstractJpaEntity로부터 상속받는다. id를 이용해 바로 객체를 생성할 수 없다. - Java 17, Spring 3.0으로 최신 개발환경이다. 기존 코드(Spring Security Filter 일부분) Long id = decodedJWT.getClaim("id").asLong(); String role = decodedJWT.getClaim("role").asString(); MemberRole roleEnum = MemberRole.valueOf(role); Member member = Member.builder().id(id).role(roleEnum).build(..

문제&해결

yml 파일이 깃허브에 올라갔을때 커밋에서 삭제하는 방법

팀 깃허브 프로젝트에 application.yml이 올라가는 대참사가 발생했다. 심지어 내 repo도 아니라 삭제해서 다시 올릴 수도 없다. 1. application.yml 파일 githhub 에서 삭제하기 + 커밋 application.yml은 build 폴더에도 있고 main/resources 에도 있으니 둘 다 삭제해야한다. 현재 프로젝트 파일에서 두개의 application.yml을 지우자. 2. .gitignore에 **/application.yml 추가하기 추가하고 다시 커밋을 하자. 3. application.yml 캐시 삭제하기 이미 yml은 추적당하고 있다..... 추적에서 제외시키자 git rm -r --cached . 위처럼 모든 캐시를 삭제해도 되고, 그냥 파일 지정해서 삭제해도 ..

mint*
'문제&해결' 카테고리의 글 목록 (2 Page)