본문 바로가기

728x90

Spring Boot

[Spring security] AuthenticationEntryPoint 에러 해결 방법(with jwt) 문제 상황 사용자만 이용 가능한 서비스를 이용하기 전 회원인지 검증하는 부분에서 503 에러가 발생했다. api 사용 절차는 다음과 같았다. 상품 등록 api를 사용 시, 정상 데이터로 상품을 등록일부 정보를 누락시켜서 고의적으로 에러를 발생시킴다시 정상 데이터로 실행 결과기대 결과: 정상 동작발생 결과: UnavailableException이 발생   원인 AuthenticationEnrtyPoint클래스를 상속받은 클래스에서 예외 던지는 방식을 잘못 던지고 있었다. 사실 전달받은 객체를 바로 던지는 방법으로도 기능은 원하는 대로 동작했지만, 이왕이면 에러 결과를 깔끔하게 전달하고 싶었다.  기존 방식의 문제점서버에서 새로운 예외를 발생시켜서 던지기 때문에 기존에 전달받은 예외를 처리하지 못해서 서버에.. 더보기
[Spring boot] jwt strings must contain exactly 2 period characters. found: 0(with postman) 어제 상품 거래 api를 구현 중에 jwt 토큰을 가지고 상품 상세 조회하는 로직을 구현하고 있었다. 그런데 그 과정에서 아래 사진의 Exception을 가장 많이 접했다.   원인이 무엇인지 갈피를 잡지 못해서 다른 블로그를 참고했더니 postman에서 발급받은 jwt토큰을 이상한 곳에 설정하고 이용하려고 했었다(jwt는 내가 임의로 만든 환경변수이다).  그래서 다시 설정을 바꿔줬더니 해결되었다!  이제 편리하게 api를 테스트해 볼 수 있을 것 같다.   참고 블로그https://pingu514.tistory.com/52 PostMan jwt 토큰 한 번에 설정하기PostMan에서 jwt 토큰값을 여기저기 복붙으로 지정해야해서 너무 힘들었다. 토큰에 유효시간을 넣어놔서 일정 시간이 지나면 어김없이 .. 더보기
[Spring boot] SpringApplication.run(class, args) 지금까지 Spring boot를 활용해서 다양한 실습을 해봤지만, Spring boot를 가지고 첫 프로젝트를 진행했을 때부터 main() 내에 있는 SpringApplication.run(xxx.class, args);라는 코드가 너무 궁금했다. 마침 과제테스트도 끝났으니 이 코드에 대해서 찾아보았다.  Spring boot 프로젝트를 처음 생성하면(demo라고 지었다 가정), DemoApplication.java에서 다음과 같은 코드를 볼 수 있다. @SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.. 더보기