如何使用Spring从REST服务中的标头访问Access Tokem?

时间:2017-07-05 13:46:01

标签: spring oauth-2.0

我有一个与客户端应用程序一起使用的REST服务。客户端应用程序从Auth服务器获取持有者令牌。当我的应用程序向REST服务发送请求以识别用户时,我想使用此令牌。

curl --header "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBEb2UifQ.xuEv8qrfXu424LZk8bVgr9MQJUIrp1rHcPyZw_KSsds" "http://localhost:8080/greeting"

令牌包含关于谁是用户的信息(参见https://jwt.io/),在这种情况下,名称为" John Doe"。

目前我有以下控制器:

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";

    @RequestMapping(value = {"/greeting/{name}"})
    public String greeting(@PathVariable String name, HttpServletRequest request)
    {
        return String.format(template,name);
    }
}

而不是路径变量中的名称,它应该使用来自承载令牌的名称,并且只有在它是有效令牌时才应该这样做。我的猜测是有一种方法可以添加一个带弹簧安全性的配置,检查它是否是一个有效的令牌,然后将令牌中的信息暴露给控制器。

我知道我可以使用@RequestHeader("Authorization")访问令牌,但我希望在此之前至少有一种方法可以验证令牌的有效性(例如,令牌中会有一个时间戳来检查它是否仍然存在有效)。

0 个答案:

没有答案