7.springBoot/1)개념_springBoot

springBoot_개념_Day_25_ security

구이제이 2024. 5. 21. 18:52

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

 

권한검사 필터작동시켜서, 문제잇으면, 

예외처리,인증시작, 로그인페이지발생,










#로그아웃

 

사용자가 설정