springBoot_개념_Day_25_ security
1.
SpringBootWebSecurityConfiguraion
인증방식 : 폼 로그인 방식
httpBasic 로그인 방식
인증 승인을 위해 한 개의 계정이 기본적으로 제공
SecurityProperies 설정 클래스에서 생성
username : user
password : 랜덤
자동 설정에 의한 기본 보안 설정 클래스를 생성
비밀번호 :
기본적으로 : user
httpsecurityfilterchain
시큐리티로 들어온다면,
*SecurityBuilder
구현체 HttpSecurity
WebSecurity
AuthenticationManagerBuilder ㅡ 인증
로그인,필터,하나를 구현한다고 보면됩니다.
*HttpSecurity : 보안에 필요한 각 설정 클래스와 필터들을 생성하고 SecurityFilterChain 빈
생성
필터체인이 필터들을 체킹하고 이안에 리퀘스트맷처가 들어있습니다.
그것을 검사하고 있으면, 처리하고, 없으면 또다른 필터를 처리할수있도록 보내준다.
다거치고 최종적으로 서블릿으로 갑니다.
*WebSecurity : HttpSecurity에서 생성한 SecurityFilterChain 빈을 SecurityBuilder에 저장
WebSecurity —> build() → SecurityBuilder에 SecurityFilterChain을 꺼내 → filterChainProxy 생성자에게 전달
*FilterChainProxy : 보안처리역할
사용자의 요청을 필터 순서대로 호출하고 보안 기능을 동작, 필요시 직접 필터를
생성해서 기존의 필터 전/후로 추가
스프링MVC에 요청을 하는 것
기본적으로 클라이언트 요청 > 필터링 > 주가되는것 필터체인,
필터체인안에 딜리게이터프록시가 스프링필터체인이
호출합니다. 처리는 스프링필터체인이 다시 또 호출 딜리게이터프록시가
객체생성하기위해 다시한번 호출하는 것.
인증필터, 인가필터, 이런것들을 필터채인프록시가 문제가없다면
스프링MVC가 요청을 합니다.
역할 : 인증,인가, 그 필터링들을 진행시킵니다. 문제가없다면, 가져온 인가,
보안적인 부분없다면, 스프링MVC한테 이것문제없다며,
스프링MVC가 진행되기전 거르는 역할
모든필터가 진행된 후 MVC실행.
0~15째 필터까지있습니다.
위에서 하나씩 호출합니다. 요청합니다. 맨 마지막 인가처리 필터까지 오류없다면,
이것을 넘겨줍니다. 필터채인프록시가 15개
0~16개, 순차적실행해서 없다면, 그 다음에 스프링 MVC에 넘겨줍니다.
서블릿같은경우, 서블릿에게 넘겨줍니다.
*사용자 정의 보안 기능
인증api
인가api
만들예정
httpSecurity
#fomLogin
임시방편
*폼 인증
로그인설정
client > SecurityFilterChain >
권한검사필터 > Access Denied exeption > ex
AuthoriticationFilter
클라이언트에서 get을 하고 Security FilterChain > 권한검사필터 authritcationFilter 가 Access Denied Exceptions 접근예외 발생 > exception translationFilter 예외처리 필터 >
처리끝나면 인증
authenticationentryPoint 인증 시작 > 로그인페이지로 가게 됩니다.
name ,user, 인증을 시도, server
권한검사 필터작동시켜서, 문제잇으면,
예외처리,인증시작, 로그인페이지발생,
#로그아웃
사용자가 설정