Tôi đang phát triển một ứng dụng để truy cập tài nguyên của riêng mình thông qua các điểm cuối Rest.Loại Cấp mật khẩu OAuth2 với Client_Id & Client_Secret
Người dùng được yêu cầu nhận mã thông báo truy cập qua email/mật khẩu. Sau khi hoàn thành cấu hình máy chủ xác thực, tôi đã quan sát này:
Với:
curl client:[email protected]:9999/uaa/oauth/token -d grant_type=password -d username=user -d password=password
Tôi nhận được câu trả lời đúng:
{"access_token":"7541a4f6-e841-41a0-8a54-abf8e0666ed1","token_type":"bearer","refresh_token":"d3fdd7e3-53eb-4e7b-aa45-b524a9e7b316","expires_in":43199,"scope":"openid"}
Tuy nhiên Với:
curl http://localhost:9999/uaa/oauth/token -d grant_type=password -d username=user -d password=password -d client_id=client -d client_secret=secret
Tôi gặp lỗi sau:
DEBUG 4123 --- [nio-9999-exec-7] o.s.s.w.a.ExceptionTranslationFilter : Access is denied (user is anonymous); redirecting to authentication entry point
org.springframework.security.access.AccessDeniedException: Access is denied at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:83)
Dường như client_id & client_secret không được nhận dạng khi gửi dưới dạng tham số. Đây có phải là một vấn đề cấu hình hoặc để làm với các phiên bản của OAuth2 Tôi đang sử dụng (mùa xuân-an ninh-OAuth2, 2.0.5.RELEASE)
Rất nhiều ví dụ tôi đi qua trên Internet cho thấy cách tiếp cận một nên làm việc với OAuth2.
Cảm ơn :)