SPRING

[Spring Boot] Spring Security6 설치 및 셋팅

_-_-kk 2025. 3. 27. 11:55

취준할때 시큐리티시큐리티 하던데 이게 그렇게 중요하다고. 

아무튼 

Spring Security로 회원기능만들기위해 설치랑 셋팅을 해보자 

 

build.gradle 파일 dependencies에 밑에 두개 추가 

 

implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE'

첫번째는 스프링 시큐리티

두번째는 타임리프에서 스프링 시큐리티를 가져다쓸수있게해주는 라이브러리 

 

 

이렇게 하고 서버를 껐다 키고 자기가 만든곳을 딱 들어가보면 갑자기 처음보는 로그인창이 뜸

 

그러면 잘 적용됐다는 뜻이고 이제 모든곳이 로그인창이 뜸

 

username창에는  user 라고 적고

비밀번호는 내 콘솔창에 나와있다 

 그럼 로그인 완.

 

 

우리는 어쨋든 계속 들락거리면서 기능구현을 해야하기때문에 

모든곳에 임시로 로그인기능을 해제시키기 

 

 

Spring Security 설정

 

자바파일로 SecurityConfig 만들어주고 

이 두게 어노테이션을 붙여주면 시큐리티설정파일이라고 일러주는것

@Configuration
@EnableWebSecurity

 

filterChain은 유저의 요청과 서버 응답사이에 자동으로 실행해주고 싶은 코드를 담는 곳

 

.requestMatchers("/url")

/url 이 주소에 필터를 적용할지 말지 

/**

이건 모든 url 이라는 뜻 

.permitAll()

모든 로그인권한없이 접속을 허락한다는 뜻 

즉! 우리는 지금당장은 개발만 할거고 배포는 안할거기때문에 내가 당장 편해야하니까(ㅋㅋ) 모든 URL에 권한없이 접속 허락한다는뜻

authorize.requestMatchers("/**").permitAll()

csrf공격을 막는 코드를 잠깐 끄기 

csrf공격이란? 간략하게 설명하자면 침입자가 내가 만든 API에 요청을 날릴수있는것 그걸 막기위해 꼭 필요한 코드인데 지금은 개발만 하는거니까 끄기 

http.csrf((csrf) -> csrf.disable());

 

최종

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.csrf((csrf) -> csrf.disable());
        http.authorizeHttpRequests((authorize) ->
                authorize.requestMatchers("/**").permitAll()
        );
        return http.build();
    }
}