使用谷歌API与弹簧安全的OAuth2.0(Using Google API with spring

2019-07-03 17:22发布

我在这里搜索了一下,但没找到一个答案,我的问题。

我实施OAuth用户端与弹簧仲丁基OAUTH 2.0(1.0.0.RC2a)。 正确设置beans.xml中后,我高兴地得到有效的标记和所有看起来不错。 于是,我想用日历的API - 我不知道我该怎么办拨打电话获取日历对象。

我的(相关)的设置:(弹簧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>

而实现类:

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";
    }

}

这样做有结束:

请求处理失败; 嵌套的异常是错误= “INVALID_REQUEST”,ERROR_DESCRIPTION = “{错误= [{域= usageLimits,原因= accessNotConfigured,消息=访问未配置}],代码= 403,消息=访问未配置}”

当然,我做错了什么在我的“getTrustedMessage()”,所以我听到咨询专家...我想使用OAuth2RestTemplate,但我怎么知道URI我应该使用? 搜索(谷歌),我发现只有谷歌的代码示例,以及他们使用谷歌的OAuth(我不想使用 - 我宁愿使用Spring实现我的客户端)

有任何想法吗?

Answer 1:

得到它了!

我已经解决了这个问题,通过简单地使特定服务(让“403,消息=访问未配置”的东西), 谷歌API控制台,在“服务” ...



文章来源: Using Google API with spring-security-oauth2.0