SpringSecurity- Form인증

Shaun·2022년 2월 6일
1

Spring Security

목록 보기
9/19

PasswordEncorder

  • DB에 저장시 비밀번호가 그대로 노출되는 문제 떄문에 그것을 방지하고자 나온 방법이다. 말그대로 비밀번호를 암호화 해서 저장해준다.

  • PasswordEncorder 는 인터페이스다

  • DelegatingPasswordEncoder 는 암호화 방식의 유형(알고리즘),해당 패스워드 인코더의 구현체가 들어간다.

  • 간단하게 예를 만들어봤다. ModelMapper로 들어온 DTO값을 accountEntity에 넣어주는 상황에서 인코더를 사용해 암호화해 넣어주는 과정이다.

UserDetailsService

  • userName으로 일단 검증을 받을때 userDetailsService 를 이용해 검증을 받고 UserDetails 타입으로 반환 받는 과정 구현이다.

  • UserDetails 인터페이스를 구현한 클래스가 User 클래스. 그래서 User클래스를 상속받아 사용하면 UserDetails 타입 반환!

  • AccountContext(user 상속한 클래스) 는 그 계정과 권한이 들어가야한다. 그리고 그것을 반환한다.

  • SecurityConfig에 선언 해주면 시큐리티가 우리가 만든 userDetailService 를 사용한다.

AuthenticationProvider

  • 인증시 authenticationManager로부터 위임을 받아 실질적으로 인증이 시작되는 곳, 즉 userName으로 인증받고 나온 userDetails타입 객체의 그다음 인증 과정이다.

  • userDetailService 를 구현해서 메서드의 반환타입은 userDetilas

UsernamePasswordAuthenticationToken

  • provider에서 인증이 성공 하면 이 토큰은 반환한다.

  • 첫번쨰 생성자는 사용자가 인증시도할떄 인증필터가 사용자가 입력한 아이디 비밀번호 저장하는생성자, 두번쨰는 인증이 성공하고난뒤의 유저 데이터가 저장된다
    위의 예제는 인증이 성공한다음이니 두번쨰 생성자를 사용한다.

  • springSecurity가 provider을 사용하게 설정해준다.
profile
호주쉐프에서 개발자까지..

0개의 댓글