Spring Security Config 설정

패스트캠퍼스 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));
    }