강의 잘보고있습니다. 감사합니다 인터셉터와, 필터가있는데 인터셉터로 적용한 이유가 있을까요 ?? -- 그리고 인터셉터 설정할때 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(memberSigninInterceptor) .addPathPatterns("/member/modify"); } 지금 상황에선 excludePathPatterns 설정을 굳이 안해줘도 문제가없지 않나요 ? 강의에서는 해주셨는데
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세 문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요. 현업에서 도커를 사용해 개발해오지는 않았어서 강의를 듣다가 의문이 들어서 문의 남김니다 다른 강의를 봤을때는 nginx, db, jar를 각각 만들어서 이미지들을 각각 격리하여 사용하고 상황에 따라 추가 생성하여 사용한다고 본거 같은데요 그렇게 사용하는데는 각각의 영역을 독립적으로 관리하기 위해서 한다고 봤구요 하나의 서버에서 직접 nginx+mysql+jar 설정등을 직접 하다가 도커 설정을 따로 이미지 만들어서 작업한다고 봤을때는 생소하기도 했습니다 근런데 강사님은 한꺼번에 한다고 말씀하시니 좀 헷갈리긴 하네요 현업에서는 주로 어떻게 쓰는건가요 ?
안녕하세요 "인가 설정 실시간 반영하기" 코드에서 동시 세션 제어 기능을 추가할려고 합니다. http.sessionManagement(session -> session .maximumSessions(1) .maxSessionsPreventsLogin(true) ) 위 코드를 추가한 후 REST 방식으로 로그인후 로그아웃을 하면 SessionRegistry의 principals 객체에 있는 정보가 삭제되지 않아 다시 로그인을 시도하면 인증오류가 발생합니다. 로그아웃을 할 경우 SessionRegistry.removeSessionInformation(sessionId)가 호출되어 principals 정보가 삭제되어야 할 것 같은데 제가 잘못 이해하고 있는 지 궁금합니다.
안녕하세요, 궁금한점 이있는데 33~34 강의 편에서 보면 공격자가 세션 쿠키를 희생자의 브라우저에 삽입해서 희생자가 로그인하면 공격자도 희생자의 정보를 탈취하는 그런 내용의 강의가 있었는데요, 궁금한 점은 공격자는 왜 로그인 같은 기타 인증을 하지 않고 기본적으로 세션 쿠키가 생성이 되어있는걸까요? SessionCreation policy 가 always 가 아니고 if required 였던거 같은데 왜 이미 생성되어 있던 것인지 궁금합니다.
강사님 안녕하세요. 항상 좋은 강의 제공해 주셔서 진심으로 감사드립니다. 강사님의 Spring Security와 OAuth 강의를 듣고, 현재 진행 중인 사이드 프로젝트에 Spring Security, OAuth2 Client, JWT를 활용한 로그인 기능을 구현하고 있습니다. 강의에서 배운 내용을 기반으로 직접 구현해보면서 정리한 내용을 블로그에 개발 로그 형태로 작성해보고 싶은데, 가능할지 여쭤보고 싶습니다. 강의 PPT는 게시하지 않을 예정이고, 구현하면서 강의에서 참고한 부분 중 필요했던 내용만 정리해서 기록해보고 싶은데, 괜찮을까요?
안녕하세요. 강의 잘 보고,듣고, 익히고 있습니다! customAuthenticationFilter관련 부분보다가 궁금증이 생겨서 질문 남깁니다. authenticationManager, authenticationProvider 로직을 SecuriyConfig의 필터가 아닌 일반 서비스 로직 내부에서도 똑같이 커스텀해서 사용이 가능한가요? (Contoller에서 dto로 받아서 서비스에서 id/pw 검증 후 이후 과정을 처리하는 그런 흐름이 가능한건지 궁금합니다) jwt 관련 로그인을 구현하려고 하는데, 전체적인 구조는 SpringSecurity의 맥락을 그대로 가져가고 싶은..생각입니다.
HttpSecurity에서 가져오는 AuthenticationManagerBuilder와 주입받는 AuthenticationManagerBuilder가 사로 다르지만 타입이 같아 메서드는 똑같을텐데 managerBuilder.authenticationProvider(new DaoAuthenticationProvider()); builder.authenticationProvider(new DaoAuthenticationProvider()); 후자일경우 수업 내용처럼 부모 프로파이더에는 DaoAuthenticationProvider() 가 들어가고 providers 에는 커스텀과 익명 프로바이더 2개가 들어가는데요 전자 즉 직접 참조하는 AuthenticationManagerBuilder는 부모 프로바이더는 null 인데 반해 기존 providers 에 생겨서 총 3개가되고있습니다 물론 실제 실행할때에는 똑같은 결과지만 함수authenticationProvider 은 public AuthenticationManagerBuilder authenticationProvider(AuthenticationProvider authenticationProvider) { this.authenticationProviders.add(authenticationProvider); return this; } 인데 왜 각각의 작동이 다른지 궁금합니다
안녕하세요 validation 강의를 듣고 질문 드립니다. 강의 속에서 설명하신대로 하고 postman에서 실행을 하려고 보니 동작은 하는데 비밀번호 조건이 충족되지 않아도 defaultMessage가 뜨지않고 회원가입이 완료되었다는 창이 뜹니다ㅜㅜ @Valid 어노테이션 사용도 다 했는데 뭐가 문제인걸까요?
강의 내용 중에 POST 와 같이 데이터를 변경하는 요청의 경우 csrf 토큰을 생성한다는 내용이 있는데 로그인 페이지 요청시 GET 으로 요청하는데 csrf 토큰이 input 태그에 포함되어 있는 걸로 보아 POST 와 같이 데이터틀 변경하는 요청의 경우 csrf 토큰을 생성하는 게 아니라 csrf 토큰을 검증하는 것이고, csrf 토큰은 모든 요청에 대해 반환해준다가 맞을까요? 또 csrf 토큰이 난수를 조합해 계속 변경해서 클라이언트에 반환한다고 들었는데 제가 잘못 본 건지 모르겠지만 토큰을 디코딩할 때 난수를 조합하는 코드를 보면 토큰의 길이로 난수를 만드는 것 같은데, 토큰의 길이로 난수를 만든다고 하면 토큰을 변하게 하지 않는 이상 인코딩된 토큰의 결과가 똑같을 것 같거든요. 그래서 세션당 고유 토큰 값은 똑같다고 한다면 로그인 전에는 클라이언트에 반환하는 토큰이 계속 바뀌고 (=익명 사용자 세션이니) 로그인 이후에는 클라이언트에 반환하는 토큰이 일정한 게 아닐까 하는 물음이 생겼습니다. 어느게 맞는 걸까요 ?