Arhn - архитектура программирования

Пример интеграции Apache Oltu Github с Spring MVC

Я разрабатываю пример интеграции Apache Oltu Spring MVC Github. В этом примере я буду отправлять «Идентификатор приложения» и «Секрет», чтобы получить «access_token» для доступа к защищенным ресурсам, таким как «Gist», «user» и т. д.

Итак, первый шаг — создать/зарегистрировать «Приложение», используя https://github.com/settings/applications/new. После создания приложения обязательно обратите внимание: AppID и Secret, нам нужно, чтобы эти значения использовались в коде Spring.

Для разработки этого функционала/кода - много искал и не нашел готового кода. Поэтому я решил представить/объяснить свой код ниже. Так что можно найти эти ссылки полезными.

Я взял ссылку на следующие URL-адреса для разработки всего кода: -


Ответы:


1

Прилагается снимок экрана для регистрации «Приложения» на Github. «MyApp» — это приложение, которое я создал.

введите здесь описание изображения

Используйте тот же код из http://www.jasha.eu/blogposts/2013/09/retrieve-facebook-profile-data-java-apache-oltu.html, просто не забудьте изменить

AUTHORIZATION_URL = "https://github.com/login/oauth/authorize";

ACCESS_TOKEN_URL = "https://github.com/login/oauth/access_token"

Чтобы получить защищенный ресурс, такой как профиль пользователя, используйте: https://api.github.com/user

Вывод, который я получаю при запуске кода:

введите здесь описание изображения

02.05.2015

2

Пользователь 4798111 упомянул правильно и просто добавил некоторые подробности. Предварительное условие, вам необходимо зарегистрировать приложение на Github. После регистрации приложения вы получите CLIENT_SECRET,CLIENT_ID, которые будут использоваться для получения защищенных ресурсов с github.

Если вы используете OAuthClientRequest API для первоначального вызова, вам необходимо иметь следующие сведения.

private static final String AUTHORIZATION_URL = "https://github.com/login/oauth/authorize";
    private static final String CLIENT_ID = "8515a1e4XXXXXXX";
    private static final String CLIENT_SECRET = "ae3487601d891d257f7193XXXXXXXXX";
    private static final String REDIRECT_URL = "http://localhost:8080/apache-oltu/github/redirect";
    private static final String ACCESS_TOKEN_URL = "https://github.com/login/oauth/access_token";

    @RequestMapping(value = "/auth", method = RequestMethod.GET)
    public String authenticate() throws OAuthSystemException {
        OAuthClientRequest request = OAuthClientRequest
                .authorizationLocation(AUTHORIZATION_URL)
                .setClientId(CLIENT_ID)
                .setRedirectURI(REDIRECT_URL)
                .setResponseType("code")
                .setScope("user,gist,user:email,user:follow,public_repo,repo,repo_deployment,repo:status,repo:invite")
                .buildQueryMessage();

        System.out.println("REDIRECT TO: "+request.getLocationUri());
        return "redirect:" + request.getLocationUri();
    }

То же самое, что вам нужно будет использовать, как показано ниже.

request= new OAuthBearerClientRequest("https://api.github.com/user").
                setAccessToken(oAuthResponse.getAccessToken()).
                buildQueryMessage();

Информацию о прицелах и другие детали можно найти здесь:

Результат, который можно увидеть, приведен ниже для справки:

{  
   "login":"JavaHelper",
   "id":8208031,
   "avatar_url":"https://avatars0.githubusercontent.com/u/8208031?v=4",
   "gravatar_id":"",
   "url":"https://api.github.com/users/JavaHelper",
   "html_url":"https://github.com/JavaHelper",
   "followers_url":"https://api.github.com/users/JavaHelper/followers",
   "following_url":"https://api.github.com/users/JavaHelper/following{/other_user}",
   "gists_url":"https://api.github.com/users/JavaHelper/gists{/gist_id}",
   "starred_url":"https://api.github.com/users/JavaHelper/starred{/owner}{/repo}",
   "subscriptions_url":"https://api.github.com/users/JavaHelper/subscriptions",
   "organizations_url":"https://api.github.com/users/JavaHelper/orgs",
   "repos_url":"https://api.github.com/users/JavaHelper/repos",
   "events_url":"https://api.github.com/users/JavaHelper/events{/privacy}",
   "received_events_url":"https://api.github.com/users/JavaHelper/received_events",
   "type":"User",
   "site_admin":false,
   "name":"JavaProgramer",
   "company":null,
   "blog":"",
   "location":null,
   "email":null,
   "hireable":null,
   "bio":null,
   "public_repos":45,
   "public_gists":0,
   "followers":4,
   "following":60,
   "created_at":"2014-07-19T10:03:42Z",
   "updated_at":"2017-09-09T12:55:57Z",
   "private_gists":0,
   "total_private_repos":0,
   "owned_private_repos":0,
   "disk_usage":142270,
   "collaborators":0,
   "two_factor_authentication":false,
   "plan":{  
      "name":"free",
      "space":976562499,
      "collaborators":0,
      "private_repos":0
   }
}
26.09.2017
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..