SpringbootSecurity

SpringbootSecurity/JWT를 위한 Security설정

25G 2021. 9. 7. 15:02

지금 현제 하고 있는 프로젝트는 Security를 기반으로 만들어졌기 때문에 JWT를 위한 Security설정을 해보겠다.

 

모델을 하나 만든다.

이제 yml설정에서 create로 바꿔주고 db에 테이블을 하나 만들면 된다.

 

Security설정

 

기본적으로 Seicurity설정은 다음과 같이 해준다.

그리고 몇가지 설정을 추가적으로 더 해줘야 한다.

서버 설정 추가

corsFilter는 SpringFramwork가 들고 있는 함수를 사용한다.

/api/로 들어오는 모든 주소는 이 config설정을 따라라고 설정을 해주고 return 해준다.

 

 

그리고 위와 같이 걸기만 하면 의미가 없고 filter에 등록을 해줘야 한다.

 

다시 SecurityConfig클래스로 가서 Security설정을 만져 준다.

 

이렇게 시큐리티 필터에 addFilter를 사용하면 cors (크로스 오리 진정책)을 다 무시하게 된다.

 

이렇게 Security설정을 해놓으면 어떻게 되냐면 이제 요청 거부가 되지 않는다. 

즉 Security를 쓰고는 있는데 Session을 사용하지 않으니까 모든 페이지로 접근이 가능해진다.

인증이 필요한 uri는 403반환하고
다른 이상한 uri로 요청하면 404로 나온다.

위 status코드를 보면 인증 체크는 잘 된 것을 확인할 수 있다.

 

JWT에 Security설정의 핵심은 지금까지 Security랑 다른 점은 Session을 없애고 staetless서버로 설정해 줬다는 점이고

cors정책을 벗어나서 모든 요청을 허용했다는 점

그리고 form로그인을 사용하지 않았다는 점이다.

 

git hub주소

 

https://github.com/fj2008/JWTstudy

 

GitHub - fj2008/JWTstudy

Contribute to fj2008/JWTstudy development by creating an account on GitHub.

github.com