2016-07-05 5 views
0

Java를 사용하여 클라이언트 ID/암호를 사용하여 OAuth 토큰을 새로 고침/재생성 할 수 있습니까? 그렇다면 누군가 나를 올바른 링크로 안내 할 수 있습니까? 그렇지 않은 경우 등록 된 응용 프로그램이 만료 된 무기명 토큰을 어떻게 자동으로 새로 고 칩니 까?Java를 통해 Oauth 무기명 토큰 생성

답변

0

은 몸에/토큰 POST 요청을" grant_type = refresh_token & refresh_token = tGzv3JOkF0XG5Qx2TlKWIA & client_id = xxx & client_secret = xxxxx ". 당신은 apache HttpClient와 같은 라이브러리를 사용하여 게시물 요청을 할 수 있으며 샘플을 찾을 수 있습니다.

+0

Chamila, 다음 오류가 발생합니다. INFO - LogMediator STATUS = 기본 '오류'시퀀스 실행, ERROR_CODE = 403, ERROR_MESSAGE = 지정된 요청에 대해 API에서 일치하는 리소스를 찾을 수 없습니다. 코드는 다음과 같습니다. – sreedhar

+0

String clientId = "xx"; 문자열 clientSecret = "yy"; 문자열 refreshToken = "aaa"; 문자열 url = "http : // localhost : 8280/token? grant_type = refresh_token & refresh_token ="+ refreshToken + "& client_id ="+ clientId + "& client_secret ="+ clientSecret; HttpClient client = HttpClientBuilder.create(). build(); 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 ((line = rd.readLine())! = null) { \t result.append (line); } – sreedhar

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 ("암호", "refresh_token도") .scopes ("범위") .resourceIds (" restapi ") .secret ("654321 ") .accessTokenValiditySeconds (60) .refreshTokenValiditySeconds (60)

건배