Skip to Content
Suffering builds character
아카이브18.spring Security스프링 시큐리티3.인증실습Basic 인증5.인증 처리흐름 테스트

5.인증 처리흐름 테스트

1. Security 전용 설정 파일 생성

Spring Security와 관련된 Spring Bean 객체들을 관리할 별도의 클래스인 SecurityConfig.java 생성

SecurityConfig.java
@EnableWebSecurity @Configuration public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.httpBasic(Customizer.withDefaults()); http.authorizeRequests().anyRequest().authenticated(); return http.build(); } }

2. 인증 처리 동작 테스트

2-1. 메인 경로에 접근

HTTP
http://localhost:8080/

개발자 도구에서 아래의 정보 확인

Headers - General

HTTP 헤더
Request URL: http:localhost:8080/ Request Method: GET Status Code : 401 Unauthorized
HTTP 헤더
Www-Authenticate: Basic realm="Realm"

2-2. 로그인 요청 전송

username: user (기본적으로 제공되는 Username은 user) Password : 서버 실행 시 콘솔에 임시로 생성된 UUID(Universally Unique Identifier) 코드

로그인 요청에 대한 요청 헤더

HTTP 헤더
Authorization: Basic dXNlcjo5NTc2YWUwZS0xN2VlLTQ1YjYtYWYzOC1mMjBjNjMzYzkzMTI=

인코딩된 값인 dXNlcjo5NTc2YWUwZS0xN2VlLTQ1YjYtYWYzOC1mMjBjNjMzYzkzMTI=는 사용자 마다 다를 수 있음

2-3. 로그인 성공 여부에 따라 응답 페이지 확인

2-3-1. 인증이 성공하였을 경우

사용자가 입력한 자격 증명과 서버가 가진 자격 증명이 일치하여 인증이 성공하였을 경우, 사용자가 처음에 요청하였던 경로인 localhost:8080에 대한 리소스를 응답 받음

2-3-2. 인증에 실패하였을 경우

사용자가 입력한 자격 증명과 서버가 가진 자격 증명이 일치하지 않아서 인증이 실패하였을 경우, 다시 로그인을 진행하도록 로그인 창이 다시 보여짐

로그인 후 /hello 경로로 접근

로그인이 성공하여 WhiteLabel 페이지가 보이는 상황에서 아래의 경로로 요청 전송

HelloController.java
@RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello!"; } }

서버 재실행 후 로그인 진행 후 아래 경로로 이어서 요청 테스트

HTTP 요청 URL
localhost:8080/hello

이후 다른 요청에는 요청 헤더에 등록된 Authorization 헤더 값으로 지속적인 요청을 전송하기 때문에 다른 리소스에도 접근이 가능한 상태

Last updated on