apache shiro,在 1 次成功的基本身份验证后,它 returns 对于所有错误的凭据都是正确的

apacahe shiro ,after 1 successful basic authentication it returns true for all wrong credentials

我正在为我的 Rest 服务项目使用 Apache Shiro,但我无法让它按预期工作。

对于休息服务,我使用基本身份验证,首先,当我发送错误的用户名时,它 returns 401 正如预期的那样。

然后我发送正确的用户名和密码,它 returns 200 正如预期的那样。 作为第 3 步,当我再次发送错误的用户名时,它 returns 200,应该 return 401.

我想第一次成功登录后,它不需要任何身份验证过程again.How我可以强制它对每个请求进行身份验证吗? 我找不到任何理由或我应该在 shiro.ini.

中添加的任何参数

这是我的 shiro.ini:

您所看到的可能是您的客户的结果。在客户端将凭据发送到服务器之前 通常 必须询问它们(以 401 响应),客户端将添加身份验证 header。客户端可以使用“抢先式”身份验证解决此问题,它将在初始请求时发送 Authorization header。

您的服务器也可能配置为使用 cookie,服务器将首先处理 cookie,然后 return 200(客户端永远不会发送新凭据)。

如果这只是一个 REST server/client 设置,您可以使用 noSessionCreation 过滤器禁用 session 创建。

https://shiro.apache.org/web.html#default_filters

如果您仍然卡住,请查看您的 HTTP 日志并注意 headers(特别是 AuthorizationCookie headers)。