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();
}
}
혹시 버전이 뭔가 내부에서 오류가 날 수도 있으니까 모두 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분만에 해결해야하는 거 아닌가 싶기도 하고...
이걸 지금 해결하고 앉아있는게 좀 짜증도 나고 그렇다ㅋㅋㅋ