ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 시큐리티 설정 이모저모
    Spring(스프링)/시큐리티 2018. 9. 5. 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 인증 저장소



Designed by Tistory.