묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
9:28 패턴 3의 경우 마지막으로 설정한 것만 적용되는 것 같습니다.
스프링 부트 3.4.3, 스프링 시큐리티 6.4.3 기준입니다.다음과 같이 설정하게 되면 api/**는 적용되지 않고 oauth/**에만 적용됩니다.http.securityMatchers(matchers -> matchers.requestMatchers("/api/**") ) .securityMatchers(matchers -> matchers.requestMatchers("/oauth/**") );
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Bean UserDetailsService
만약에 CustomProvider를 빈으로 정의한다면 DAOProvider를 저희가 만든 CustomProvider 가 대체하는것으로 이해 했는데 그렇게 되면 저희가 빈으로 정의한 UserDetailsService는 사용하지 않는건가요?
-
미해결CPPG 자격증 취득 과정 (2025년)
CPPG모의고사 자료 문의드립니다
안녕하세요. 설명을 잘 해주셔서 강의를 끝까지 잘 듣게 되었습니다.ISMS인증기준 강의 마지막에 "모의고사 8회분"을 잘 풀어보라고 설명하셨는데, 모의고사 자료가 어디 있는지 못찾았아서 질문 올립니다. 자료 위치를 안내해주실수있는지요? 부탁드리겠습니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
csrf 토큰 생성 시점 및 방식에 대하여
강의 내용 중에 POST 와 같이 데이터를 변경하는 요청의 경우 csrf 토큰을 생성한다는 내용이 있는데 로그인 페이지 요청시 GET 으로 요청하는데 csrf 토큰이 input 태그에 포함되어 있는 걸로 보아 POST 와 같이 데이터틀 변경하는 요청의 경우 csrf 토큰을 생성하는 게 아니라 csrf 토큰을 검증하는 것이고, csrf 토큰은 모든 요청에 대해 반환해준다가 맞을까요? 또 csrf 토큰이 난수를 조합해 계속 변경해서 클라이언트에 반환한다고 들었는데제가 잘못 본 건지 모르겠지만 토큰을 디코딩할 때난수를 조합하는 코드를 보면 토큰의 길이로 난수를 만드는 것 같은데,토큰의 길이로 난수를 만든다고 하면토큰을 변하게 하지 않는 이상 인코딩된 토큰의 결과가 똑같을 것 같거든요. 그래서 세션당 고유 토큰 값은 똑같다고 한다면로그인 전에는 클라이언트에 반환하는 토큰이계속 바뀌고 (=익명 사용자 세션이니)로그인 이후에는 클라이언트에 반환하는 토큰이 일정한 게 아닐까 하는 물음이 생겼습니다.어느게 맞는 걸까요 ?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
기본 Configurer클래스의 갯수가 적게 보입니다.
안녕하세요. 강사님 실습을 하던 중 강의 17:00에 보이는 갯수와 달리3개밖에 안보입니다. 어떤 차이 때문에 11개가 보이지 않는 것인지 궁금합니다.
-
해결됨2025년 CPPG 개인정보관리사 자격증 취득하기 (개정안 반영)
GDPR 적용 예외 대상
제가 알고있는 사항이 맞는지 긴가민가하여 확인 차 질문남깁니다.영문으로 된 온라인 쇼핑몰에서 달러 결제(PAYPAL 등)로 상품을 구매한 EU 거주자가 존재한다면 GDPR 적용하여야 하는지요?2018년 당시 KISA 문의했을때 적용 범위가 아니다라고 했던거 같은데.. 지금도 이런 해석이 맞는지 모르겠습니다. 적용 범위가 아닌 이유 : EU 거주자를 대상으로 한 것이 아니기 때문
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
CSRF 통합 GIT 주소 오류
안녕하세요. 좋은 강의 감사드립니다.다만 강의자료에 CSRF 통합 챕터 깃 주소를 들어가면 아래와 같이 404 에러가 발생합니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
브랜치 주소가 표시되지 않습니다.
'각 강의 브랜치 주소는 챕터가 시작하는 화면 하단에 표시되어 있으니 참고하여 주시기 바랍니다.' 라고 하셨는데, 화면 하단에 어디에 있는지 모르겠습니다. 해당 화면에 대해서 스크롤도 안되고, 메모같은 것도 없어서 현재는 github 를 뒤지면서 보고 있는데, 명확한 가이드를 주실 수 있나요 ? 깃허브에 뒤져가면서 보더라도 숫자-내용basic-내용 형태의 브랜치들 밖에 없다보니 뭘 봐야할지 헷갈립니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
WebUtil 관련
WebUtil이 지원하지 않는거 같은데 맞을까요?(WebUtils만 보이네요)
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
@AuthenticationPrincipal AccountDto 관련
실제로 UserDetails를 구현하고 있는 건 "AccountContext" 이지 "AccountDTO"가 아니기 때문에, @AuthenticationPrincipal AccountDto accountDto를 하면 null이 반환될 수 있지 않나요?그래서 차라리 @AuthenticationPrincipal AccountContext accountContext를 해서 if (accountContext != null) { model.addAttribute("username", accountContext.getUsername()); } else { model.addAttribute("username", "비회원");}이렇게 하는게 더욱 올바른 방법이 아닌가요?
-
해결됨2025년 CPPG 개인정보관리사 자격증 취득하기 (개정안 반영)
핵심기본 개념서 관련 질문있습니다.
안녕하세요. 네이버에서 구매할 수 있는 핵심기본 개념서를 2024년 10월 30일(수) 구매 하였습니다. 해당 날짜에 구매한 파일이 최신본인지 문의 드립니다. 감사합니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
SecurityContextHolder 는 DTO 같은 개념일까요?
강의를 다시 복습하니, SecurityContextHolder 가 지연로딩을 해 주는 역할도 하지만 다른 필터에 SecurityContext를 전달하는 DTO 같은 역할을 하는 것 같다고 느꼈는데 선생님 생각은 어떠신가요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
9분 50초경 default 접근제어자의 이유
선생님 , 안녕하세요. 강의 잘듣고 있습니다!질문이 있어서 글남기게 됩니다! 이번 강의 9분 50초 정도에 AuthoriationManger 인터페이스는 접근제어자가 public으로 되어있는데, 하위 메서드인 verify는 접근제어자가 default로 되어있습니다! 위의 이유가 궁금합니다. AuthrozationManager 와 같은 패키지내의 클래스에서만 verify 메서드에 접근 가능하도록 제한을 두기 위한 것인지 아니면 다른 이유가 있는지 궁금합니다.답변 부탁드리겠습니다! 항상 좋은 강의 감사드립니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
DefaultHttpSecurityExpressionHandler 가 스프링 컨테이너를 필드값으로 가지는 이유가 뭔가요?
강의 중간 (18: 15)에 커스텀 ExpressionHandler를 만들기 위해 setApplicationContext() 로 스프링 컨테이너를 필드값으로 set 했는데 스프링 컨테이너가 필요한 이유가 무엇인지 궁금합니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
anonymousAuthenticationFilter 와 AuthorizationFilter 의 로직 순서
SecurityFilterChain 의 순서를 보면 AnonymousAuthenticationFilter 가 먼저이고 AuthorizationFilter 가 맨 마지막에 실행되는 것을 확인했습니다. Anonymous 강의에서 AnonymousAuthenticaionFilter는 authentication이 null 인 경우 AnonymousAuthenticaionToken을 생성하여 익명 사용자로 처리한고 Authentication이 null이 아닌 경우 doFilter()로 다음필터로 넘어간다고 하셨는데.오늘 강의를 보니 anonymousAuthenticationFilter 에는 authenticaion 이 있는지 확인을 하지 않고 authorizationFilter 에서 getContext().getAuthentication() 을 통해 유무를 확인후 없다면 다시 AnonymousAuthenticationFilter 를 통해 AnonymousAuthenticationToken을 생성시켜 할당하는 것 처럼 보이는데 맞을까요?즉 anonymousAuthenticationFilter doFilter() --> AuthorizationFilter getAuthentication() --> anonymousAuthenticationFilter에서 생성
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
InvalidUrl과 expiredUrl이 동시에 설정되있을때 Invalid가 우선되는 이유
강의를 듣다가 궁금해서 좀 찾아봤습니다(Perplxtiy에게 물어본거라 신뢰도가 100%는 아닙니다) 만료된 세션을 처리하려면 expiredUrl 설정이 필수여서 invalidUrl 설정 단독으로는 처리를 못한다고 합니다 그럼 2개가 다 설정되도 expiredUrl을 타는게 맞는것 같지만 Filter chain의 우선순위때문에 expiredUrl을 즉 만료된 세션을 invalidUrl로 간주하고 invalidUrl이 실행되는 것 같습니다
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
SecurityContext가 anonymous 를 판단하는 기준은 jsession 에 있을까요?
해당 강의를 학습하던 도중 indexController 의 다음 메서드가 어떻게 익명사용자인것을 알아채고 해당 토큰을 남기는 걸까 의문점이 생겨 질문을 남깁니다. @GetMapping("/anonymousContext") public String anonymousContext(@CurrentSecurityContext SecurityContext context) { return context.getAuthentication().getName(); } 해당의문을 해결하기 위해 localhost:8080/anonymousContext 가 호출될 때 서버는 어떤 과정을 거칠까 생각해보고 다음과 같은 결론을 냈습니다. 1. localhost:8080/anonymousContext 가 호출될 때, Authentication 이 null 값인 것을 확인한다2. AnonymousAuthenticationToken을 생성하여 SecurityContextHolder에 저장한다.3. Jsession이 없는 것을 확인하고 AnonymousAuthenticationToken이 저장된 SecurityContext를 파라미터로 넘긴다.4. 해당 포큰이 getName() 값이 출력된다.이러한 과정을 거칠거라 생각한 이유는 로그인 상태에서 localhost:8080/anonymousContext 를 호출하게 될 때, "user"라는 값이 출력되는 것을 확인했고 두 같은 요청값에 유일한 차이는 쿠키에 Jsession의 유무였기 때문입니다. SecurityContext가 anonymous 를 판단하는 기준이 제가 생각한 것과 같을까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
생성된 SecurityFilterChain 빈을 SecurityBuilder 에 저장하는 원리가 궁금합니다.
강의에서 SecurityBuilder를 통해 생성된 SecurityFilterChain 을 저장한다는 설명과 관련해서 어떤 코드가 실행하는지 분석을 나름 해보았는데요, 맞는지 확인받고 싶습니다. WebSecurityConfiguration 클래스에 springSecurityFilterChain() 메서드에 다음과 같은 코드가 있습니다.for(SecurityFilterChain securityFilterChain : this.securityFilterChains) { this.webSecurity.addSecurityFilterChainBuilder(() -> securityFilterChain); }해당 코드에서 addSecurityFilterChainBuilder() 메서드는 SecurityBuilder<O extends SecurityFilterChain> securityFilterChainBuilder 를 파라미터로 받고 있는데,해당 파라미터로 람다식을 이용해서 HttpSecurity에서 생성한 객체를 SecurityBuilder의 build() 메서드를 호출시 리턴할 수 있게 () -> securityFilterChain 했고 해당 람다식이 addSecurityFilterChainBuilder() 메서드로 인해 WebSecurity 필드인 securityFilterChainBuilders 에 저장이 되었습니다.저장된 람다식은 WebSecurity 에 performBuild() 메서드에 구현되어 있는 for(SecurityBuilder<? extends SecurityFilterChain> securityFilterChainBuilder : this.securityFilterChainBuilders) { SecurityFilterChain securityFilterChain = (SecurityFilterChain)securityFilterChainBuilder.build();다음과 같은 for 문에서 build() 메서드를 호출하면서 SecurityFilterChain 객체를 불러오게 됩니다. 다음과 같은 과정으로 SecurityBuilder 에 저장하고 꺼낼 수 있다고 이해했는데 맞을까요?
-
미해결CPPG 자격증 취득 과정 (2025년)
강의 내용 문의
개인정보 보호법 시행령 제48조의7 내용이 동영상 속 내용도 교재 내용 차이가 있는데 교재 중심으로 봐야 하나요??
-
미해결CPPG 자격증 취득 과정 (2025년)
강의 내용 문의
T2 동영상 첨부 자료 순서가 잘못 되었네요확인 후 다시 업로드 부탁 드립니다
주간 인기글
순위 정보를
불러오고 있어요