항해99 day38 -2021/12/08
-to do list
jwt토큰오류 수정소스트리 깃 공부spring 시큐리티 수정CRUD입출력
- 오늘 한일
-JWT토큰 수정
프론트단에 출력하는 부분은 해결했지만 토큰을 헤더에 받아와서 로그인 권한을 인가하는 부분을 해결하지 못했었다. 멘토님과의 질의응답을 통해 POSTMAN을 이용해 헤더부분에 발급한 토큰값을 넣어서 우리가 사용할 수있다는것을 알게되었다.
포스트맨에서 Authorization BEREA를 통해 보내면 되는줄 알았는데, JWT토큰을 발급할때 우리는 X-AUTH-TOKEN이라는 이름으로 발급했기에 이것과 동일한 이름에 넣어서 헤더에 보내줘야 했다.
헤더에서 받아온 값을 userdetails에서 찾아오는 과정에서 username값이 찾아지는것이 아닌 id값이 출력되어 로직에 맞는 값이 아니었다.
이유를 찾아보니 토큰payload값에 유저id,name순으로 저장시켰기 떄문이라는 것을 발견했다.
저장 순서를 바꿔주니 username을 출력할 수 있게 되었다.
-sprig security
jwt토큰 인증방식으로 로그인이 되었다면 토큰을 가지고 있기 때문에 시큐리티로 인해 허가되지않았던 부분도 이제 사용을 가능하게 만들었다. 하지만 바로 오류가 발생했다.
jwt토큰을 헤더부분에서 읽어오지 못하고 jwt토큰이 null로 처리되어 어느부분도 접근이 불가했다.
- .httpBasic().disable() : rest api 이므로 basic auth 인증을 사용하지 않는다는 설정입니다.
- .csrf().disable() : rest api 이므로 csrf 보안을 사용하지 않습니다.
- .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) : JWT를 사용하기 때문에 세션을 사용하지 않는다는 설정입니다.
- http.headers().frameOptions().disable() : x - frame - options 로인해 헤더에 있는 jwt값을 가져오지 못하기 떄문에 설정을 끄고 가져옴
-CRUD 수정
JWT 토큰인증이 되어 userdetails값을 받아와서 처리해야하는 부분들을 확인 할수 있게되어 우리가 짠 로직대로 권한이 있는사람만 게시글,댓글을 입력,수정,삭제를 확인하며 오류부분을 수정함
'코딩 > TIL,WIL' 카테고리의 다른 글
항해99 day40 2021/12/10 (0) | 2021.12.10 |
---|---|
항해99 day39 2021/12/09 (0) | 2021.12.09 |
항해99 day37 -2021/12/07 (0) | 2021.12.07 |
항해99 Day36 -2021/12/06 (0) | 2021.12.07 |
항해 99 WIL(Weekly I Learned)-2021/12/05 (0) | 2021.12.07 |