gpt4 book ai didi

java - 如何使用 Spring Security 4.0.1.RELEASE 使用 Auth Token 实现 Rest Full Web 服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:28 27 4
gpt4 key购买 nike

我正在尝试使用 RESTful 网络服务设计 API 管理器。在 Spring 的新版本中,我们可以在 Java 代码中组合所有内容,而无需使用 web.xmlsecurityconfig.xml。根据 Authtoken 的概念,API manager 应该有 authtoken 和 refresh token 用于用户认证。拜托,任何人都可以给我示例源代码或指导如何使用 Spring Security 实现 RESTfull web 服务。

  1. 我需要知道所有配置是如何在 Java 代码中实现的。
  2. 它也应该有 Authtoken 的概念。

本教程说明了执行此操作的正确方法。

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

但是Spring Configuration在Spring.xml文件中。

我还需要将它们放入 Java 级别。

最佳答案

Stormpath 的人有一个非常简单的解决方案来实现 Oauth。请看Using Stormpath for API Authentication .

总而言之,您的解决方案将如下所示:

  1. 您将使用 Stormpath Java SDK轻松委派您所有的用户管理需求。
  2. 当用户按下登录按钮时,您的前端将通过其 REST API 将凭据安全地发送到您的后端。

    2.1。顺便说一下,Stormpath 大大增强了这里的所有可能性。您可以通过其 IDSite 将登录/注册功能完全委托(delegate)给 Stormpath,而不是拥有自己的登录页面。 ,或者您也可以将其委托(delegate)给 Servlet Plugin . Stormpath 还支持 Google、Facebook、LinkedIn 和 Github 登录。

  3. 您的后端随后将尝试根据 Stormpath 后端对用户进行身份验证,并将作为结果返回一个访问 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 贡献者。

关于java - 如何使用 Spring Security 4.0.1.RELEASE 使用 Auth Token 实现 Rest Full Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com