-
[Spring] RequestContextHolder의 getRequestAttribute가 null이다?
Spring이 제공해주는 RequestContextHolder는 Request 정보를 쉽게 갖고올 수 있는 참 좋은 유틸이다. 일반적으로 ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest()로 요청 정보를 가져온다. 하지만 getRequestAttributes()이 null이라 오류가 나는 경우가 있다. 가장 많이 겪은 원인은 메서드의 주석을 보면 알 수 있다. Return the RequestAttributes currently bound to the thread or null if none bound ... Read More
-
[Spring] request의 inputstream (body) 재활용
Spring에서 @RequestBody 를 이용해 body 데이터를 받을 떈 내부적으로 HttpServletRequest의 inputStream에서 값을 가져온다. inputStream은 흐름이기때문에 미리 마킹해놓지 않으면 read()로 한 번 읽은 내용을 다시 읽을 수 없다. 때문에 @RequestBody로 선언한 객체가 만들어지기 전에 먼저 inputStream.read()를 실행시키면 이 후 값을 읽을 수 없어서 Required request body missing 이라는 에러가 나온다. 그래서 inputStream에 있는 body의 내용을 다시 사용 할 수 있게 request를 수정했다. Http... Read More
-
[JAVA] feign url values must be not be absolute 오류
오류 @FeignClient(url="http://localhost:8080") public interface MyFeignClient{ @GetMapping("{url}") Object getCall(@PathVariable String url, @RequemstParam("param") String param); } @Service public MyService { @Autowired MyFeignClient myFeignClient; public Object getCall() { return myFeignClient.getCall("http://localhost:8080... Read More
-
[IntelliJ] toolWindow Plugin 만들기
ToolWindow는? intelliJ 좌, 우, 하단에 위치한 바에 있는 항목들을 지칭한다. ToolWindow 만들기 기본적인 셋팅은 되어있다는 가정하에 방법은 다음과 같다. 1. 컴포넌트 만들기 간단하게 컴포넌트 몇가지로 구성했다. toolWindow 생성 시 메인 panel이 필요하므로 getter를 하나 생성해준다. public class MyPluginComponent { private JPanel rootPanel; private JTextField textField1; private JRadioButton radioButton1; private JRadi... Read More
-
애플 로그인 시 사용자명 문제
애플 로그인을 구현 중 사용자 프로필을 조회하는데 아무리 찾아봐도 사용자명이 없었다. 공식문서를 보니 사용자 정보인 id_token에도 이름을 안준다고 되어 있다. Apple doesn’t receive the user’s full name shared with the system UI. The raw data is passed directly to your app from the browser and is not included in the user’s identity token. To help prevent cross-site scripting attacks, validate and sanitize t... Read More