2016-07-05 14 views
0

Javaを使用してクライアントID /シークレットを使用してOAuthトークンをリフレッシュ/再生成できますか?もしそうなら誰か私を正しいリンクに導くことができますか?そうでない場合、登録済みアプリケーションは期限切れのベアラトークンを自動的にリフレッシュしますか?Java経由でOauthベアラトークンを生成

答えて

0

は、本体と/トークンにPOSTリクエストを行います" grant_type = refresh_token & refresh_token = tGzv3JOkF0XG5Qx2TlKWIA & client_id = xxx & client_secret = xxxxx "。あなたはapache HttpClientのようなライブラリを使って投稿要求を行い、もしあなたがgoogleの場合はサンプルを見つけることができます

+0

Chamila、私は次のエラーに遭遇しています。 INFO - LogMediator STATUS =デフォルトの 'fault'シーケンスを実行しています、ERROR_CODE = 403、ERROR_MESSAGE =指定されたリクエストのAPIで一致するリソースが見つかりません。コードは以下の通りです。 – sreedhar

+0

String clientId = "xx"; 文字列clientSecret = "yy"; 文字列refreshToken = "aaa"; String url = "http:// localhost:8280/token?grant_type = refresh_token&refresh_token =" + refreshToken + "&client_id =" + clientId + "&client_secret =" + clientSecret; HttpClientクライアント= HttpClientBuilder.create()。ビルド(); HttpGetリクエスト=新しいHttpGet(url); \t \t //request.addHeader("User-Agent "、USER_AGENT); HttpResponse response = client.execute(request); System.out.println( "レスポンスコード:" \t + response.getStatusLine()。getStatusCode()); – sreedhar

+0

BufferedReader rd = new BufferedReader( 新しいInputStreamReader(response.getEntity()。getContent())); StringBufferの結果=新しいStringBuffer(); 文字列= ""; while((行= rd.readLine())!= null){ \t result.append(line); } – sreedhar

0

私は質問には3つの命題を持っている:あなたが殺し/削除/現在のアクセストークンを取り消して別のものを要求することができる

  • を。 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( "パスワード"、 "refresh_token") .scopes( "スコープ") .resourceIds(」 restapi ") .secret(" 654321 ") .accessTokenValiditySeconds(60) .refreshTokenValiditySeconds(60)

乾杯

関連する問題