본문 바로가기

분류 전체보기

(135)
SpringSecurity(AnonymousAuthenticationFilter) SpringSecurity에서 AnonymousAuthenticationFilter는 뭘까? 뭔가 어나니머스 하니까 음모론이 생각난다 ㅋㅋ AnonymousAuthenticationFilter는 하는일은 많치가 않다 하지만 존재하는이유는 존재 있기 때문에 공부해본다! ​ 예시를 들자면 어떤 사용자가 인증을 받게되면 세션에 인증을 받은 유저 객체를 저장한다 그다음에 이 사용자가 서버자원에 접근할려고 하면 세션에서 저장된 유저 객체가 존재하는지 안하는지 여부를 판단한다 만약에 존재하지 않는다면 인증 받지 않은 사용자라고 인식하여 서버자원에 접근할수 없게 한다 반대로 유저 객체가 존재한다면 서버자원에 접근할수 있도록 처리한다. 이개념음 앞에서 말한 AuthenticationFilter와 AnonymousAut..
SpringSecurity(RemeberMe) ​ 사용자의 세션이 만료 되었거나 더이상 세션안에서 시큐리티 컨텍스트를 찾지 못하고 존재하지 않으면 이말은 즉, 인증객체가 없는경우 RememberAuthenticationFIlter가 호출된다! 자 그러면 인증 객체는 어디 있을까? SecurityContext! 에 저장되어 진다. ​ 만약 Authentication(인증객체)Null 이 아니라면 RememberAuthenticationFIlter가호출이 안된다! 왜냐면 이미 Authentication(인증객체)가 이미 인증을 받았고 인증객체가 존재하기 때문에 다시 인증을 받을 필요가 없기때문이다! ​ RememberMe는 TimeOut에 경우에 해당되기 때문에 Session이 만료되었거나 현재 사용중인 브라우저가 종료되었거나 세션이 더이상 활성화 되지..
SpringSecurity(Logout),LogoutFilter 스프링 시큐리티 로그아웃 처리 과정을 간단하게 살펴 보고 넘어가자! 클라이언트가 로그아웃 요청을 하면 스프링 시큐리티가 요청을 받고 로그아웃 처리를 하게 되는데 세션 무효화 인증토큰 삭제 , 쿠키정보 삭제, 로그인 페이지로 리다이렉트 하게끔 되어 있다. .addLogoutHandler(logoutHandler()) 요놈을 잠깐 설명하고 넘어가자 ! 이놈은 스프링시큐리티 에서 기본적으로 제공하는 로그아웃 핸들러 인데 실제로 세션을 무효화 하고 인증토큰을 삭제하고 별도의 어떤 처리를 하고 싶을때 로그아웃 핸들러를 인터페이스로 구현 해서 작업한 내용들을 처리 할수도 있다. ​ .logoutSuccessHandler(logoutSuccessHandler()) 로그아웃 성공했을때 후속 작업을 할수 있도록 한다 이..
SpringSecurity(LoginForm)인증 로그인 인증에 대하여 한번 알아보자 ! 출처: 스프링 시큐리티(인프런) 1.사용자가 인증을 시도하게 되면 UsernamePasswordAuthenticationFilter 요청을 받게 된다. ​ 2.AntPathRequestMatcher(/login) 현재 사용자가 url 요청 정보를 확인하고 로그인으로 요청 정보 url이 로그인으로 시작되는지 확인한다 기본값이 login 이다 실패 하게되면 chain.doFilter 여기로 흘러가게 된다 ​ 3.Authentication (Username + Password) 객체를 만들어서 객체안에 로그인할때 입력한 정보들을 저장해서 실질적으로 인증처리를 맞기는 역활을 한다 인증처리를 하기전에 하는 일을 여기서 한다 ​ 4.AuthenticationManager 여기..
SpringSecurity(보안기능구현) 현재 보안기능은 작동하지만 계정이 하나 밖에 없고 권한도 현재 시스템에는 추가되거나 변경되는게 없다 해커의 칩입해 대비 할수 있는 보안옵션이 없다. 지금 나의 보안시스템은 그냥 .. 최소한의 보안시스템?? 이다.ㅋㅋ 이제 개선 해나가보려고 한다! WebSecurityConfigurarAdapter 이클래스는 핵심적인 클래스다 스프링 시큐리티에 웹보안의 기능을 초기화하고 설정하는 클래스이다. 의존성을 추가할때 스프링시큐리티가 보안기능이 활성화 하게끔 하는 클래스이다. ​ HttSecurity 이클래스는 세부적인 보안 기능을 설정할수 있는 api제공 두개의 클래스가 의존성을 추가 했을때 가장 기본적인 웹보안 기능을 추가하고 작동하게 하는 클래스이다. ​ ​ 자 이제 SecurityConfig를 만들어 볼예정..
SpringSecurity(시작!) 시큐리티를 적용해서 해볼려고한다.. 나역시 시큐리티를 국비지원을 통해 경험해봤지만.. 전혀 모르겠다.. 그래서 다시 공부하기위해 남겨본다! ​ ​ 스펙은 아래와 같다 시큐리티를 적용함으로서 변경되는 인증방식과 접근 방식이 달라 진다 1. 모든 요청은 인증이 되어야 자원이 접근이 가능하다. 2.인증 방식은 폼 로그인 방식과 httpBasic 로그인 방식을 제공한다 3.기본 로그인 페이지 제공한다 4.기본 계정 한개 제공한다 ​ 문제점 또한 있다 1.계정을 추가 할때 권한 추가 ,DB연동 2.기본적인 보안 기능외에 시스템에서 필요로 하는 더 세부적이고 추가적인 보안기능이 필요하다. ​ 자 이제 시작이다!!! ​ 시큐리티를 적용하기전 localhost로 접근하면
SpringSecurity(FormLogin) 폼 로그인 인증 을 알아보자!! 대표사진 삭제 출처: 스프링 시큐리티 (인프런) 먼저 사용자가 get방식으로 home url로 자원을 접근할려고 한다 인증된 사용자만 가능하다고 보안이 되어 있다. 현재 사용자가 인증을 받지 않으면 바로 로그인 페이지로 이동한다 그러면 유저가 이름과 패스워드를 입력해서 Post 방식으로 처리를 할것이다. 서버에서는 Security가 Session을 생성하고 인증토큰 을 생성하고 저장한다. SecurityContext를 생성하고 저정하는 방식이다 이거는 추후에 공부하여 다시 올리도록 하겠다. 인증을 받은 이후에 클라이언트가 홈 url로 자원을 접근하면 Security가 인증토큰의 존재여부를 판단하고 사용자가 인증토근을 이용하요 해당 자원을접근할수 있고 Security가 유자..