20231121 오후
build.gradle에 스프링 시큐리티 관련 추가
스프링시큐리티 디폴트 설정이 되있다.
모든 페이지에 대해서 인증이 필요하다
application.yml파일에
name password 설정해주면 콘솔에서 비번 굳이 복붇 안해와도된다/.
필터 체인 안걸어주면 디폴트 값이 걸려서 기본설정을 해준다,
스프링 시큐리티 csrf체크
post전송할때 csrf토큰이 들어와야한다.
쓰는 페이지에 csrf토큰에 대한 코드를 넣어줘야한다.
login.html
시큐리티컨피그 클래스 만들고 스프링시큐리티 디폴트값 꺼주고
페이지 post요청에 csrf만들어줘야한다
스프링 시큐리티가 정해놓은 양식대로 세션을 저장해야한다.
시큐리티도 프레임워크다
정해놓은 틀안에 맞춰야한다.
사용법을 외워야한다
작동원리를 이해하려고 하지마라..
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.formLogin(
formLogin -> formLogin
.loginPage("/member/login")
.loginProcessingUrl("/member/login")
.usernameParameter("username")
.passwordParameter("password")
.defaultSuccessUrl("/article/list")
)
.build();
}
.loginProcessingUrl("/member/login")
.usernameParameter("username") .passwordParameter("password")
요부분은 생략가능
@PreAuthorize("isAnonymous()")
익명이어야한다, 로그인되어있으면 안됨
@PreAuthorize("isAuthenticated()")
로그인 되어야한다