[스프링 시큐리티] security 버전에 따른 http 메서드 변경..!! ps. 앞으로 바꿀 때 내 허락받고 바꿔라 ^^

코린이서현이·2024년 5월 25일
0
post-thumbnail

들어가면서 🥲

security가 버전이 바뀌면서 자잘자잘하게 아주 귀찮게 바뀐게 많은 건 알고 있었다.
알고는 있지만 대충 인터넷에서 코드 긁어와서 붙여넣기하니까, 다 오류가 나더라고요?? ^^
저는 안되는데요?  상황..

짜증이 나가지고요.. 다시 천천히 바꿔줌...

처음에는 감을 못 잡고 엄청 헤맸음.. ㅜㅜ (바꾸고 나니까 이렇게 간단한 문제인지 몰랐네..)

오류 상황

💡 사실 오류 상황을 쓸 수 있다는 것은 이미 오류를 해결했다는 뜻 아닐까?

강의를 들으면서 Security 설정을 위해 config 클래스를 작성하고 있었다.
이전 버전이라 인터넷에서 코드 긁어와서 쓰니까 오류 작살남

오류가 난 내 코드

package com.jsh.securitystudy.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.*;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class MySecurityConfig{

    @Bean //빈으로 등록하기
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
        http
                .csrf().disable()
                .authorizeRequests()
                .antMatchers("/user/**").authenticated()
                .antMatchers("/manager/**").authenticated()
                .antMatchers("/admin/**").hasRole("ROLE_ADMIN")
                .anyRequest().permitAll()
                .and()
                .formLogin() //로그인 방식을 사용하는 것으로 설정
                .loginPage("/login");

        return http.build();

    }

}

문제를 해결해볼께요!

① pom.xml의 오류??

혹시 버전이 뭔가 내부에서 오류가 날 수도 있으니까 모두 6.2.4 버전으로 수정했다.


두근두근..?

② 6.2.4버전에 맞춰서 수정 ㄱㄱㄱㄱ

공식문서 🫶


@Configuration
@EnableWebSecurity
public class MySecurityConfig{

    @Bean //빈으로 등록하기
    SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
        http
                .csrf(csrf -> csrf.disable())
                .authorizeRequests((authorizeRequests) ->
                        authorizeRequests
                                .requestMatchers("/user/**").authenticated()
                                .requestMatchers("/admin/**").hasRole("ADMIN")
                                .requestMatchers("/manager/**").hasRole("ADMIN"))
                .formLogin(formLogin -> formLogin
						.loginPage("/login"));
        
        return http.build();

    }

🙏 제발용ㅜㅜ

해결 🫶

오! 이게 되네??

해결 방법

① security가 버전을 바꾸면서 메서드가 여러번 바뀌었다. 따라서 xml 파일을 통해서 버전을 명시적으로 바꿨다.
② 해당 버전에 따라서 메서드를 수정했다.

느낀 점

솔직히 이 정도는 한 10분만에 해결해야하는 거 아닌가 싶기도 하고...
이걸 지금 해결하고 앉아있는게 좀 짜증도 나고 그렇다ㅋㅋㅋ
profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글