Есть ли клиентский модуль Spring Social для ORCID?

Существует ли клиентский модуль Spring Social для ORCID (открытый идентификатор исследователя и участника)? Уже существуют клиентские модули для поставщиков услуг, таких как Spring Social Facebook, Spring Social Twitter, Spring Social LinkedIn и т. д.

ORCID предоставляет постоянный цифровой идентификатор, который отличает одного исследователя от другого. Он был принят во всем мире, и на момент написания (июнь 2016 г.) было зарегистрировано почти два с половиной миллиона идентификаторов ORCID iD.

ORCID предоставляет услугу SSO (Single Sign On) с ORCID на основе протокола OAuth 2.0. Растет число веб-приложений, которым необходима поддержка SSO с ORCID. И может быть даже больше веб-приложений, которые требуются для использования REST API ORCID на основе OAuth 2.0, например, для отправки статей/данных в реестр ORCID.

Фреймворк Spring Social широко используется для подключения приложений Spring к поставщикам API «программное обеспечение как услуга» (SaaS), таким как Facebook, Twitter и LinkedIn. Клиентский модуль Spring Social для ORCID, аналогичный Spring Social Facebook и т. д., значительно упростил бы разработку вышеупомянутых веб-приложений, и это было бы очень полезно для издателей, институтов и т. д. в академической области всех дисциплин вокруг Мир.


person Yuci    schedule 18.06.2016    source источник


Ответы (2)


Я создал проект Spring Social ORCID в качестве расширения Spring Social, обеспечивающего интеграцию с ОРЦИД. (Примечание: я посвятил этот проект PMC в Европе, новые версии будут выпущены в ее репозиторий GitHub< /а>)

Я также написал пример веб-приложения, в котором используется Spring Social ORCID модуль (а также Spring Social Facebook), чтобы протестировать модуль, а также продемонстрировать, как его использовать, почти так же, как с помощью Spring Social Facebook.

Вы можете использовать Spring Social ORCID не только в веб-приложениях, но и в своих веб-сервисах, как показано в пример проекта клиента spring social orcid в ветке rest_web_service. Веб-сервис также поддерживает функцию «Запомнить меня».

Любое веб-приложение может через JavaScript использовать веб-службу Spring Social на основе ORCID для подключения к ORCID. Я создал еще один пример проекта, чтобы продемонстрировать это, в котором используется метод Remember Я тоже.

Проект Spring Social ORCID еще далек от совершенства, но я думаю, что это неплохое начало :-) Вы также можете сделать форк и помочь улучшить его.

person Yuci    schedule 18.06.2016

Чтобы продолжить Юси, я создал репозиторий с примерами интеграции загрузки Spring и Spring. Некоторым не требуется ничего, кроме настройки. ORCID недавно выпустил OpenID Connect и неявную функциональность OAuth, и теперь вы также можете выполнять аутентификацию на стороне клиента, используя всего несколько javascript.

Изменения в конце ORCID означают, что для загрузки Spring требуется не более чем это:

@SpringBootApplication
@EnableOAuth2Sso
@Controller
public class ReallySimpleOrcidOauthApplication {

    @RequestMapping("/")
    @ResponseBody
    public final String home() {
        return "Welcome, " + SecurityContextHolder.getContext().getAuthentication().getName();
    }

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(ReallySimpleOrcidOauthApplication.class);
        Properties properties = new Properties();
        properties.put("security.oauth2.client.clientId", "XXX");
        properties.put("security.oauth2.client.clientSecret", "XXX");
        properties.put("security.oauth2.client.accessTokenUri", "https://sandbox.orcid.org/oauth/token");
        properties.put("security.oauth2.client.userAuthorizationUri", "https://sandbox.orcid.org/oauth/authorize");
        properties.put("security.oauth2.client.tokenName", "access_token");
        properties.put("security.oauth2.client.scope", "openid");
        properties.put("security.oauth2.resource.userInfoUri", "https://sandbox.orcid.org/oauth/userinfo");
        application.setDefaultProperties(properties);
        application.run(args);
    }
}

Также есть пример неявного потока на стороне клиента с использованием JWT. Этот и другие примеры подключения ORCID OAuth и OpenID можно найти на github.

person tom    schedule 09.11.2017