Spring Security Config 설정
03 Aug 2022패스트캠퍼스 Spring Security 강의 정리
Spring Security Config
- Filter off
disable()
- ex. http.httpBasic().disable()
- 로그인 & 로그아웃
- loginPage: 로그인 url 지정 가능, 설정하지 않으면 spring security 제공 화면
- defaultSuccessUrl: 로그인 성공 후 이동하는 url
- logoutRequestMatcher: 로그아웃 요청 url 지정
- logoutSuccessUrl: 로그아웃 성공 후 이동하는 url
// 로그인 http.formLogin() .loginPage("/login") .defaultSuccessUrl("/") .permitAll(); // 로그아웃 http.logout() .logoutRequestMatcher(new AntPathRrequestMatcher("/logout")) .logoutSuccessUrl("/");
- Url Matchers
- antMatchers
- mvcMatchers
- regexMatchers
- 정규표현식으로 매칭
- requestMatchers
- 위의 matchers 모두 requestMatchers로 이루어짐
- 명확하게 요청 대상을 지정할 때 사용
// /signup 요청을 모두에게 허용 http.authorizeRequests() .antMatchers("/signup").permitAll(); // /signup, /signup/, /signup.html 등 signup 유사 요청을 모두에게 허용 http.authorizeRequests() .mvcMatchers("/signup").permitAll();
-
인가 관련 설정
- authorizeRequests(): 인가 설정
- permitAll(): 요청을 모두에게 허용
- hasRole(): 권한 검증
- authenticated(): 인증되었는지 검증
-
Ignoring
- 특정 리소스에 대해 spring security를 적용하고 싶지 않을 때 사용
- css, javascript, images 등의 정적 리소스
// v5.7.2 @Bean public WebSecurityCustomizer webSecurityCustomizer() { return web -> web.ignoring().antMatchers("/css/**", "/images/**"); } // 이전 버전 public void configure(WebSecurity web) { // antMatchers 이용하여 ignoring 처리 web.ignoring().antMatchers("/css/**", "/images/**"); // 모든 정적 리소스 ignoring 처리 web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations)); }