🚨 서비스 장애 발생 🙇🏻‍♀️ 🙇🏻

2020년 8월 5일 18시11분 부터 약 25분간 장애가 발생했습니다.
불편드려 죄송합니다. (자세히 보기)

스프링 시큐리티
스프링 시큐리티
수강정보
(45개의 수강평)
781명의 수강생
스킬태그 #Java, #Spring, #정보보안
3개월 할부시
월 29,333원88,000원
지식공유자 : 백기선
48회 수업 · 총 8시간 4분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 중급이상
tdrhktg 프로필

안녕하세요 postman csrf 토큰 질문있습니다. tdrhktg 3일 전
postman에 csrf 토큰을 추가할때는 어떻게 해야하나요??

1
안병찬 프로필

비동기 질문 안병찬 23일 전
앞전영상에서는 MODE_INHERITABLETHREADLOCAL 로 시큐리티 컨텍스트 홀더의 전략을 바꾸지 않더라도 서로다른 스레드 내에서 시큐리티 컨텍스트가 공유되었습니다.  어떤 차이가 있는건가요?? 앞 영상에서도 메인 스레드와 메인스레드로부터 파생된 스레드인 것 같았는데..

1
안병찬 프로필

DelegatingFilterProxy 질문 있습니다. 안병찬 24일 전
서블릿 컨테이너에 등록되는 필터는 DelegatingFilterProxy  하나이고 해당 필터내 호출되는 filterChainProxy 및 여타 filter들은 servlet의 filter 인터페이스를 구현한 것 뿐 스프링에 등록된 필터라고 하셨는데 그럼 서블릿 컨테이너에는 DelegatingFilterProxy  하나만 등록되어있고 filter 호출 시 applicationContext내 filterChainProxy 를 호출해서 security처리를 하는건가요?? 제가 이해 한게 맞는지 궁금합니다. 좋은 강의 감사합니다.

1
안병찬 프로필

인증정보 저장 관련 궁금증 안병찬 1달 전
UserNamePasswordFilter에서 인증하고나서  persistenceFilter에서 session에 context를 저장한뒤 이를다시 가져와 사용한다고 하셨는데 이때 ThreadLocal에 SecurityContextHolder가 저장이 되는건가요??? 그리고 두번째 궁금한점은 was의 경우 요청마다 스레드를 생성하고 요청을 처리해준다고 알고 있는데 그럼 요청마다  ThreadLocal에 SecurityContextHolder를 저장하게 되는건가요?? 좋은강의 감사합니다

1
양동우 프로필

principal에 대해 궁금한점이 있어서 질문 올립니다. 양동우 1달 전
안녕하세요 강의를 보고 있는 학생입니다. Authentication에 좀더 알아보고 싶어서 따로 블로그를 찾아보다가 Authentication에는 principal과 credential데이터를 넣는다고 설명이 되어 있더라고 principal에는 사용자 정보(id)를 저장을 하고 credential에는 패스워드를 저장한다 요렇게 나와있었는데 강의에서는 principal내부에 id와 password를 한번에 저장한다고 말씀하셔서 이해가 잘 가지 않아 질문 올립니다. 항상 좋은 강의 만들어 주셔서 감사합니다!!!

1
양동우 프로필

질문이 있습니다. 양동우 1달 전
안녕하세요 강의를 시청하고 있는 학생입니다. createUser()메소드 앞에 this를 붙이셨는데 왜 붙이셨는지 잘 이해가 가질 않습니다. 혹시 설명을 부탁드려도 되겠습니까?? 항상 좋은 강의 만들어주셔서 감사합니다.ㅎㅎ

1
이호석 프로필

loginPage설정 시 AntPathMatcher 패턴으로 설정 가능한지 궁급합니다~! 이호석 2달 전
안녕하세요! 요즘 강의를 보며 스프링시큐리티 공부를 하고 실무에 적용해보고 있습니다. 그런데 궁금한것이 있는데  아래와 같이 loginPage 설정 시 AntPathMatcher 패턴으로는 설정 할 수 없는건가요? .formLogin() .loginPage("/test/*/main.do") 로그인 페이지를 @PathVariable을 이용하여 유동적으로 설정해야 해서요 예를들어 "/test/apple/login.do", "/test/grape/login.do",  "/test/banana/login.do",  이런식으로 유동적으로 가져가야합니다 ㅠㅠ  혹시 해당 패턴형식으로 설정해도 괜찮을까요? 

2
Hafthor Wheels 프로필

