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 UnauthorizedHTTP 헤더
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