Spring Security (2) 커스텀 로그인 작업

castle·2023년 12월 27일
0

Spring Configuration Class 작성 후


스프링 시큐리티 Config 클래스를 생성하여 인가 작업을 설정한 후에는 특정 경로에 대해 접근 했을 때 권한이 없는경우 자동으로 로그인 페이지로 리다이렉션 되지 않고 오류가 발생한다.

커스텀 로그인 설정하기


Config 클래스를 설정하면 로그인 페이지 설정 또한 작업해주어야 한다.

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{

        http
                .authorizeHttpRequests((auth) -> auth
                        .requestMatchers("/", "/login", "/loginProc").permitAll()
                        .requestMatchers("/admin").hasRole("ADMIN")
                        .requestMatchers("/my/**").hasAnyRole("ADMIN", "USER")
                        .anyRequest().authenticated()
                );

				//새로 추가된 코드
        http
                .formLogin((auth) -> auth.loginPage("/login") // -- 1
                        .loginProcessingUrl("/loginProc") //  -- 2
                        .permitAll()                     // -- 3
                );

        http
                .csrf((auth) -> auth.disable());      // -- 4
				

        return http.build();
    }
}
  1. loginPage("/주소") : 로그인 페이지가 어디있는지 주소 설정(로그인 권한이 없을 때 자동으로 해당 로그인 페이지로 시큐리티가 리다이렉션 해준다)
  2. loginProcessingUrl("/주소") : 로그인한 정보가 해당 주소로 넘겨지면 받아서 로그인 처리를 진행한다.
  3. permitAll() : 해당 경로를 모든 접근에 대해 허용
  4. csrf : 시큐리티의 위변조 방지 설정(Post 요청시 csrf Token도 보내주어야 로그인 진행된다.) → 개발 환경에서 비활성화 시키기 용

스프링부트 어플리케이션을 실행하면 자동으로 생성된 시큐리티 패스워드(security password) 값을 사용하여 로그인 가능하다.

Id : user

Password : 자동 생성된 값

0개의 댓글

관련 채용 정보