전체 글
[Spring Security] 스프링 시큐리티 주요 아키텍쳐 3 - 인가(Authorization)
이번 포스팅은 인가에 대해 정리해보았습니다. 인가는 스프링 시큐리티에서 요청을 심사하는데 마지막 관문입니다. 만약 스프링 시큐리티의 인증 아키텍쳐/프로세스에 대해 모르신다면, 앞선 포스팅을 먼저 보고 오시면 더 좋습니다. [Spring Security] 스프링 시큐리티 주요 아키텍쳐 2 - 인증(Authentication) Spring Security에서는 인증과 인가를 구분해 처리해주고 있는데요, 이번 포스팅에서는 인증 관련 아키텍쳐를 알아보도록하겠습니다. 처음 접하시는 분이라면 인증과 인가가 무엇인지, 어떤 차이가 logical-code.tistory.com 인가 (Authorization) 스프링 시큐리티가 지원하는 권한 계층 웹 계층 : URL 요청에 따른 메뉴 혹은 화면 단위의 레벨 보안 서비스..
[Spring Security] 스프링 시큐리티 주요 아키텍쳐 2 - 인증(Authentication)
Spring Security에서는 인증과 인가를 구분해 처리해주고 있는데요, 이번 포스팅에서는 인증 관련 아키텍쳐를 알아보도록하겠습니다. 처음 접하시는 분이라면 인증과 인가가 무엇인지, 어떤 차이가 있는지 모르실텐데요. 이 둘의 차이는 아래와 같습니다. 인증(Authentication) 사용자가 누구인지 확인하는 절차 예) 사용자가 카페 회원인지 확인 인가(Authorization) 사용자가 요청을 실행할 수 있는 권한이 있는지 확인하는 절차 예) 사용자가 카페 게시판에 게시글을 작성할 수 있는 등급인지 확인 혹시 Spring Security의 필터 기반 동작 방식 혹은 DelegatingFilterProxy와 FilterChainProxy를 모르신다면? 이전 포스팅을 먼저 보시길 바랍니다! [Sprin..
[Spring Security] 스프링 시큐리티 주요 아키텍쳐 1 - DelegatingFilterProxy, FilterChainProxy
이번 포스팅에서는 스프링 시큐리티의 주요 아키텍쳐 중 DelegatingFilterProxy와 FilterChainProxy를 정리하겠습니다. DelegatingFilterProxy Servlet Filter는 Servlet 스펙이기 때문에 스프링에서 정의된 빈을 주입받아 사용할 수 없습니다. 하지만 보안 정책을 정의하고 사용자 저장소, 기타 등등 여러 위치에서 빈 주입이 반드시 필요합니다. 때문에 스프링 시큐리티는 DelegatingFilterProxy를 통해 서블릿 컨테이너에서 필터로서 요청을 취득하고, 스프링 컨테이너에 존재하는 특정 빈(name = springSecurityFilterChain)을 찾아 요청을 위임합니다. 아래는 DelegatingFilterProxy의 소스코드입니다. (Sprin..
2021년 개발자 컨퍼런스
📝 수정 이력 2021.11.01 최초 작성 2021.11.05 Deview 2021 스케쥴 업데이트 2021.11.24 NHN FORWARD 2021 스케쥴 업데이트 2021.12.05 Reveal 2021 스케쥴 업데이트 컨퍼런스 목록 번호 컨퍼런스명 주최사 컨퍼런스 기간 참가 신청 기간 링크 1 Deview 2021 네이버 2021.11.24 ~ 2021.11.26 2021.11.10 ~ 링크 2 if kakao 2021 카카오 2021.11.16 ~ 2021.11.18 2021.11.01 ~ 2021.11.18 링크 3 LINE DEVELOPER DAY 2021 LINE 2021.11.10 ~ 2021.11.11 별도 표기 없음 * 현재 신청 가능 링크 4 NHN FORWARD 2021 NHN 2..
[Effective Java] 아이템 49 : 매개변수가 유효한지 검사하라
아이템 49 : 매개변수가 유효한지 검사하라 메서드와 생성자 대부분은 입력 매개변수의 값이 특정 조건을 만족하기를 바랍니다. 예) 인덱스 값은 음수가 아니어야함 예) 객체 참조는 null이 아니어야함 이러한 제약은 반드시 문서화해야 하며 메서드 몸체(로직)가 시작되기 전에 검사해야합니다. 매개변수 검사를 제대로 하지 못하면 아래와 같은 문제가 발생합니다. 메서드가 수행되는 중간에 모호한 예외를 던지며 실패 메서드가 잘 수행되지만 잘못된 결과를 반환 메서드가 문제없이 수행되었지만, 어떤 객체를 이상한 상태로 만들어놓아서 미래의 알 수 없는 시점에 이 메서드와 관련 없는 오류가 발생 public & protected 메서드 매개변수의 제약을 문서화한다면 그 제약을 어겼을 때 발생하는 예외도 함께 기술해야합니..
[Effective Java] 아이템 33 : 타입 안전 이종 컨테이너를 고려하라
아이템 33 : 타입 안전 이종 컨테이너를 고려하라 제네릭은 Set이나 Map과 같은 컬렉션이나 ThreadLocal, AtomicReference처럼 하나의 원소만을 담는 컨테이너에 가장 많이 쓰입니다. 이 때 보통의 경우 컨테이너별로 매개변수화 할 수 있는 타입의 수는 하나로 제한됩니다. Set intSet = new HashSet(); Map map = new HashMap(); 이 때, 타입의 수가 하나로 제한되는 것은 컨테이너의 제네릭 타입이 정해졌을 때, 해당 타입만으로 자료형이 제한되는 것을 의미합니다. Set set = new HashSet(); 맞습니다. 하지만, 위 방법대로 사용할 경우 해당 컨테이너에서 얻은 객체가 어떤 타입인지 정확히 알 수 없으며, 로직을 이해하고 캐스팅해 사용해도..