인증 API - 동시 세션 제어 동시 세션 제어란? 동일한 계정으로 인증을 받을 때 생성되는 세션의 허용 개수가 초과되는 경우에 어떻게 세션을 유지하는 것에 대한 제어를 말한다. 최대 세션 허용 개수가 1개라고 가정 (1) 이전 사용자 세션 만료 사용자 1이 로그인하고 서버에서 인증 성공 세션 생성 사용자 2가 로그인하면 이전 사용자였던 사용자1의 세션을 만료시킴 (2) 현재 사용자 인증 실패 사용자 1이 로그인하고 서버에서 인증 성공 세션 생성 사용자 2가 로그인 하려고하면 인증 예외가 발생 @Override protected void configure(HttpSecurity http) throws Exception { //동시 세션 제어 http .sessionManagement() .maximumS..
AnonymousAuthenticationFilter 익명 사용자를 위한 필터 처음 강의를 들을때 부터 익명 사용자? 이게 왜 필요한거지 하면서 들었던 기억이 난다. 이 필터가 하는 일은 많지는 않다. 보통 사용자가 인증을 받게되면 세션에 인증을 받은 유저 객체를 저장하고 다시금 사용자가 페이지에 접근하게되면 세션에 유저 객체가 null이 아니면 인증을 받은 사용자라고 하고 null이면 인증을 받지 않은 사용자라고 한다. AnonymousAuthenticationFilter는 익명사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용 클라이언트가 request 요청이 들어오면 인증객체가 있는지 SecurityContext 에서 확인한다. 만약 있다면 다음 필터로 넘어가고 아니라면 익명사용자용 인증객체..
인증 API - Remember Me 인증과 RememberMeAuthenticationFilter Remember Me 기능이란? 쇼핑몰 같은 사이트 들어가 보면 자동 로그인 또는 사용자 아이디 기억하기 이런 기능과 유사한 기능이라고 생각하면 된다. 사용자는 요청시에 Http Header에 Remember me 토큰을 보낸다. (1) 세션이 만료되고 웹 브라우저가 종료된 후에도 애플리케이션이 사용자를 기억하는 기능이다. (2) Remember Me 쿠키에 대한 Http 요청을 확인한 후 토큰 기반 인증을 사용해 유효성을 검사하고 토큰이 검증되면 사용자는 로그인된다. tokenValiditySeconds는 토큰의 만료시간을 지정해줄 수 있다. 기본은 14일이다. user계정을 rememberMe 인증 시..
인증 API - Logout 클라이언트가 서버에 로그아웃을 요청을 보내면 서버는 세션을 무효화시키고 인증 토큰을 삭제 시킨다. 이때 인증 토큰이 저장되어있는 SecurityContext 객체도 삭제한다. 쿠키정보도 삭제할 수 있고 로그아웃 이후에 리다이렉트 할 페이지를 지정할 수도 있다. @Override protected void configure(HttpSecurity http) throws Exception { //로그아웃 http .logout() .logoutUrl("/logout") .logoutSuccessUrl("/login") .addLogoutHandler((request, response, authentication) -> { HttpSession session = request.ge..
옛날 어딘가에 정리했었던거 옮김. Bootstrap Modal을 쉽게 사용하게 해주는 BootBox.js 예제 Bootbox.js 소개 Bootbox.js는 필요한 DOM 요소 또는 JS 이벤트 핸들러를 생성, 관리 또는 제거하는 것에 대해 걱정할 필요없이 부트 스트랩 모달을 사용하여 프로그래밍 방식 대화 상자를 만들 수있는 작은 JavaScript 라이브러리이다. 공식사이트 Bootbox.js 사용방법 CDN https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js 다운로드 위의 공식사이트에가서 다운로드 받아서 본인의 소스에 추가해서 사용하면 된다. Bootbox.js는 bootstrap의 모달을 이용하는 것이므로 bootstrap...
Form Login 인증과 Form Login 인증 필터인 UsernamePasswordAuthenticationFilter 사용자가 GET 방식으로 home url로 이동하려고 하면 인증이 되지 않았기 때문에 서버에서는 로그인 페이지로 리다이렉트 시킨다. 기본적으로 스프링 부트 시큐리티가 제공하는 로그인 페이지가 나타나지만 이 페이지는 별도로 만들 수도 있다. 사용자는 POST 방식으로 username과 password를 입력해서 서버에 전송하고 서버에서는 세션을 생성하고 Authentication 타입 클래스의 인증 객체를 생성, SecurityContext에 세션을 저장한다. 이후에 클라이언트가 다시 home url로 이동할 때 세션에 저장된 인증 토큰으로 접근하게 되고 서버는 세션에 저장된 인증 ..
앞서 시큐리티의 인증과 인가에 대해서 이야기했다. 스프링 시큐리티에서는 세부적인 보안 기능을 설정할 수 있는 인증과 인가 API를 제공한다. 먼저 스프링 시큐리티 의존성을 추가해주고 스프링 시큐리티의 웹 보안 기능을 초기화 하고 설정해야 한다. 의존성 추가 (maven) org.springframework.boot spring-boot-starter-security 스프링 시큐리티에 의존성을 추가하고 서버를 기동하면 스프링 시큐리티의 초기화 작업 및 보안 설정이 이루어진다. 그런데 기본적인 보안 기능 외에는 만드려는 애플리케이션에서 세부적이고 추가적인 보안 기능이 필요하기 때문에 스프링 시큐리티에서 제공하는 WebSecurityConfigureAdapter를 상속받아서 세부적인 보안이나 기능을 설정할 수..
메모 핵심만 적어라 속기하듯이 적지마라 (내가 하는거) 순간의 생각 - 생각의 이음 지시받은 일 - 몇 가지 영역으로 분류해서 생각해라 고민이 있을 때도 메모가 도움이 된다. 1. 고민하게 된 배경 고민을 하게 된 배경이나 환경 2. 발생 원인 직접적인 원인이나 조금 멀리 있는 원인 3. 해결 방안 배경과 원인을 적다보면 내 고민을 객관화 해서 볼 수 있다. 종이 노트와 메모앱중 추천? 취향 차이라 고를 순 없다. 나같은 경우는 메모앱을 선호한다.. 그런데 대부분의 메모 전문가들은 종이를 선호하는 것 같다. 아날로그에서 핵심만 정리해놓고 디지털로 옮겨놓는 것 같음. (나는..종이노트에 쓰다보면 워낙 악필이기도하고 손도 아파서..비선호ㅠㅠ) 마무리 핵심 키워드만 적어보는 연습을 해보고 생각날 때마다 한번씩..
- Total
- Today
- Yesterday
- maven
- rocky
- Github Status
- mybatis
- oracle
- JavaScript
- intellij
- Kotlin
- 북리뷰
- LocalDate
- mybatis config
- Spring
- Bash tab
- Mac
- docker
- input
- window
- svn
- Linux
- 오라클
- elasticsearch
- LocalDateTime
- Java
- 베리 심플
- springboot
- config-location
- k8s
- Spring Security
- jQuery
- localtime
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |