스프링30 Spring Security - Failure Handler 공식적인 설명은 아래와 같다. - 실패한 인증 시도를 처리하는 데 사용되는 전략입니다. - 일반적인 동작은 사용자를 인증 페이지로 리디렉션하는 것일 수 있습니다(이 경우 양식 로그인)을 사용하여 다시 시도할 수 있습니다. 더 정교한 논리는 - 예외 유형에 따라 구현됩니다. Spring Security FailureHandler 로그인 실패 핸들러의 경우 onAuthenticationFailure 메소드로 인증 시도가 실패할 때 호출된다. 메소드의 인자에서 AuthenticationException 예외의 종류로는 아래와 같다. BadCredentialsException : 비밀번호불일치 UsernameNotFoundException : 계정없음 AccountExpiredException : 계정만료 Cr.. Tech/Spring 2023. 10. 11. Spring Security 예외 처리 스프링 시큐리티로 로그인을 구현하던 중 예외 처리에 대한 이슈가 있었다. AOP를 통해 공통 관리를 해주려고 했으나 기대했던대로 처리가 되지 않았다. import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; @ControllerAdvice public class AdminExceptionHandler { @ExceptionHandler(AcceptAdminException.class) public String handleAcceptAdminException(Accep.. Tech/Spring 2023. 10. 4. 사용자 정의 어노테이션 VS @Pattern 사용자 정의 어노테이션 1. 유연성 및 맞춤화: 사용자 정의 주석은 특정 요구 사항에 따라 동작 및 유효성 검사 규칙을 정의하므로 높은 수준의 유연성과 사용자 정의를 제공한다. 2. 복잡한 검증 논리: 사용자 정의 주석은 단순한 패턴 일치를 넘어 복잡한 검증 논리를 처리할 수 있다. 사용자 정의 주석을 사용하여 필드 간 유효성 검사 또는 비즈니스 규칙 확인과 같은 사용자 정의 유효성 검사 논리를 구현할 수 있다. 3. 코드 가독성 및 재사용성: 사용자 정의 주석은 이름이 잘 지정된 주석에 유효성 검사 규칙을 캡슐화하여 코드 가독성과 재사용성을 향상시킬 수 있다. 이렇게 하면 코드를 보다 자체적으로 문서화하고 유지 관리하기 쉽게 만들 수 있다. 4. 사용 제어: 사용자 정의 주석을 적용하는 위치와 방법을 .. Tech/Spring 2023. 9. 26. @Target @Target @Target 어노테이션은 Java 어노테이션을 어떤 요소(Element)에 적용할 수 있는지를 지정하는데 사용된다. @Target 어노테이션은 어떤 종류의 Java 요소에 어노테이션을 적용할 수 있는지를 나타내는 열거형 상수(ElementType) 배열을 값으로 가진다. 여기서 ElementType.TYPE은 어노테이션을 클래스, 인터페이스, 열거형(enum) 등의 타입 선언에 적용할 수 있음을 나타낸다. ElementType 종류 @Target 어노테이션은 다양한 ElementType 상수와 함께 사용될 수 있으며, 주요 ElementType 상수는 다음과 같다: ElementType.TYPE: 클래스, 인터페이스, 열거형(enum) 등의 타입 선언에 어노테이션을 적용할 수 있음을 나타.. Tech/Spring 2023. 9. 21. BindingResult vs Errors BindingResult와 Errors는 Spring Framework에서 사용되는 검증 결과를 담은 객체들로, 주로 웹 애플리케이션에서 폼 데이터 유효성을 검사하고 처리할 때 사용된다. 이 두 객체는 비슷한 역할을 하지만 약간의 차이가 있다. 1. BindingResult 주로 스프링 MVC 컨트롤러 메서드에서 데이터 바인딩 및 검증 결과를 수집하는 데 사용된다. 주로 폼 데이터를 엔티티 객체나 DTO 객체로 바인딩하고 검증할 때 활용된다. 특징 스프링 MVC 컨트롤러 메서드의 파라미터로 전달받는다. 주로 데이터 바인딩 및 유효성 검사 과정에서 발생하는 오류를 수집한다. 해당 컨트롤러 메서드에서 파라미터로 받은 BindingResult 객체를 통해 오류 정보를 확인하고 처리할 수 있다. BindingR.. Tech/Spring 2023. 9. 19. @NotNull vs @NotBlank vs @NotEmpty 특징 1. @NotEmpty 일반적으로 문자열 또는 컬렉션이 Null이 아니며 비어이지 않은지 확인하는 데 사용됨 문자열 (String, StringBuilder), 컬렉션(List, Set), Map에 적용됨 @NotEmpty private String username; @NotEmpty private List emailAddresses; 2. @NotBlank 문자열이 Null이 아니고 비어있지 않으며 공백이 아닌 하나 이상 포함되어 있는지 확인하는 데 사용됨 문자열 객체에만 적용될 수 있음 문자열에 공백 외의 의미 있는 내용이 포함되어 있는지 확인함 @NotBlank private String fullName; 3. @NotNull 필드 또는 매개변수가 Null이 아닌지 확인하는 데 사용됨 모든 유형의 .. Tech/Spring 2023. 8. 31. 이전 1 2 3 다음 728x90 반응형