2015-10-05 3 views
1

Привет, я застрял в проблеме oauth2. Я не использую весну. У меня есть некоторые веб-службы JAX-RS, созданные с использованием банок jersey от netbeans. Я должен защитить эти службы, используя oauth 2, чтобы мобильный клиент мог использовать его, не сохраняя учетные данные пользователя. Я даже не знаю, с чего начать, поскольку все примеры, которые я вижу, используют Spring ... те, которые не используют Spring, используют библиотеку Oltu, документация которой не убеждает меня. Некоторые образцы oltu даже не работают. Может ли кто-нибудь показать мне учебник, который поможет мне создать сервер авторизации с нуля, используя трикотаж и некоторую библиотеку? любой один даже oltu ...oAuth 2 реализация java

+0

Вы можете получить образец из примеров весенних – haseeb

+0

я выложу вам объяснение, но сначала мне нужно знать: понимаете ли вы функцию функции OAuth и ее многочисленные части (клиент, пользователь, сервер ressource и т. д.)? – Nathan

+0

@ user3252187 Я отправил вам пример того, как может выглядеть тестовый клиент, на основе примера [oltu] (https://cwiki.apache.org/confluence/display/OLTU/OAuth+2.0+Client+Quickstart) и мой собственный код (который в основном поступает из Интернета). – Nathan

ответ

0

Мой ответ будет основан на Oltu. Я буду использовать CLIENT_CREDENTIALS authent.

Получение маркеров должны выглядеть следующим образом:

// We initialize a client 
OAuthClient lOAuthClient = new OAuthClient(new URLConnectionClient()); 
OAuthJSONAccessTokenResponse lOAuthResponse; 

// We are creating a request that's already formatted following the Oauth specs 
OAuthClientRequest lRequest = OAuthClientRequest 
     .tokenLocation(TOKEN_SERVER_URI) 
     .setGrantType(GrantType.CLIENT_CREDENTIALS) 
     .setClientId(CLIENT_ID) 
     .setClientSecret(CLIENT_SECRET) 
     .setScope("admin") 
     .buildBodyMessage(); 

//This will submit the request 
String code = lOAuthClient.accessToken(lRequest, OAuthJSONAccessTokenResponse.class).getAccessToken(); 
System.out.println("Token obtained:" + token); 

Теперь мы можем получить наши Ressource с помощью нашей фишки:

HttpURLConnection resourceConn = (HttpURLConnection) (new URL(RESSOURCE_SERVER_URI).openConnection()); 
resourceConn.addRequestProperty("Authorization", "Bearer " + token); 

InputStream resource = resourceConn.getInputStream(); 

// Do whatever you want to do with the contents of resource at this point. 
BufferedReader r = new BufferedReader(new InputStreamReader(resource, "UTF-8")); 
String line = null; 
while ((line = r.readLine()) != null) 
    System.out.println(line); 

 Смежные вопросы

  • Нет связанных вопросов^_^