반응형
AuthenticationEntryPoint
Spring Security에서 인증이 필요한 리소스에 접근 시 발생하는 인증 예외를 처리하는 인터페이스 입니다.
인증이 필요한 리소스에 접근하려는 클라이언트의 요청이 인증되지 않았을 때 호출되어 사용자를 로그인 페이지로 리다이렉트하거나, 인증 오류 메세지를 반환하는 등의 작업을 수행합니다.
주요 메소드
commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException)
- 인증이 필요한 리소스에 접근하려는 클라이언트의 요청이 인증되지 않았을 때 호출
- 인증이 필요한 리소스에 접근하려는 클라이언트의 요청, 서블릿 요청 및 인증 예외를 받아 작업 처리
- 주로 인증되지 않은 사용자에 대한 처리 수행 및 일반적으로 로그인 페이지로 리다이렉트 or 인증 오류 메세지 반환
BasicAuthenticationEntryPoint 클래스
public class BasicAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean {
private String realmName;
// 기본 생성자
public BasicAuthenticationEntryPoint() {
}
// InitializingBean 인터페이스를 구현한 메소드
// realmName이 null이거나, 빈 문자열인 경우 예외를 발생 시키기 때문에,
// realmName이 설정되지 않았을 때의 오류를 방지하기 위한 것.
public void afterPropertiesSet() {
Assert.hasText(this.realmName, "realmName must be specified");
}
// 클라이언트가 인증되지 않은 리소스에 접근할 때 호출되는 메소드
// 클라이언트에게 WWW-Authenticate 헤더를 추가해, 인증이 필요하다는 메시지와 함께
// 'UNAUTHORIZED' 상태 코드 반환
// 이 메소드는,클라이언트의 요청이 인증되지 않았음을 나타내고,
// 클라이언트에게 Basic 인증을 요청하는 데 사용
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException {
response.addHeader("WWW-Authenticate", "Basic realm=\"" + this.realmName + "\"");
response.sendError(HttpStatus.UNAUTHORIZED.value(), HttpStatus.UNAUTHORIZED.getReasonPhrase());
}
// 현재 설정된 realmName 반환
public String getRealmName() {
return this.realmName;
}
// realmName 설정 메소드
public void setRealmName(String realmName) {
this.realmName = realmName;
}
}
반응형
'Spring' 카테고리의 다른 글
Spring Security | WebSecurity, HttpSecurity 두가지 주요 클래스에 대하여. (0) | 2024.03.13 |
---|---|
Spring Security | 핵심 메소드와 기능 설명 (0) | 2024.03.11 |
Spring Security | Spring Security란? (0) | 2024.03.11 |
SpringBoot | ResponseEntity란? (0) | 2024.03.11 |