通过Java生成Oauth Bearer令牌

时间:2016-07-05 07:49:37

标签: java oauth wso2is wso2-am

我们可以使用Java使用客户端ID /密钥刷新/重新生成OAuth令牌吗?如果是这样,有人可以引导我到正确的链接吗?如果没有,注册的应用程序如何自动刷新过期的承载令牌?

2 个答案:

答案 0 :(得分:0)

我对这个问题有三个主张:

  • 你可以杀死/删除/撤销当前的访问令牌并要求另一个令牌。检查TokenStore的文档:http://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/provider/token/TokenStore.html。这是一个示例代码:

    @Autowired
    private TokenStore tokenStore;
    
    @RequestMapping(value = "/oauth/revoke-token", method = RequestMethod.GET)
    public void revoke(HttpServletRequest request) {
        String authHeader = request.getHeader("Authorization");
        if (authHeader != null) {
            String tokenValue = authHeader.replace("Bearer", "").trim();
            OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
            tokenStore.removeAccessToken(accessToken);
        }
    }
    
  • 或者当您需要访问令牌时,您可以询问刷新令牌。使用此刷新令牌,您可以请求/刷新新的访问令牌。这里是令牌的示例代码:

    clients.inMemory()                 .withClient( “123456”)                 .authorizedGrantTypes(“password”,“refresh_token”)                 .scopes( “范围”)                 .resourceIds( “RESTAPI”)                 .secret( “654321”)                 .accessTokenValiditySeconds(60)                 .refreshTokenValiditySeconds(60)

干杯

答案 1 :(得分:0)

向/ body执行POST请求" grant_type = refresh_token& refresh_token = tGzv3JOkF0XG5Qx2TlKWIA& client_id = xxx& client_secret = xxxxx" 。您可以使用像apache HttpClient这样的库来发布请求,如果你谷歌就可以找到样本