Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring双会话管理的应用_Spring_Spring Security_Token_Jsessionid - Fatal编程技术网

Spring双会话管理的应用

Spring双会话管理的应用,spring,spring-security,token,jsessionid,Spring,Spring Security,Token,Jsessionid,我使用@Controller应用程序来查看web视图,使用@RestController应用程序来查看api层 控制器层需要会话,使用带有JSESSIONID的cookie 至于api层,我已经创建了JWT令牌,并在为auth提供给定令牌之前使用了filterBefore SecurityContextHolder.getContext().setAuthentication(authenticationToken) 现在我有问题了: 令牌身份验证需要sessionCreationPolicy

我使用
@Controller
应用程序来查看web视图,使用
@RestController
应用程序来查看api层

控制器层需要会话,使用带有
JSESSIONID
的cookie

至于api层,我已经创建了JWT令牌,并在为auth提供给定令牌之前使用了filterBefore
SecurityContextHolder.getContext().setAuthentication(authenticationToken)

现在我有问题了:

  • 令牌身份验证需要sessionCreationPolicy(sessionCreationPolicy.STATELESS)
  • web视图仍然需要
    JSESSIONID
  • 当然,api可以这样使用,但最终它使用
    JSESSIONID
    而不是token,所以如果我在
    Authorization
    头中更改token(例如,使用另一个用户),它仍将使用先前授权用户的凭据

    对于一组端点(例如:
    /api/**
    ),是否有能力使会话成为无状态的,并且在其他端点上始终是无状态的。 或者有没有可能让
    @Controller
    使用基于令牌的身份验证


    任何想法都可以使用JWT令牌。

    您可以同时使用JWT令牌。对于web视图,您可以将JWT令牌存储在cookie中,并从过滤器中的cookie中获取JWT令牌。如何从登录表单获取和附加令牌?成功登录后,您将JWT令牌存储在cookie中,并通过网页上的javascript从cookie中获取JWT,然后在过滤器中获取cookie。这是一个链接,您可以使用JWT令牌来实现这两个功能。对于web视图,您可以将JWT令牌存储在cookie中,并从过滤器中的cookie中获取JWT令牌。如何从登录表单获取和附加令牌?成功登录后,您将JWT令牌存储在cookie中,并通过网页上的javascript从cookie中获取JWT,然后在过滤器中获取cookie。这里是链接