필터와 인터셉터 :
필터: tomcat이 제공하는 해당 되는 변수만 사용할수있다 URL 체크, applcation context 접근할수없다.
인터셉트 : dispatcher servlet 다음에 불린다, application context에 있는 빈들을 사용할수있다. 스피링 빈으로 등록된 컨트롤러나 서비스 객체를 주입받는다.
필터는 Dispatcher Servlet이 호출되기전에 호출된다.
인터셉터는 dispatcher와 controller 사이에 있다. 컨트롤러의 실행여부도 제어할수있다, 페이지에 대한 권한을 줄수있고 기능을 쓰게 할지안할지 제어할수있다.
처리된 결과를 받으면 View Resolver 에 넘겨서 뷰 처리.
컨트롤러 실행전: preHandle(request, response, handler)
컨트롤러 실행후: postHandle(request, response, handler, modelAndView)
뷰를 실행한 이후: afterCompletion(request, response, handler, exception)
애플리케이션 보안 기능을 구현할때 사용하느 프레임워크
인증: 애플리케이션에 접근하는 사용자를 특정하는 기능
인가: 특정한 사용자에 대해 정보와 기능의 접근을 제한하는 기능
spring-security-core: 인증 인가 기능을 구현하기 위한 핵심 컴포넌트
spring-security-web: 웹 애플리케이션 보안 기능을 구현하기위하 컴포넌트
spring-securty-config: 각모듈에서 제공하는 컴포넌트 설정을 지원
spring-security-taglibs: 인증 및 인가 정보를 사용하기위한 JSP 태그 라이브러리
spring-security-acl: ACL을 사용해서 애플리케이션의 도메인 객체 인스턴스 보호
FilterChainProxy: 전체적인 흐름을 제어하고 , 보안기능과 같은 추가 기능을 필터에게 위임
HTTPfirewall: 방화벽 기능을 추가하기위한 인터페이스 (요청을 차단할때 사용)
SecuirtyFilterChain: FilterChainProxy가 받은 요청을 적용할 보안 필터 목록을 관리하기 위한 인터페이스
Security Filter: 보안 기능을 제공하는 서블릿 필터 클래스
인증필터 : 인증처리 방식에 대한 구현을 제공하는 서블릿 필터
DelegatingFilterProxy: DelegatingFilterProxy 클래스를 정의하여 서블릿 API의 인터페이스 구현
AuthenticationManger: 인증 처리를 수행하기 위한 인터페이스,authenticationProvider에서 처리된 결과를 처리하는 구조
AuthenticationProvider: 인증 처리 기능을 구현하기 위한 인터페이스
web.xml 에
context-param 에 param-value root-context 와 security-context.xml 파일 추가
스프링 필터 추가
web.xml
스프링 Securit filter 설정
메모리 인증 정보
security-context-mem.xml
스프리 Security Filter 설정과 매핑웹 전체설정
데이터베이스를 통한 인증
security-context-db.xml
데이터베이스에 암호정보가 encrypt 되어있어야 한다
JdbcDaoImpl 개게 생성
폼 로그인 기능 적용
security-context.xml
permitAll() : 모든 사용자 액세스 가능
hasAuthority("Role"): Role 권한가진 사용자만 액세스가능
isAuthenticated(): 인증된 사용자만 액세스 가능
default-target-url: 제일 기본으로 사용할 URL
login-page: 지정한 로그인 페이지
login-processing-url: 로그인페이지 폼에서 전달하는 action 값
username-parameter: 폼으로 전달하는 변수
password-parameter: 폼으로 전달하는 변수
인터셉터와 필터의 차이점 -> 영역측면에서 차이 spring context를 쓸 수 있냐 없냐
인터셉터와 AOP의 차이점 -> 메서드와 컨트롤러간 파라미터가 다름
인터셉터 설정. 특정 요청 종류에 따라
인터셉터 구현하기 위한 인터페이스 세가지 메서드
secruity 주요 컴포넌트와 라이브러리들은 어떤 것이 있는지?
프록시와 필터의 연동관계. secruity가 맆터체인프록시, secruity fillter 각각의 역할
필터에서 인증처리하기 위한 인터페이스 authentication manager, provide 역할-> spring secruity 구조를 사용해 설명
로그인 창을 개발자가 제공하는 것으로 바꾸었을 때 설정하는 부분
디비 인증할 때 설정하는 부분 -> authentication manager, provide, jdbcUserService, DataSource, password encoder의 bean 관계. 설정태그에 대한 부분