로그인이 실패할때, auth/loginForm로 이동하는 것을 보고 failureUrl 설정
하지만 이래도 해결되지 않았고, 추가적 원인으로 userLoginFailHandler 설정이 덮어쓰고 있다고 생각되어 Handler를 수정
여기서 setDefaultFailureUrl을 수정
setDefaultFilureUrl("login?error=true & exception="+errorMessage)
올바른 url과 에러메세지가 출력되는걸 확인!
failureUrl()
과 failureHandler()
를 모두 지정한 경우, failureHandler()
가 우선순위가 더 높다는걸 학습했다.
failureUrl()
은 단순 리다이렉트 URL만 지정하고,
failureHandler()
은 로그인 실패시, 다양한 로직을 커스텀하기 때문에 Spring Security에서는 failureHandler()
을 우선시 처리한다!
무한 루프
발생먼저 출력하는 부분인 댓글 Entity의 toString()
을 다시 한번 검토했다
해당 entity에서 post를 출력하게 되어있어 서로 무한 참조가 되는 원인을 발견하고 post를 제거했다
무한 루프에 빠지지 않고 잘 출력이 되는것을 확인했다!
난 아직 DTO
를 제대로 학습하지 못해서 Entity에 직접 구현하는 방식으로 사용했다. 하지만 이렇게 되면 생기는 단점이 여러가지가 있다.
Single Responsibility Principle
위배ex) @RequestParam 등
특정 기술 스택에 종속되는 코드가 된다.{
"timestamp": "2024-06-11T14:41:14.361+00:00",
"status": 415,
"error": "Unsupported Media Type",
"path": "/post/1"
}
form-data
방식으로 댓글을 생성 요청할 시, 미디어 타입을 지원하지 않는 문제 발생무사히 댓글 추가가 완료되는 것을 확인했다!
@ModelAttribute
@RequestParam
query string
또는 폼 데이터 form data
에서 특정한 파라미터 값을 추출해 반영함@RequestBody
Json
데이터를 자바 객체로 매핑할 때 사용form-data
형식으로도 받고 싶다면, HttpMessageConverter
를 추가 설정 해줘야함프로젝트 깃허브 : https://github.com/Hun425/4week_spring