본문 바로가기
반응형

분류 전체보기714

TIL_211013 1. Facts(사실, 객관) - 스프링 시큐리티 RememberMe PersistenceTokenBased 수강 및 정리 2. Feelings(느낌, 주관) - 지난시간 TokenBased에 이어서 Persistence RememberMe 토큰을 공부했습니다. 이전에 TokenBased의 단점을 보완하여 나온 것입니다. 단순히 이게 더 좋으니까 이걸 사용해야돼! 개념으로 가지 않습니다. 왜 이전에 방식이 위험했는지, 어떻게 보완되었는지 그 흐름을 알고 차이점을 말할 수 있는게 중요하다고 생각됩니다. 물론 100% 완벽이라는 것은 없습니다. 하지만 Persistence 방식을 사용하면 탈취당하더라도, 기존 사용자가 세션만료 후 다시 RememberMe로 접근하면 토큰이 최신화되기 때문에 안전하답니다 3... 2021. 10. 14.
패스트캠퍼스 챌린지 최종 후기( AWS/Docker 클라우드 ) 30일동안 패스트캠퍼스 AWS/Docker 클라우드 수업을 완강했습니다 :) * 챌린지 신청 이유 챌린지를 신청한 이유는 혼자서 강의듣고 공부하면 굉장히 지루하고 힘들것이라는 생각에 강력한 동기부여를 주기 위해서였습니다. 아무래도 낯설고 모르는 내용을 혼자서 보면 중간에 집중력도 떨어지고 흥미도 떨어질거라고 생각했습니다. 또, 평소 AWS/DOCKER에 관심이 많았는데 쉽게 접하지 못하는 내용들을 배울 수 있다는 생각이 들었습니다. 그래서 1달동안 강의를 정주행해서 끝내기 위해, 열심히 공부한 내용을 다시 기록하고 돌아보기 위해서 챌린지를 신청했고 매일 꾸준히 학습을 한 결과로 무사히 마칠 수 있었습니다. * 강의 구성 크게 2파트로 나누어져 있습니다. [AWS & Docker를 활용한 DevOps 구축.. 2021. 10. 13.
TIL_211012 1. Facts(사실, 객관) - 스프링 시큐리티 RememberMe TokenBased 수강 및 정리 2. Feelings(느낌, 주관) - 그동안 계속 묻어두고 열어보지 않았던 RememberMe를 공부했습니다. RememberMe는 아이디를 기억하는 것으로, 그 과정이 굉장히 복잡할 것이라는 선입견이 있었습니다. 그런데, 기존에 로그인과정과 토큰 종류를 공부하고 나니, 생각보다 도전에 자신감이 생겼습니다. 평소에 intellij를 이용해서 개발을 하는데, 정말 디버깅을 이렇게 열심히 찍어본 적이 처음입니다. 내부의 구현로직을 알기위해서 계속 디버깅으로 검사해나갔습니다. (또한 단순히 기술을 사용하지 않고 내부의 구현을 뜯어보면서 공부하니 훨씬 기억에 남습니다. ) 어찌보면 디버깅을 이제서야 이렇게 .. 2021. 10. 13.
RememberMe OAUTH2나 JWT는 큰 규모의 프로젝트이므로 메모리 그리드 방식의 세션을 유지하는 방법, 로그인 유지 방법을 고려해야 한다. 이번에 정리한 RememberMe 는 세션을 이용하여 인증할텐대, 먼저 스프링에서 세션을 유지하는 필터 2개를 알아본다. * 목차 스프링에서 세션 유지하는 필터 2개 SecurityContextPersistentFilter RememberMeAuthenticationFilter TokenBasedRememberMeServices 실습 loadUserByUsername() 구현방식 PersistentTokenBasedRememberMeServices 실습 * 스프링에서 세션 유지하는 필터 2개 스프링 시큐리티는 통행증인 Authentication을 발급해주면, 통행증을 보고 권한.. 2021. 10. 12.
TIL_211011 1. Facts(사실, 객관) - 스프링 시큐리티 UserDetailsService 강의 및 정리 2. Feelings(느낌, 주관) 기존에 사용했던 인메모리방식의 계정 생성에서 실제로 DB를 연동한 UserDetailsService를 이용한 계정 조회로 개선하였습니다. 초기 간단한 구조부터 점점 복잡한, 실무에서 사용하는 방식으로 확장하는 재미가 있었습니다. 이전에는 단순히 UserDetailsService를 구현해야한다! 라는 것만 알고 있었는데 개념을 정리하다보니 구현해야하기까지 오는 과정이 다 이유가 있음을 알게되었습니다. 해당 과정을 코드로 직접 타이핑하면서 정리하니 훨씬 이해가 잘 되었습니다. 3. Findings (배운 점) - 스프링 시큐리티 UserDetailsService https:/.. 2021. 10. 12.
UserDetailsService 이전까지는 모두 계정을 인메모리에서 사용했지만, 실무에서는 DB에서 계정 정보를 가져온다. 따라서 실제로 스프링 시큐리티를 써서 서비스를 만든다고 하면, 개발자들은 UserDetails를 구현한 User 객체와 UserDeatilsService부터 만든다. 왜냐하면, UserDetailsService와 UserDeatils 구현체만 구현하면 스프링 시큐리티가 나머지는 쉽게 쓸 수 있도록 대부분 설정해주기 때문이다. 추후 Student를 UserDetails 구현체로, StudentManager를 UserDetailsService 구현체로 개선한다. (UsernamePasswordAuthenticationToken => UsernamePasswordAuthenticationFilter 오타수정) Usern.. 2021. 10. 11.
BaiscToken으로 웹/모바일 로그인 인증 구현하기 실무에서 JWT 토큰 인증 구현이 가장 일반적이지만, 웹으로 만든 사이트를 모바일에서 하이브리드 형식으로 빠른 제공을 하고 싶다면 BasicToken을 사용하고 session을 이용하면 된다. *모바일에서 MultiChainProxy 구성하기 MobileSecurityConfig에서 BasicAuthenticationFilter 방식을 사용하는데, 이는 UsernamePasswordAuthentication 으로 검사하여 해당 토큰을 인증제공자(AuthenticationProvider)에게 준다. SecurityConfig에서 CustomLoginFilter를 사용하는데 CustomLoginFilter는 Student와 Teacher의 토큰을 인증하기 위해 각각 StudentAuthentication 토.. 2021. 10. 11.
BasicAuthentication 인증 *사용하는 경우 - SPA페이지(react, vue...) - 브라우저 기반의 모바일 앱(브라우저 기반의 앱, ex:inoic) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .httpBasic(); } } * BasicAuthenticationFilter 흐름 * 동작 방식 1. GET 방식으로 /greeting을 요청했을 때, headers에 Authorization에 토큰을 Basic으로 보낸다. 2. client의 요청이DispatcherServlet으로 가기 전에 필터에서 request.. 2021. 10. 11.
TIL_211010 1. Facts(사실, 객관) - 스프링 시큐리티 BasicAuthentication 강의 및 정리 2. Feelings(느낌, 주관) 이전에 배운 UsernamePasswordAuthentication과 또다른 BasicAuthentication이라는 토큰인증 방식을 공부했습니다. 단순히 form 로그인 방식이 아닌 SPA에서 사용할 때 유용하며 header에 정보가 추가된다는 것들을 이전과 비교하면서 학습 할 수 있어서 좋았습니다. 결국 많은 기능들은 필요에 따라서 계속 발전하고 새롭게 나온다는 생각이 들었습니다. 내부 구현을 확인하는 과정이 쉽지 않았지만 차근차근 디버깅을 따라가면서 확인하니, 그냥 지나쳤으면 깊게 알지 못할 내용들을 알 수 있어서 좋았습니다. 3. Findings (배운 점) - .. 2021. 10. 11.
반응형