SecurityConfig 클래스

bigtr3·2024년 9월 2일

개발자 유미 - 스프링 시큐리티 JWT

SecurityConfig 클래스 설명

스프링 시큐리티의 인가 및 설정을 담당하는 클래스이다. Security Config 구현은 스프링 시큐리티의 세부 버전별로 많이 상이합니다. (이번 시리즈는 스프링 시큐리티 6.2.1 버전으로 구현합니다.)

Security Config 클래스 기본 요소 작성

시큐리티 JWT 구현을 위한 Config 클래스의 일부분을 작성할 예정입니다. 먼저 기본적인 설정만 진행하고 시리즈를 진행하며 커스텀 필터 요소들을 추가 구현할 예정입니다.

  • 세션 방식 : 세션이 항상 고정돼서 csrf 공격을 방어해야 함.
  • JWT 방식 : 세션을 stateless 방식으로 관리해서 공격을 방어하지 않아도 됨.
		//csrf disable
        http
                .csrf((auth) -> auth.disable());
			
            ...
            

		//세션을 STATELESS로 설정
        http
                .sessionManagement((session) -> session
                        .sessionCreationPolicy(SessionCreationPolicy.STATELESS));
  • JWT 방식을 사용할거기 때문에 다른 로그인 방식 없앰
			//From 로그인 방식 disable
        http
                .formLogin((auth) -> auth.disable());

				//http basic 인증 방식 disable
        http
                .httpBasic((auth) -> auth.disable());

				//경로별 인가 작업
        http
                .authorizeHttpRequests((auth) -> auth
                        .requestMatchers("/login", "/", "/join").permitAll() // 모두 허용
												.requestMatchers("/admin").hasRole("ADMIN")
                        .anyRequest().authenticated());		// 로그인한 사용자만
                        

Postman 설치 및 사용

  • SecurityConfig 를 사용하기 전

    로그인을 하지 않아 401 Unauthorized 가 뜸

  • SecurityConfig 생성 후

    성공적으로 응답

profile
스프링 공부기록🧾

0개의 댓글