728x90
Spring Security는 인증,인가에 대해 개발자가 필요한 로직을 대부분 구현해 놓았다고 보면 된다. 웬만한 인증인가에 필요한 로직이 다 있음. 따라서 적극적으로 사용하는 것이 문명의 혜택을 누리는 것이라 생각한다.
필터설명
SecurityContectPersistenceFilter | SecurityContexRepository에서 SecurityContext를 로드하고 저장하는 일을 담당함. |
LogoutFilter | 로그아웃 URL로 지정된 가상URL에 대한 요청을 감시하고 매칭되는 요청이 있으면 사용자를 로그아웃시킴. |
UsenamePasswordAuthenticationFilter | 사용자명과 비밀번호로 이뤄진 폼 기반 인증에 사용하는 가상URL요청을 감시하고 요청이 있으면 사용자의 인증을 진행함. |
DefaultLoginPageGeneratingFilter | 폼기반 또는 OpenID 기반 인증에 사용하는 가상URL에 대한 요청을 감시하고 로그인 폼 기능을 수행하는데 필요한 HTML을 생성함. |
BasicAuthenticationFilter | HTTP 기본인증 헤더를 감시하고 이를 처리함. |
RequestCacheAwareFilter | 로그인 성공 이후 인증 요청에 의해 가로채어진 사용자의 원래 요청을 재구성하는데 사용됨. |
SecurityContextHolderAwareRequestFilter | HttpServeltRequest를 HttpServletRequestWrapper를 상속하는 하위 클래스로 감싸서 필터 체인상 하단에 위치한 요청 프로세서에 추가 컨텍스트를 제공함. |
AnonymousAuthenticationFilter | 이 필터가 호출되는 시점까지 사용자가 아직 인증을 받지 못했다면 요청 관련 인증 토큰에서 사용자가 익명 사용자로 나타나게됨. |
SessionManagementFilter | 인증된 주체를 바탕으로 세션 트래킹을 처리해 단일 주체와 관련한 모든 세션들이 트래킹되도록 도움. |
ExceptionTranslationFilter | 이 필터는 보호된 요청을 처리하는 동안 발생할 수 있는 기대한 예외의 기본 라우팅과 위임을 처리함. |
FilterSecurityInterceptor | 이 필터는 권한부여와 관련한 결정을 AccessDecisionManag |
http 접근 권한 설정 Method
http.authorizeRequests()
.antMatchers("/member/**").authenticated()
.antMatchers("/admin/**").authenticated()
.antMatchers("/**").permitAll();
authorizeRequests() | HttpServletRequest 요청 URL에 따라 접근 권한을 설정합니다. |
antMatchers("pathPattern") | 요청 URL 경로 패턴을 지정합니다. |
authenticated() | 인증된 유저만 접근을 허용합니다. |
hasAuthority() or hasAnyAuthority() | 특정 권한을 가지는 사용자만 접근할 수 있습니다. |
permitAll() | 모든 유저에게 접근을 허용합니다. |
anonymous() | 인증되지 않은 유저만 허용합니다. |
denyAll() | 모든 유저에 대해 접근을 허용하지 않습니다. |
http 로그인 설정 Method
http.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.permitAll();
formLogin() | form Login 설정을 진행합니다. |
loginPage("path") | 커스텀 로그인 페이지 경로와 인증 경로를 등록합니다. |
defaultSeuccessUrl("path") | 로그인 인증을 성공하면 이동하는 페이지를 등록합니다. |
successHandler(AuthenticationSuccessHandler) | 로그인 인증을 성공하면 실행할 로직 객체로 상속받아 설정합니다. |
http 로그아웃 설정 Method
http.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/login")
.invalidateHttpSession(true);
logout() | 로그아웃 설정을 진행합니다. |
logoutRequestMatcher(new AntPathRequestMatcher("path")) | 로그아웃 경로를 지정합니다. |
logoutSuccessUrl("path") | 로그아웃 성공 시 이동할 경로를 지정합니다. |
invalidateHttpSession(true) | 로그아웃 성공 시 세션을 제거합니다. |
'Programming > Java' 카테고리의 다른 글
JPA 사용법 (0) | 2023.10.11 |
---|---|
SpringSecurity로 OAuth 인증인가 구현. Kakao 소셜인증을 서버로.. (0) | 2023.09.12 |
SpringFramework 에서 Redis 를 활용한 Session Storage 분리 (0) | 2023.09.06 |
JSESSIONID만으로 세션 유효성 검증하는 방법 (0) | 2023.08.28 |
Spring Batch에 대한 고찰 (0) | 2023.03.31 |