커스텀 필터 관련 질문드립니다. Hafthor Wheels 2달 전
안녕하세요 백기선 강사님, 훌륭한 강의 감사합니다! 예전에 완강했던 스프링 시큐리티 강의를 복습하며 인증을 만드는 중에 궁금한것이 있어 문의드립니다. 강의내용과는 직접적인 관계가 없는 질문을 드리는 점 죄송합니다.  jwt 토큰을 인증하는 필터를 따로 구현했는데요, 만약 프론트에서 제출한 access token이 만료되지 않았을 경우 jwt 인증 필터에서 response에 갱신된 토큰을 만들어서 넣어주고 싶습니다.  단순히 커스텀  jwt 필터에서 response.getWriter() 로 넣어주거나 response.setHeader(key, value)로 넣어주니 프론트에서 받은 response의 header에선 아무리해도 찾을 수가 없었습니다. 여기서 제가 궁금한 것은 1. 이렇게 하는 것이 올바른 방법일까요? 토큰 갱신 로직을 필터에서 넣어줘야하는지, 아니면 aop 같은걸 사용하여 모든 api 의 response header에 넣어줘야 하는 것인지.. 아니면 따로 토큰을 재발급해주는 api를 만들어 보통의 api 호출 후 바로 불러서 갱신해야할지 감이 안잡힙니다. 이 경우 일반적인 접근방법은 무엇인지 궁금합니다..! 2. 만약 이렇게 하는 것이 괜찮은 방법 중 하나라면, response에 어떻게 추가하는 것이 좋을까요? http://tutorials.jenkov.com/java-servlets/httpresponse.html#headers 에 따르면 header는 모든 데이터가 쓰이기 전에 입력되어야 한다고 하는데, 그 시점을 찾아서 어떻게든 추가하는것이 맞을까요?

2
Henu 프로필

RemeberMeAuthenticationFilter와 SessionManagementFilter의 관계에 대한 질문입니다. Henu 2달 전
안녕하세요. Spring Security RememberMeAuthenticationFilter 강의를 들으며 예제 코드를 따라하다가 궁금한 사항이 생겨 글을 남깁니다. 로그인 페이지를 통해 Remember Me 기능을 사용할 때 처음 로그인 후 JSESSIONID와 remeber-me 쿠기가 발급된 것을 확인하고 JSESSIONID를 소멸시킨 뒤 "/dashboard(인증된 사용자만 접근 가능)" URL을 요청하면 remember-me 쿠키가 있으므로RememberMeAuthenticationFilter을 통해 새로운 토큰(RememberMeAuthenticationToken)을 발급 받고 정상적으로 접근이 가능할 것 같았지만 그렇지 않았습니다. => 로그인 후 "/dashboard" 접근 --> JSESSIONID 제거 --> 새로고침 시 인가 실패 ERROR 페이지 전환 --> 다시 새로고침시 "/dashboard" 접근 이유를 살펴보니 아래 첨부된 이미지와 같이 SessionManagementFilter에서 제공하는 동시성 제어 기능(maxSessionsPreventsLogin(true))을 사용하면 위와 같은 문제가 발생하는 것 같아 보였습니다. [이미지에서는 maxSessionsPreventsLogin(false)로 나와 있지만 테스트 중에는 "true" 인자를 넘겨줬습니다.] 동시성 제어란 세션 수를 설정하거나, 기존 세션을 만료하지 않고, 새로운 세션에 대해 접근하지 못하도록 설정하는 기능으로 알고 있는데요. 이 기능이 Remember Me 기능과 어떤 연관이 있는지 궁금합니다. 또한 Remember Me 기능과 별개의 문제로 SessionManagementFilter에서 maxSessionsPreventsLogin(true)를 설정하고 "로그인 -> 로그아웃 -> 로그인 재시도"시 인증이 실패됩니다. 추측을 해보자면 Remember Me 기능을 사용해서 JSESSIONID를 한번 제거하고,  remember-me 쿠키를 통해 새로운 SESSION를 생성하는 것과 로그아웃 후 다시 로그인하여 새로운 SESSION을 생성하는 것이 SessionManagementFilter의 "동시성 제어" 규칙에 어긋나기 때문에 인증이 실패한다라고 생각하면 될까요? [GitHub code link] https://github.com/wdEffort/std-spring-security/blob/master/src/main/java/me/henu/stdspringsecurity/config/SecurityConfig.java

2
Henu 프로필

