2012-11-09 35 views
5

Tôi đã tìm kiếm ở đây một chút nhưng không thể tìm thấy câu trả lời cho vấn đề của mình.Sử dụng Google API với spring-security-oauth2.0

Tôi triển khai ứng dụng khách OAuth với spring-sec-oAuth 2.0 (1.0.0.RC2a). Sau khi thiết lập đúng bean.xml, tôi vui vẻ nhận được một mã thông báo hợp lệ và tất cả đều có vẻ tốt. Sau đó, tôi muốn sử dụng API lịch - Tôi không chắc chắn làm cách nào để thực hiện cuộc gọi để nhận đối tượng Lịch.

của tôi (có liên quan) cài đặt: (mùa xuân-servlet.xml)

<!--apply the oauth client context--> 
<oauth:client id="oauth2ClientFilter" /> 

<oauth:resource id="google" 
    type="authorization_code" 
    client-id="<my client id>" 
    client-secret="<my client secret>" 
    access-token-uri="https://accounts.google.com/o/oauth2/token" 
    user-authorization-uri="https://accounts.google.com/o/oauth2/auth" 
    scope="https://www.googleapis.com/auth/calendar" 
    client-authentication-scheme="form" 
    pre-established-redirect-uri="https://ohad.sealdoc.com/oauth2-client/hello" /> 

<bean id="googleClientService" class="com...GoogleClientServiceImpl"> 
    <property name="butkeDemoRestTemplate"> 
     <oauth:rest-template resource="google" /> 
    </property> 

và lớp thực hiện:

public class GoogleClientServiceImpl implements DemoService 
{ 
    private RestOperations butkeDemoRestTemplate; 

    @Override 
    public String getTrustedMessage() 
    { 
     String dataUri = "https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=writer"; 

     Calendar service = butkeDemoRestTemplate.getForObject(dataUri, Calendar.class); 
     return "demo"; 
    } 

} 

Làm như vậy kết thúc với:

Yêu cầu xử lý thất bại; lồng nhau ngoại lệ là lỗi = "invalid_request", ERROR_DESCRIPTION = "{lỗi = [{domain = usageLimits, lý do = accessNotConfigured, message = Truy cập Not Configured}], mã = ​​403, message = Truy cập Not Configured}"

Chắc chắn, tôi đang làm điều gì đó sai trong "getTrustedMessage()", vì vậy tôi được nghe ý kiến ​​của các chuyên gia ... Tôi muốn sử dụng OAuth2RestTemplate, nhưng làm cách nào để biết URI tôi nên sử dụng? Sau khi tìm kiếm (Google), tôi chỉ tìm thấy các ví dụ về mã Google và họ sử dụng Google oAuth (mà tôi không muốn sử dụng - Tôi muốn sử dụng triển khai Spring cho khách hàng của mình)

bất kỳ ý tưởng nào?

+0

Bạn có thể xin vui lòng chỉ tôi đến một bài viết tốt đẹp nơi tôi có thể triển khai Ứng dụng OAuth của riêng tôi dựa trên Bảo mật mùa xuân và sử dụng Google làm nhà cung cấp. Sẽ thực sự đánh giá cao nó. –

+1

@Anand Tôi nghĩ bài viết hay nhất là trang wiki Spring-Security-oAuth. bạn có tất cả các chi tiết về cách viết ứng dụng khách và tài nguyên được bảo vệ của bạn và nhà cung cấp nhận dạng sẽ là google, vì vậy bạn phải định cấu hình XML của tài nguyên được bảo vệ. https://github.com/SpringSource/spring-security-oauth/wiki/oauth2 – OhadR

+0

Cách thức và thời điểm người dùng được chuyển hướng đến trang chấp thuận? Tôi đang cố triển khai đăng ký người dùng bằng Oauth2 & Google với tư cách là nhà cung cấp. http://stackoverflow.com/questions/20664846/user-registration-login-using-spring-security-oauth-2-0 –

Trả lời

3

GOT IT!

Tôi đã giải quyết vấn đề này (nhận được "403, message = Truy cập Not Configured" điều) bằng cách kích hoạt các dịch vụ cụ thể trong Google APIs Console, under "Services" ...

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