2015-05-07 15 views
6

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 :)

Trả lời

4

Không có phương pháp xác thực Máy khách chống máy chủ ủy quyền bắt buộc phải thực hiện bằng thông số kỹ thuật. Hai phương pháp đã được chỉ định rằng CÓ THỂ được hỗ trợ là mẫu Xác thực HTTP cơ bản và mẫu tham số HTTP POST mà bạn đã sử dụng trong các ví dụ của mình. Dường như mùa xuân chỉ hỗ trợ đầu tiên, có vẻ như được hỗ trợ bởi các tài liệu tại: http://projects.spring.io/spring-security-oauth/docs/oauth2.html

Các vấn đề liên quan