스프링 시큐리티는 처음이라 기존 Jpa를 포스팅 하는것처럼 많은 생략은 없을 예정이다. 스프링 시큐리티 세션 기반의 예제로 사용자 정보는 서버에서 보관하고 필요한 경우에 설정을 통해서 제어하도록 구성한다. 기본설정에 추가를 해준다. 설정을 끝내준뒤 RUN을 하면
가장 먼저 필요한설정은 PasswordEncorer 라는 객체이다. 간단히 말하면 비밀번호를 암호화 시켜주는것이다. PasswordEncorer는 인터페이스라 구현을 하던 구현한 클래스를 이용해야 한다. 고맙게도 스프링 시큐리티에서는 BCryptPasswordEnco
스프링 시큐리티는 기본적으로 CSRF(크로스 사이트 요청 위조) 라는 공격을 방어하기 위해서 임의의 값을 만들어서 이를 GET방식을 제외한 모든 요청방식(POST,PUT,DELETE)등에 포함시켜야만 정상적인 동작이 가능하다.서버에서 받아들이는 요청을 해석하고 처리할때
스프링 시큐리티를 적용하기 위해서는 당연히 이에 맞는 데이버테이스 관련 처리도 필요하다.예제는 저번에 사용했던 BaseEntity와 이메일을 아이디로 구성해서 회원 엔티티를 만들어준다.기본세팅은 이러하다.이번 예제에서는 회원 한명이 여러 권한을 가진다는 설정이다.clu
이전에 spring security를 공부한적 있지만 계속 진행되지 않고 방치만 하고 있다가.... 벌써 했던것도 많이 잊어버렸고 해서 아예 처음부터 체계적으로 다시 하는중이다! SpringSecurity SpringSecurity 를 디펜던시에 추가하면 어느정도
말그대로 세션이 동시에 일어났을떄 처리 과정이다크게 두가지로 나눌수있다. \-최대 세션을 1개로 설정해 놓을경우, 사용자가 로그인을 하고(세션저장) 사용자 2가 또 인증을 시도할경우 이전사용자 세션을 만료시키는 경우\-인증이 된상태에서(세션저장) 사용자2의 인증을 실패
Authentication Flow 인증 절차를 정리 AuthenticationProvider 에 username 과 password 를 담은 Authentication 객체가 들어오면 provider가 username 검증을위헤 loadUserByUserNam
처음 springSecurity 초기화 1.우리가 만든 filters 들을 wbSecurity로 보낸다. 그리고 fitlerChainProxy에 우리가 만든 fiters들을 전달 filters ->webSecurity ->filterChainProxy filter
DB에 저장시 비밀번호가 그대로 노출되는 문제 떄문에 그것을 방지하고자 나온 방법이다. 말그대로 비밀번호를 암호화 해서 저장해준다.PasswordEncorder 는 인터페이스다DelegatingPasswordEncoder 는 암호화 방식의 유형(알고리즘),해당 패스워드
WebAuthenticationDetails/ AuthenticationDetailsSource 클라이언트가 userName이나 password외에 또다른 추가정보를 보낼때 그것을 저장하는 방법이다. **AuthenticationDetailsSource에 의해 we
순서는 form 인증 방식과 거의 흡사하다. Filter 에서 요청 받고 -> autehnticationManager가 인증정보 넘기고 ->AuthenticationProvider -> authentication manager -> filter ->handlerAja
저번까지 form인증 방법과 Ajax인증 방법을 알아봤다.이번에는 '인가프로세스 DB연동' 방법을 알아보자 스프링 시큐리티가 인가 처리를 하기위해 필요한 조건1.인증정보2.요청정보3.권한정보 과정은 예전에 하던 방식과 비슷하다. FilterSecurityInterc
저번 시간에는 metadataSource 인터페이스를 구현하여 FilterSecurityInterceptor를 커스터마이징 하였다.권한 추출은 저번시간에 했으니 이번 시간에는 URL정보와,권한정보를 map형태로 저장하는 코드를 구현해보자.DB로부터 얻은 자원정보/권한
인가처리 실시간 반영하기 requestMap에 있는 권한정보들을 관리자가 업데이트하면 실시간으로 반영할수있도록 만들어보자 ![](https://images.velog.io/images/wnsqud70/post/1034a8d0-04c1-4576-8d03-4efabd9
저번 시간까지 방식으로 인가 URL 프로세스를 구성 했다면 이번 시간부터는 메소드 방식으로 인가프로세스 DB연동을 구성해 볼것이다.애노테이션으로 구성하는방법과 웹 기반으로 구성하는 방법이 있다.애노테이션 방법 부터 살펴보자. @PreAuthorize =말 그대로 메
저번 시간에 method인가 처리 방식에 대해 배웠다. 그럼 이번시간에는 method방식이 초기화시 어떻게 동작하는지 알아보자초기화시 proxyCreater란 녀석이 모든 빈들을 검사한다. 그 중에 보안과 관련된 설정이 있는 메서드들을 찾아낸다.그 메서드들의 가짜 객체
기본적 구현이 완성 되있고 DB로부터 자원과 권한정보를 매핑한 데이터를 전달하면 알아서 메서드 방식의 인가처리가 이루어지는 클래스 Url 인가처리 방식과 매우 흡사하지만 다른점은 이것은 AOP방식이라는 점interceptor(Advice인가처리) 에서 권한요청을 Map
권한정보 설정시 자원에 포인트컷 표현식을 사용할수 있도록 지원하는 클래스이 방법을 사용하면 빈 검사시 포인트 표현식과 매칭되는 클래스, 메소드, 권한정보를 MapBased에 전달한다. 그 이후 과정은 똑같다. 프록시 생성해주고 advice설정하고이전 방식과 매우 흡사하
JWT 에 대해 배워보기전에 세션에 대해 간단하게 알아보자 세션 클라이언트가 id,password로 로그인을 시도해 인증이 성공하면 서버는 권한 등 기본적인 데이터를 서버에 저장하고 세션id를 쿠키에 담아 클라이언트에게 돌려준다. 다음에 클라이언트가 리퀘스트를 쿠