【问题标题】:HTTP Status 401 - Full authentication is required to access this resourceHTTP 状态 401 - 需要完全身份验证才能访问此资源
【发布时间】:2015-11-03 12:10:30
【问题描述】:

在某些链接上,我使用基本类型授权:用户名、密码并获取会话:“25C87AA2BFBFB3A1B70FECD9F4441738”。 现在我想手动访问具有相同会话的其他资源并放置标题: Cookie:JSESSIONID=25C87AA2BFBFB3A1B70FECD9F4441738

但出现错误: HTTP 状态 401 - 访问此资源需要完全身份验证

【问题讨论】:

  • 手动获取权限是什么意思?
  • 意思是,如果我已经有了session_id,就不需要再授权了。
  • 浏览器将会话 ID 设置为 cookie,并发送回每个请求...我没有浏览器,只有移动设备。我的问题是,如何手动发送http请求,所以这条消息不会出现。
  • 你在使用spring rest模板吗?
  • 不,只是弹​​簧安全

标签: spring rest http


【解决方案1】:

检查你的 pom.xml 中是否有 spring security 相关的 maven 依赖。如果不使用,请从 pom.xml 中删除依赖项。问题将得到解决。

【讨论】:

    【解决方案2】:

    您必须添加一个名为 Cookie 的 HTTP 标头,其值应为 JSESSIONID=<JSESSIONID VALUE>,根据您的问题,该值应为 JSESSIONID=25C87AA2BFBFB3A1B70FECD9F4441738

    通过这个服务器将检查会话是否已经通过身份验证,如果经过身份验证,它将允许访问资源。

    更新 1

    根据Postman Docs 有一些标题是受限的,不幸的是Cookie 就是其中之一。

    更新 2

    根据 v0.9.6 版本中的 Postman Docs,可以使用 Inspector 扩展发送受限标头。

    参考

    1. How are cookies passed in the HTTP protocol?
    2. Under what conditions is a JSESSIONID created?

    【讨论】:

    猜你喜欢
    • 2016-07-21
    • 2020-03-30
    • 2018-06-29
    • 1970-01-01
    • 2016-10-03
    • 2017-08-14
    • 2019-02-02
    • 2017-06-30
    • 2016-11-11
    相关资源
    最近更新 更多