반응형

403

... 대체...뭐가 잘못된거지...............하......................................

 

Spring에서 발생하는 403 에러는 Forbidden을 의미합니다. 이는 클라이언트가 요청을 보냈지만 해당 요청을 수행할 권한이 없음을 나타냅니다.(Token 값이 없거나? 코드가 잘못되었거나?.....)


Spring Security에서는 기본적으로 권한 부여(Authorization)를 관리합니다. 사용자가 특정 리소스에 접근하려고 할 때 해당 사용자가 그 작업에 필요한 권한을 가지고 있지 않을 때 403 에러가 발생할 수 있습니다.


403 에러를 해결하기 위한 접근 방법

1. 권한 설정 확인

사용자에게 필요한 권한이 있는지 확인합니다. Spring Security 설정에서 어떤 권한이 필요한지 확인하고, 해당 권한을 부여해야 합니다.
2. Security 설정 확인

Spring Security 설정에서 제한된 URL이나 리소스를 확인하고, 접근 권한을 설정해야 합니다.
3. 컨트롤러 및 서비스 계층에서의 권한 검사

코드에서 권한 검사를 수행하는 부분을 확인하고, 사용자가 요청한 작업을 수행하기 위한 충분한 권한이 있는지 확인합니다.
4. 사용자 권한 관리

사용자의 권한을 관리하기 위해 Spring Security의 사용자 권한 관리 기능을 사용하여 사용자에게 필요한 권한을 할당합니다.

발생한 에러... 

발생 에러

UsernamePasswordAuthenticationToken의 세 번째 매개변수로 getAuthorities()메서드가 빠지면, 권한 정보를 제공하지 않게 됩니다. 이 경우, 해당 사용자는 권한이 없는 상태로 인증될 수 있습니다. Spring Security에서 권한은 사용자가 특정 작업을 수행할 수 있는 권한을 정의합니다. 사용자가 갖춰야 하는 권한 정보는 해당 사용자의 UserDetails 객체에 포함되기 때문에, UsernamePasswordAuthenticationToken의 세 번째 매개변수를 null이나 다른 값으로 설정하면 해당 사용자에 대한 권한 정보를 제공하지 않는 것입니다.
그러면 사용자는 인증은 되었지만, 권한이 없는 상태가 됩니다.  사용자가 리소스에 접근하려고 할 때 권한이 없어서 접근을 거부당할 수 있음을 의미합니다. 따라서 애플리케이션에서 특정 작업을 수행하는 데 필요한 권한을 부여하기 위해서는 getAuthorities() 메서드를 통해 사용자의 권한을 명시적으로 설정해주어야 합니다. 

해결

 

728x90

'알쓸I잡(알면 쓸모있는 IT 잡학사전)' 카테고리의 다른 글

The requested URL returned error: 403  (0) 2023.12.27
TDD  (0) 2023.12.01
VS CODE 태그 쉽게 감싸는방법  (0) 2023.10.11