사용 버전은
- 스프링부트 2.1.x
- 스프링 시큐리티 5
- Hibernate 5
- MariaDB
- jjwt 0.9.1
스프링 시큐리티 필터 체인에 토큰을 얹어야하는데 어떻게 얹어야하는지 많이 알아봤다.
토큰을 제공하는 토큰 컴포넌트, 사용할 커스텀 필터와 UserDetailsService가 필요한데
토큰 컴포넌트와 커스텀 필터의 경우 라이브러리에 따라 구현법이 달라 고생을 좀 했다.
잘못된 자격증명
- 커스텀 필터를 통해서 발생시킨 403 Forbbiden 에러
Not granted any authorities
- 어떤 권한도 부여되지 않았을 때 발생하는 에러
나는 USRE_ROLE 이라는 Enum 클래스를 통해 권한을 생성했는데
이를 Spring security의 UserDetails가 제공하는 메소드 getAuthrities가 구현 하는 타입으로 구현하지 않아서 발생했다.
이 부분에서 enum class를 어떻게 넘겨야하나 많이 고민했음
Collection<? extends GrantedAuthority> getAuthorities