如何忽略特定过滤器中的会话

时间:2017-10-20 12:48:52

标签: shiro

我们有一些运行的过滤器,我们正在尝试实施" hybrid"文档中提到的方法。

用户可以通过Web表单登录,在大多数情况下可以使用创建的会话正常工作,但对于/ api / **调用,我们要强制使用令牌并忽略经过身份验证的用户来自表格登录。

/api/content/** : jwt, api, user
/api/**: noSessionCreation, jwt, api, end
/**: jwt, api, user

我们希望/ api / **忽略来自会话的任何经过身份验证的主题(由表单登录创建)。现在,如果我通过表单页面登录,会话将转移到/ api调用,并绕过在URL上传递令牌的需要。

因此,一旦我从表单登录,这些调用将起作用:

  • / API /信息
  • / API /信息?标记= 123
  • /api/content/hello.png< - 这是我唯一想根据来自
  • 的登录用户工作的人

我们的目标是基于文档中提到的混合方法:

  1. / api / **调用必须是无状态的,并始终使用传递给调用的令牌。
  2. / api / content / **可以使用会话,来自表单登录或标准过滤器链jwt和api调用
  3. / **几乎可以接受任何内容 - 会话或令牌。
  4. 有没有办法识别并强行(在过滤器中?)忽略来自会话的经过身份验证的用户?

1 个答案:

答案 0 :(得分:0)

听起来你需要实现自己的过滤器。 noSessionCreation过滤器不会创建会话,但不会停止使用现有会话。