AccessDeniedHandler를 직접 구현하여 인가 예외 처리에 대한 질문입니다. Henu 2달 전
안녕하세요 Spring Security ExceptionTranslationFilter 강의 09:00 부터 진행하는 내용을 듣고 질문사항이 생겨  글을 남깁니다. 인증/인가 예외 처리 필터인 ExceptionTranslationFilter 기능 중 AccessDeniedException(인가 처리 실패 예외)에 대해  예외를 처리할 수 있는 페이지를 설정하는 방법과, AccessDeniedHandler를 직접 구현해서 사용하는 방법이 있었는데요. accessDeniedHandler() 메소드를 사용하지 않고 accessDeniedPage() 메소드를 사용하여 URL을 지정하고, Controller와 HandlerMethod를 구현하였습니다. 이때 HandlerMethod의 인자로 Principal 객체, Model 객체 외 HttpServletRequest 객체를 넘겨 받아 AccessDeniedHandler를 직접 구현한 것과 마찬가지로 "로그 출력", "VIEW에서 인증된 사용자 정보와 함께 에러 메시지 출력"을 하였는데요. 이렇게만 본다면 AccessDeniedHandler를 직접 구현하는 것과 예외를 처리할 수 있는 페이지를 설정하여 HandlerMethod에서 처리하는 것의 차이가 없어 보였습니다. AccessDeniedHandler를 직접 구현하여 얻을 수 있는 추가적인 장점이 있을까요? 미리 답변 감사드립니다.

1
mingi.kang 프로필

favicon 요청시 리다이렉트 mingi.kang 3달 전
@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() .anyRequest().authenticated(); http.formLogin(); http.httpBasic(); } } SecurityConfig 설정파일입니다. localhost:8080 으로 들어갈 때 favicon도 같이 요청하는데 favicon은 인증이 필요하기 때문에login도 요청하는데요. 이 시점에 화면이 index.html입니다.favicon으로 인해 login을 요청했기 때문에 login 페이지를 보여줘야 하는거 아닌가요? "/" 요청이 permitAll 이라서 일단 "/" 요청에 대한 응답이 나가고 favicon 요청으로 인한 login 페이지는 무시되는건가요?

2
조호형 프로필

formLogin() 과 oauth2Login() 를 같이 사용 못하나요? 조호형 3달 전
로그인 페이지를, 기본 폼 로그인이 가능한 상태에서 oauth2 로그인(페이스북, 구글로그인 등)도 같이 되도록 구성하고 싶은데,  configure에 formLogin() 과 oauth2Login() 을 동시에 설정을 못하네요? 질문을 이렇게 드려도 되는진 모르겠는데, 스프링 시큐리티를 이용하면서 아이디/패스워드 로그인과 소셜로그인도 가능하게 하려면 어떻게 해야 하나요?

2
김태수 프로필

Principal 관련 질문 김태수 5달 전
먼저 좋은 강의 감사합니다. 스프링 시큐리티 이해에 있어 큰 도움이 되었습니다. :) OAuth을 사용한 구글로그인 관련 내용은 강의 범위에 없어서 혹시 질문이 부적절하면 답변 안해주셔도 됩니다. OAuth 구글로그인을 이용한 기능을 추가하였는데 기존 formLogin을 사용하여 로그인을 하면 Principal이 `UserDetails`이고 OAuth를 사용하여 로그인을 하면 Principal이 `DefaultOidcUser`입니다. OAuth를 추가하기 전 코드들이 UserDetails로 맞춰 코딩하여 Principal이 `DefaultOidcUser` 일 때 캐스팅 오류가 발생합니다. 이 경우 formLogin과 OAuth를 사용한 로그인을 통합으로 관리하고 싶다면 어떻게 해야하는지 궁금합니다. 감사합니다.

2
정윤성 프로필

favicon.ico request여부 정윤성 5달 전
request시 favicon.ico가 처음에는 생성됐었다가 AccessDecisionManager부분을 커스터마이징한뒤 다시테스트한 순간부터 자기혼자안뜨네요 따로 ignoring처리도 안해주었는데.. 이게 별거아닌 문제지만 그냥 궁금해서 여쭈어봅니다 정리)처음에는 favicon.ico 떳었다 -> 코드수정후 다시테스트 -> ignoring처리도 안해줬는데 favicon.ico가 안뜬다

3
Bpone 프로필

시큐리티 필터는 어떻게해서 스프링 빈을 주입받을 수 있나요? Bpone 5달 전
시큐리티 공부하다가 아무리 찾아도 해소가 되지 않는 궁금증이 있어서 질문드립니다. AuthenticationFilter 과정 중 UserDetailsService 를 이용해서 유저 정보를 가져오는 과정이 있다고 들었습니다. 그리고 UserDetailsService 는 유저 정보를 가져오기 위해 AccountRepository 를 Autowired 해서 가지고 있습니다. 그런데 제가 알고 있기로, 스프링에서 Filter 의 동작은 스프링 컨텍스트에 해당하지 않아 스프링 빈을 주입받지 못하는 것으로 알고 있습니다. 그렇다면 AuthenticationFilter 는 어떻게해서 스프링 컨텍스트에 접근해서 Bean 을 가져와 주입을 받을 수 있는 건가요? 서블릿 필터와 스프링 필터와 시큐리티 필터는 전부 다른건가요? 만약 그렇다면 동작의 순서가 어떻게 되는 건가요?

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스