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(特别是 Authorization
和 Cookie
headers)。
我正在为我的 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(特别是 Authorization
和 Cookie
headers)。