인증: 사용자의 신원을 입증하는 과정
인가: 사용자가 접근할 수 있는 권한에 대한 확인
스프링 프레임 워크에서 보안을 담당하는 하위 프레임 워크로 보안 관련 옵션 및 어노테이션을 통해서 각종 공격들(CSRF 공격, 세션 고정 공격 등)을 방어해 준다.
º CSRF 공격: 사용자의 권한을 가지고 특정 동작을 수행하도록 유도하는 공격
º 세션 고정 공격: 사용자의 인증정보를 탈취하거나 변조하는 공격
Spring Security 지원하는 함수
º BCryptPasswordEncoder: 비밀번호 해싱 알고리즘
º invalidSessionUrl: 세션이 유효하지 않을 때 리다이렉트할 URL 설정
º hasRole: 특정 역할을 가진 사용자인지 확인
º authorizeRequests(): 인증, 인가에 대한 설정
º requestMathchers(): 특정 요청과 일치하는 url에 대한 액세스를 설정
º permitAll(): 특정 요청들에 대해서는 인증/인가 없이도 누구나 접근이 가능하게 설정
º anyRequest(): 위에서 설정한 url 이외의 요청에 대해서 설정
º authenticated(); 별도의 인가는 필요하지 않지만 인증이 성공된 상태여야 접근 가능
º formLogin(): 폼 기반 로그인 설정
º loginPage(): 로그인 페이지 경로를 설정
º defaultSuccessUrl(): 로그인이 완료되었을 때 이동할 경로를 설정
º failureUrl(): 로그인 실패 시 리다이렉트할 URL 설정
º usernameParameter(): 로그인 폼에서 사용할 사용자 이름 파라미터 이름 설정
º passwordParameter(): 로그인 폼에서 사용할 비밀번호 파라미터 이름 설정
파라미터 값들은 HTML 폼의 input 태그의 name 속성과 일치해야 함
º logout(): 로그아웃 설정
º logoutSuccessUrl(): 로그아웃이 완료되었을 때 이동할 경로를 설정
º invalidateHttpSession(): 로그아웃 이후에 세션을 전체 삭제할지 여부를 설정
참고)
