2022 10 09 - WIYA-waitinyourarea/wiya GitHub Wiki
2022-10-09(일) 회의록
1. 스프링 시큐리티 기본 적용
SecurityFilterChain
필터를 빈객체로 등록
- 해당 빈객체의 설정을통하여 인증 방법 및 인가 범위를 설정한다.
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
//인가 정책
.authorizeRequests() // 요청에 대한 보안 검사
.antMatchers("/", "/assets/**", "/member/register", "/member").permitAll()
.anyRequest().authenticated() // 어떤 요청도 인가처리를 하겠다는 설정
.and()
//인증 정책
//form 로그인
.formLogin() //formLogin 인증 방식 설정
.loginPage("/login").permitAll() // 사용자 정의 로그인 페이지
.defaultSuccessUrl("/") // 로그인 성공 후 이동 페이지
.failureUrl("/login?auth=fail") // 로그인 실패 후 이동 페이지)
.usernameParameter("username") // 아이디 파라미터명 설정
.passwordParameter("password") // 패스워드 파라미터명 설정
.loginProcessingUrl("/login") // 로그인 Form Action Url
.successHandler(...) // 로그인 성공 후 핸들러
.failureHandler(...) // 로그인 실패 후 핸들러
.and()
//로그아웃
.logout()
.logoutSuccessUrl("/")
.and()
.build();
}
2. 스프링 시큐리티 등록 시 Ajax 통신할 떄 403 에러
- csrf의 토큰 누락으로 발생한 403 에러
- 해결 방법
<meta name="_csrf_header" th:content="${_csrf.headerName}">
<meta name="_csrf" th:content="${_csrf.token}">
var header = $("meta[name='_csrf_header']").attr('content');
var token = $("meta[name='_csrf']").attr('content');
//에이젝스에 해당 속성 추가
$.ajax({
beforeSend: function(xhr){
xhr.setRequestHeader(header, token);
}
});