Trong spring-security-oauth2:2.4.0.RELEASE
các lớp như OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
và ClientCredentialsAccessTokenProvider
tất cả đã được đánh dấu là không dùng nữa.
Từ javadoc trên các lớp này, nó chỉ ra một hướng dẫn di chuyển bảo mật mùa xuân , trong đó nhấn mạnh rằng mọi người nên di chuyển đến dự án 5 bảo mật mùa xuân cốt lõi. Tuy nhiên, tôi gặp khó khăn khi tìm cách tôi sẽ triển khai trường hợp sử dụng của mình trong dự án này.
Tất cả các tài liệu và ví dụ nói về việc tích hợp với nhà cung cấp OAuth phần 3 nếu bạn muốn các yêu cầu đến ứng dụng của bạn được xác thực và bạn muốn sử dụng nhà cung cấp OAuth của bên thứ 3 để xác minh danh tính.
Trong trường hợp sử dụng của tôi, tất cả những gì tôi muốn làm là đưa ra yêu cầu với một RestTemplate
dịch vụ bên ngoài được bảo vệ bởi OAuth. Hiện tại tôi tạo một OAuth2ProtectedResourceDetails
id khách hàng và bí mật mà tôi chuyển vào OAuth2RestTemplate
. Tôi cũng có một tùy chỉnh ClientCredentialsAccessTokenProvider
được thêm vào OAuth2ResTemplate
mà chỉ cần thêm một số tiêu đề bổ sung vào yêu cầu mã thông báo được yêu cầu bởi nhà cung cấp OAuth mà tôi đang sử dụng.
Trong tài liệu bảo mật mùa xuân 5 tôi đã tìm thấy một phần đề cập đến việc tùy chỉnh yêu cầu mã thông báo , nhưng một lần nữa có vẻ như trong bối cảnh xác thực yêu cầu đến với nhà cung cấp OAuth bên thứ 3. Không rõ bạn sẽ sử dụng kết hợp này như thế nào ClientHttpRequestInterceptor
để đảm bảo rằng mỗi yêu cầu gửi đến một dịch vụ bên ngoài trước tiên sẽ nhận được mã thông báo và sau đó được thêm vào yêu cầu.
Ngoài ra, trong hướng dẫn di chuyển được liên kết ở trên có tham chiếu đến hướng dẫn OAuth2AuthorizedClientService
sử dụng trong phần mềm đánh chặn, nhưng một lần nữa, nó trông giống như những thứ giống như ClientRegistrationRepository
nơi nó duy trì đăng ký cho nhà cung cấp bên thứ ba nếu bạn muốn sử dụng cung cấp để đảm bảo yêu cầu đến được xác thực.
Có cách nào tôi có thể sử dụng chức năng mới trong bảo mật mùa xuân 5 để đăng ký nhà cung cấp OAuth để nhận mã thông báo để thêm vào các yêu cầu gửi đi từ ứng dụng của mình không?
WebClient
được sử dụng) hoặc một cái gì đó tương tự được sử dụng để lấy mã thông báo OAuth từ một nhà cung cấp OAuth tùy chỉnh (không phải là một trong những nhà cung cấp hỗ trợ OoTB như Facebook / Google) để thêm nó vào yêu cầu gửi đi. Tất cả các ví dụ dường như tập trung vào xác thực các yêu cầu đến với các nhà cung cấp khác. Bạn đã có bất kỳ con trỏ cho bất kỳ ví dụ tốt?