2015-06-01 2 views
3

Я пытаюсь создать API-менеджер с веб-сервисом RESTful. В новом выпуске Spring мы можем комбинировать все в Java-коде без использования web.xml или securityconfig.xml. Согласно концепции Authtoken, менеджер API должен иметь аутентификацию и обновление токена для аутентификации пользователя. Пожалуйста, можете ли вы дать мне исходный код или руководство по внедрению RESTfull webservice с Spring Security.Как реализовать отдых Полный веб-сервис с Auth Token с использованием Spring Security 4.0.1.RELEASE

  1. Мне нужно знать, как все конфигурации реализуются в Java-коде.
  2. он также должен иметь концепцию Authtoken.

В этом учебнике скажите правильный способ сделать это.

http://www.beingjavaguys.com/2014/10/spring-security-oauth2-integration.html

Но весна конфигурации в Spring.xml файле.

Мне также нужно добавить их на уровень Java.

+0

Что вы подразумеваете под концепцией Authtoken? Вы имеете в виду [OAuth2] (http://oauth.net/2/)? –

+0

Я имею в виду Обычно, когда мы подключаемся к API, они дают токен и обновляют токен для клиента. Когда время токена истекло, мы можем получить новый токен, указав токен обновления. Мне нужно, как это достигается в Spring Security. :) –

+0

Возможно [Spring Security OAuth2 samples] (https://github.com/spring-projects/spring-security-oauth/tree/2.0.7.RELEASE/samples/oauth2) может вам помочь. У них есть образцы для стороннего клиента и сервера. –

ответ

2

Люди в Stormpath имеют довольно простое решение для достижения Oauth. Пожалуйста, взгляните на Using Stormpath for API Authentication.

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

  1. Вы будете использовать Stormpath Java SDK легко делегировать все свои потребности управления пользователями.
  2. Когда пользователь нажимает кнопку входа в систему, ваш интерфейс будет безопасно отправлять учетные данные на ваш backend-end через свой REST API.

    2.1. Кстати, Stormpath значительно расширяет все возможности здесь. Вместо своей собственной страницы входа вы можете полностью делегировать функцию входа/регистрации в Stormpath через свой IDSite, или вы также можете делегировать его Servlet Plugin. Stormpath также поддерживает логин Google, Facebook, LinkedIn и Github.

  3. Ваш бэкэнд будет пытаться проверить подлинность пользователя против Stormpath Backend и возвращает access token в результате:

    /** This code will throw an Exception if the authentication fails */ 
    public void postOAuthToken(HttpServletRequest request, HttpServletResponse response) { 
        Application application = client.getResource(applicationRestUrl, Application.class); 
    
        //Getting the authentication result 
        AccessTokenResult result = (AccessTokenResult) application.authenticateApiRequest(request); 
    
        //Here you can get all the user data stored in Stormpath 
        Account account = accessTokenResult.getAccount(); 
    
        response.setStatus(HttpServletResponse.SC_OK); 
        response.setContentType("application/json"); 
    
        //Return the Access Token 
        response.getWriter().print(token.toJson()); 
        response.getWriter().flush(); 
    } 
    
  4. Тогда для каждого аутентифицированного запроса, ваш бэкэнд будет делать:

    /** This is your protected API */ 
    public void sayHello(HttpServletRequest request, HttpServletResponse response) { 
        Application application = client.getResource(applicationRestUrl, Application.class); 
    
        OauthAuthenticationResult result = (OauthAuthenticationResult) application.authenticateOauthRequest(request).execute(); 
    
        System.out.println(result.getApiKey()); 
        System.out.println(result.getAccount()); 
    
        //At this point the authorization was successful, you can now allow the actual operation to be executed 
        doSayHello(); 
    } 
    

Все это не потребует специальной конфигурации Spring Security, это простой Java-код, который можно запускать в любой среде.

Просьба посмотреть here для получения дополнительной информации.

Надеюсь, что это поможет!

Отказ от ответственности, я активный участник Stormpath.

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