Back-End/Spring5 [Spring security] 중복 로그인 방지 기능 만들다가 마주친 Maximum sessions of 1 for this principal exceeded 오류 + 리스너 개념 오늘은 로그인, 로그아웃, 권한 설정 기능을 만들고 있다. 일단 로그인과 권한 설정까지 완료했는데 로그아웃이 문제다.. .sessionManagement(session -> session .maximumSessions(1) .maxSessionsPreventsLogin(true) //동시 로그인 차단, false인 경우 기존 세션 만료(default)) 내가 원하는 설정은 넷상에 존재하는 다른 홈페이지들 처럼 클라이언트에서 1개의 세션만이 로그인 되도록 하는 것이기 때문에 위처럼 최대 세션수를 1개로 정해놓고 동시 로그인을 차단시켜놨다.원인은 세션이 종료된걸 서버에서 모르는 듯 한데... 근데 그러기엔 세션이 존재해야만 보이는 마이페이지 버튼도 안보였다.. 일단 세션이 끊겼는지 .. 2024. 9. 11. [Spring] RestAPI와 @ResponseEntity Spring 공부를 하던 중 남에게 설명을 잘할 수 있는 수준이 그 개념에 대해 정확히 이해하는 것 아닐까 라는 생각이 들었다.생각해보면 막상 설명해보라하면 제대로 못하는 것 같아서 다시한번 개념을 찾아보고 내가 이해한 식대로 적어보는게 좋을 것 같아서 정리하면서 글을 써본다 RestAPIRestAPI는 웹에서 데이터를 주고받는 방식 중 하나로 HTTP프로토콜을 사용해 클라이언트와 서버간에 데이터를 교환하는 구조다. 리소스를 URL로 식별하고 GET,POST,PUT,DELETE 같은 HTTP 메서드를 통해 리소스를 처리한다.(여기서 리소스를 URL로 식별한다는 뜻은 API에서 다루는 대상을 URL을 통해 구분하고 식별한다는 뜻이다.) 여기서 Restful API라는 단어도 있는데 이것은 Rest의 아키텍.. 2024. 9. 10. [Spring Security] spring security 에서 CSRF 작동시키는 이유 1. 프론트에서 입력한 데이터를 fetch Api 를 이용해서 서버에 보내주려고 하는 과정에서 문제가 발생했다.. 분명히 Spring security를 설정하지 않았을 때는 서버로 데이터 전달이 잘만 됐었는데.. 뭐지..?? 잘안됨... 그래서 Spring Security 에 대해서 더 공부해봤다 그래서 데이터 전송이 안된 이유는 CSRF설정 때문이었다CSRF는 사용자가 신뢰하는 웹사이트에서 의도치 않은 요청을 전송하게 만드는 공격 방식이다. Spring security 에서는 CSRF가 기본적으로 설정이 되어있기 때문에 따로 비활성화 설정을 해주지 않으면 서버는 POST, PUT, DELETE와 같은 상태 변경 요청에서 CSRF 토큰을 요구하게 된다. 이 때문에 회원가입 페이지에서 서버에게 POST방.. 2024. 9. 9. [Spring] @Autowired 와 @RequiredArgsConstructor JPA를 공부하려고 자료를 찾다보니 @RequiredArgsConstructor 를 사용한 소스코드를 보게 되었다 무슨 코드인지 몰라 알아보니 final로 선언된 필드를 매개변수로 하는 생성를 자동으로 생성해준다고 했다.엥 그러면 @Autowired 는? 이것도 자동으로 생성자를 생성해주는 걸로 알고있는데 라는 생각이 들어서 두 어노테이션을 공부하게 되었다. 찾아보니Autowired는 필드 주입 방식의 의존성 관리 방법- Field, Setter Method, Constructor(생성자)에 사용 가능하다.(@RequiredArgsConstructor와 다른점)- 기본적으로 Type을 기준으로 의존성을 주입 (DI)동일한 Type의 빈(Bean)이 여러 개 존재할 경우 기본적으로 참조 변수의 - 이름과.. 2024. 9. 6. 이전 1 2 다음