IT모아

스프링 시큐리티 설정 이모저모 본문

Spring(스프링)/시큐리티

스프링 시큐리티 설정 이모저모

아롱사태남 2018.09.05 09:10

#시큐리티 설정


1.<form-login>

1) login-processing-url => RequestMapping처럼 action url과 연결됨

2) authentication-success-handler-ref => 로그인 성공 시 호출됨

가) 인증 성공 후 핸들러를 SavedRequestAwareAuthenticationSuccessHandler 상속

나) onAuthenticationSucess를 오버라이드

A) Authentication 메소드는 회원정보 제공 (principal, redential)

->해당 메소드는 SecurityContext에 보관된다.

->SecurityContext는 SecurityContextHolder에 담아 보관하게 된다.

->최종적으로 SecurityContextHolder.getContext().getAuthentication()으로 유저 정보를 불러온다

B) RequestCache 인터페이스는 로그인 화면을 보여주기 전에 사용자 요청을 저장하고 이를 꺼내오는 매커니즘

C) SavedRequest 인터페이스는 사용자가 요청했던 requeset 파라미터 값들, 그 당시 헤더값들 등이

SavedRequest 인터페이스를 구현한 클래스에 담겨지게 된다.

D) HttpSessionRequestCache 는 사용자 요청을 세션에 저장하는 클래스다

3) authentication-failure-handler-ref => 로그인 실패 시 호추됨


2.<authentication-manager> -> 인증처리(인증요청을 받고 Authentication를 채운다)

1) <authentication-provider user-service-ref="UserDetailsService를 구현한 클래스" > 

가) UserDetailService -> 사용자 정보를 읽어오는 인터페이스

나) JdbcDaoImpl

A) UserDetailService 를 구현한 클래스

B) 사용자가 로그인을 하게되면 loadUserByUsername을 호출 

C) loadUserAuthorities을 호출하여 권한을 호출

다) <password-encoder> -> 문자를 암호화된 문자열로 바꾸는 기능과 입력받은 문자를 암호화된 문자열과 일치하는지 비교하는 기능을 제공

A) PlaintextPasswordEncoder : 일반 텍스트 인코딩 처리

  B) Md4PasswordEncoder : MD4 해리 알고리즘을 사용, 안전한 알고리즘이 아님

C) Md5PasswordEncoder : MD5 단방향 인코딩 알고리즘 사용

D) ShaPasswordEncoder  : 단방향 인코딩 알고리즘 사용, 인코딩 레벨을 설정할 수 있는 기능이 있음.

E) LdapShaPasswordEncoder : LDAP 인증 저장소



0 Comments
댓글쓰기 폼