WebSecurityConfig클래스 오류
@RequiredArgsConstructor
@Configuration
public class WebSecurityConfig {
private final UserDetailService userService;
//스프링 시큐리티 기능 비활성화
//스프링 시큐리티의 모든 기능을 사용하지 않게 설정하는 코드다
//인증인가 서비스를 모든 곳에 적용하지 않는다는것, 일반적으로 정적 리소스(이미지,html파일)에 설정
@Bean
public WebSecurityCustomizer configure(){
return (web) -> web.ignoring()
.requestMatchers(toH2Console())
.requestMatchers("/static/**");
}
//특정 HTTP 요청에 대한 웹 기반 보안 구성
//이 메서드에서 인증/인가 및 로그인,로그아웃 관련 설정이 가능
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.authorizeRequests() //인증,인가 설정(특정 경로에 대한 액세스 설정)
.requestMatchers("/login", "/signup", "/user").permitAll()
.anyRequest().authenticated()
.and()
.formLogin() //폼 기반 로그인 설정
.loginPage("/login")
.defaultSuccessUrl("/articles")
.and()
.logout()
.logoutSuccessUrl("/login")
.invalidateHttpSession(true)
.and()
.csrf().disable() //csrf 비활성화
.build();
}
...(중략)...
WebSecurityCustomizer 여기랑, SecurityFilterChain 기능이 안돼서 찾아봤더니
https://velog.io/@yewo2nn16/Spring-Spring-Security%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0
WebSecurityConfig클래스에 @EnableWebSecurity 라는 어노테이션을 쓰면 될것 같음
=> @EnableWebSecurity 추가했는데 에러뜸
=>https://velog.io/@ino5/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0-dependency-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0 참고해서
implementation 'org.springframework.boot:spring-boot-starter-security' 추가했더니 됨
###############################
//logout Get 요청을 하면 로그아웃을 담당하는 헨들러인 SecurityContextLogoutHandler의 logout()메서드를 호출해서 로그아웃함
@GetMapping("/logout")
public String logout(HttpServletRequest request, HttpServletResponse response) {
new SecurityContextLogoutHandler().logout(request, response,
SecurityContextHolder.getContext().getAuthentication());
return "redirect:/login";
}
#################################
다음 8.6.2로그아웃 뷰 추가하기부터 하면됨
'공부 > Spring' 카테고리의 다른 글
스프링 부트 3 백엔드 개발자 되기_18 (0) | 2023.08.30 |
---|---|
스프링 부트 3 백엔드 개발자 되기_17 (0) | 2023.08.29 |
스프링 부트 3 백엔드 개발자 되기_15 (0) | 2023.08.25 |
스프링 부트 3 백엔드 개발자 되기_14 (0) | 2023.08.24 |
스프링 부트 3 백엔드 개발자 되기_13 (0) | 2023.08.21 |