【问题标题】:Getting a 401 http response (sometimes) while request is proper在请求正确时获得 401 http 响应(有时)
【发布时间】:2018-09-09 09:27:19
【问题描述】:

我最近遇到了一个问题,我不知道如何处理它,甚至不知道问题可能来自哪里。

工具:

-MYSQL(用于数据库)

-JAVA EE Web 应用程序(作为后端服务)

-Jersey 2.26 依赖项(在 Web 应用程序/CORS 过滤器上作为 API 提供服务)

-Apache Tomcat/7.0.69(作为网络应用设置的网络服务器)

-Angular 4(作为 API 的网站和客户端)

-CentOS Linux release 7.3 (Core) (服务器操作系统)

问题:

一旦将请求发送到 API(发送到特定的安全端点),我们就可以称它为客户,有时响应是 401 Unauthorized,而在其他时候它工作得很好,例如从角度网站,如果按 f12 和按照请求,我再次发送相同的请求(对于我得到 ​​401 的那个)但是这次它可以工作,JWT 是有效的,它工作得很好,并不是说有太多的请求去服务器,甚至如果它很少,有时我会得到 401,但大多数时候效果很好。

代码中唯一可以返回 401 的是身份验证过滤器,它检查令牌的有效性,但对我来说看起来不错。

我检查了这个article,它谈到了 401 响应,但是,我仍然很难理解为什么它有时会很好地工作,而其他时候对相同的请求却不起作用。我在与网站核对以及与邮递员核对时得到 401。所以我想这不是缓存或 cookie 的事情,但我可能是错误的假设。

关于什么可能是错的任何想法?或者我应该在哪里检查错误或错误?

感谢分配

【问题讨论】:

  • 认证方案是什么?
  • 您是使用内置的 Tomcat 身份验证还是仅使用过滤器滚动自己的身份验证?如果只是过滤器,将@WebFilter注解注释掉(如果不使用注解,则将其从web.xml中删除),然后进行测试。如果它工作正常,那就是你的过滤器的问题
  • 什么是身份验证方案?,它的基本身份验证,首先用户发送用户名和密码然后他得到一个令牌,他必须使用授权标头中的令牌才能做事,有一个检查令牌本身有效性的网络过滤器,
  • 您是使用内置的 Tomcat 身份验证还是仅使用过滤器滚动自己的身份验证?是的,我正在使用我自己的过滤器,与这里的 link 非常相似,感谢您的建议,我会尝试一下。
  • @vikarjramun 我没有@WebFilter 注释,也没有在web.xml 中提及它,我只有nameBiniding 接口,看起来像这样@NameBinding @Retention(RUNTIME) @Target({TYPE, METHOD}) public @interface Secured { }

标签: api http tomcat jersey jax-rs


【解决方案1】:

将 tomcat 安全设置为 false。

【讨论】:

    猜你喜欢
    • 2015-12-07
    • 1970-01-01
    • 2020-04-28
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2014-12-27
    • 2022-01-24
    相关资源
    最近更新 更多