분류 전체보기
-
[스프링 시큐리티] DelegatingFilterProxy & FilterChainProxy강의노트/스프링 시큐리티 2020. 9. 13. 00:25
ServletFilter WAS에서 톰캣이 올라가서 WAS에서 실행되는 필터이다. 요청을 받아서 Servlet에 전달하고, Servlet에서 응답을 받아서 클라이언트에 전달하는 역활을 수행한다. Servlet Container에서 생성되고 실행이 된다. 서블릿 필터는 스프링에서 정의된 빈을 주입해서 사용할 수 없다. Why? 서로 실행되는 컨테이너가 다르다. 인증/인가 처리는 스프링 컨테이너에 생성된 Filter를 통해서 처리된다. 실질적인 서블릿 필터가 DelegatingFilterProxy이다. // web.xml springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain ..
-
[스프링 시큐리티] CsrfFilter강의노트/스프링 시큐리티 2020. 9. 12. 23:43
CSRF (사이트 간 요청 위조) 웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹 페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법을 의미한다. XSS와 SQL Injection과 비슷한데 XSS가 사용자가 특정 사이트를 신뢰한다는 점을 공격하는 거라면 CSRF는 특정 사이트가 사용자를 신뢰한다는 점을 공격하는 것이다. XSS : 악성 코드가 클라이언트에서 발생 CSRF : 악성 코드가 서버에서 발생 CsrfFilter 서버는 모든 요청에 대해서 랜덤으로 생성된 토큰을 클라이언트에 전달하고, 클라이언트는 매 요청 시마다 해당 토큰을 HTTP 파라미터 또는 헤더로 서버에 전달한다. 요청 시 전달 된 토큰 값과 서버에 저..
-
[스프링 시큐리티] ExceptionTranslationFilter강의노트/스프링 시큐리티 2020. 9. 12. 13:25
ExceptionTranslationFilter 필터의 경우 아래 2가지 예외를 발생시킨다. 인증 예외 (AuthenticationException) AuthenticationEntryPoint 호출 로그인 페이지 이동, 401 오류 코드 전달, SecurityContext 초기화 AuthenticationEntryPoint를 직접 구현해서 인증 예외 처리를 할 수도 있다. this.authenticationEntryPoint.commence(request, response, reason); 인증 예외가 발생하기 전의 요청 정보를 저장 RequestCache 인터페이스 : 사용자의 이전 요청 정보를 세션에 저장하고 이를 꺼내 오는 캐시 메커니즘 사용자가 다시 로그인하여 성공 후 이전 가고자 했던 리소스 ..
-
[Linux] OS 정보 확인운영체제/linux 2020. 9. 11. 23:46
OS 정보 확인 방법 uname 명령어를 이용하여 OS 정보를 출력 $ uname -a Linux uchupura 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Field Description Linux 커널 이름 (option : -s) uchupura 네트워크 호스트명 (option : -n) 3.10.0-1127.10.1.el7.x86_64 커널 릴리즈 번호 (option : -r) #1 SMP Wed Jun 3 14:28:03 UTC 2020 커널 버전과 커널이 빌드된 날짜 정보 (option : -v) x86_64 하드웨어 이름을 출력 (option : -m) x86_64 프..
-
[IntelliJ] 단축키 정리자바/기타 2020. 9. 11. 22:37
keymap : macOS 동작 단축키 상세 Preferences(설정) 창 열기 Cmd + , Project Structure 창 열기 Cmd + ; 구동 종료 Cmd + F2 줄번호 이동 Cmd + L 최근 열어본 파일 리스트 Cmd + E 새 파일 생성 Cmd + N 이름 변경 Shfit + F6 파일 이름 변경 참조되는 모든 변수명 변경 오류로 이동 F2 현재 열려져 있는 파일에서 오류로 이동 참조하지 않는 import 삭제 Ctrl + Opt + O 자동 정렬 Opt + Cmd + L 변수명 자동 생성 Opt + Cmd + V 함수 리팩토링 Opt + Cmd + M 재사용 가능 로직을 함수로 추가 파라미터 리팩토링 Opt + Cmd + P 함수에서 사용되는 상수를 함수의 파라미터로 추가 인라인 ..
-
[스프링 시큐리티] 권한 설정과 표현식강의노트/스프링 시큐리티 2020. 9. 10. 21:27
권한 설정 선언적 방식 Url을 이용한 방식 protected void configure(HttpSecurity http) throws Exception { http .antMatchers("/users/**") .authorizeRequests() .antMatchers("/shop/login", "/shop/users/**").permitAll() .antMatchers("/shop/mypage").hasRole("ROLE_USER") .antMatchers("/shop/admin/pay").access("hasRole('ROLE_ADMIN')") .antMatchers("/shop/admin/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_SYS')") ..
-
[스프링 시큐리티] ConcurrentSessionFilter강의노트/스프링 시큐리티 2020. 9. 10. 19:53
동시 세션 제어 SessionManagementFilter에서 최대 세션 허용 개수를 초과할 경우 session.expireNow()를 통해서 세션을 만료 시킴 ConcurrentSessionFilter에서는 매 요청마다 현재 사용자의 세션 만료 여부를 체크(ConcurrentSessionControlAuthenticationStrategy) 만료 여부 체크는 session.isExpire() 함수를 통해서 체크하며 이는 SessionManagementFilter에서 설정한 값을 참조한다. 세션이 만료되었을 경우 즉시 만료 처리 session.isExpired() == true 로그아웃 처리 (doLogout()) 오류 페이지 응답 참조 : 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Sp..
-
[스프링 시큐리티] 세션 생성 정책강의노트/스프링 시큐리티 2020. 9. 10. 19:29
protected void configure(HttpSecurity http) throws Exception { http.sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.If_Required) }세션 정책 SessionCreationPolicy.Always : 스프링 시큐리티가 항상 세션 생성 SessionCreationPolicy.If_Required : 스프링 시큐리티가 필요 시 생성 (default) SessionCreationPolicy.Never : 스프링 시큐리티가 생성하지 않지만 이미 존재하면 사용 SessionCreationPolicy.Stateless : 스프링 시큐리티가 생성하지 않고 존재해도 사용하지 않음 세션을 사용..