首页 > 解决方案 > 从 4.1.1 升级 Payara 后获取身份验证失败。至 4.1.2

问题描述

我正在将 Payara 从 4.1.1 升级到 4.1.2.181,现在调用我的 Auth 端点时得到 401。我的身份验证端点返回 200(好的),但调用应用程序从 Payara 获得 401(据我所知)

父 pom.xml:

...
<dependency>
    <groupId>fish.payara.extras</groupId>
    <artifactId>payara-embedded-all</artifactId>
    <version>4.1.2.181</version>
    <scope>provided</scope>
</dependency>
...
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>2.25</version>
    <scope>test</scope>
</dependency>

子项目 pom.xml

...
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.27</version>
    <scope>provided</scope>
</dependency>
...

当我切换回版本 4.1.1 时问题就消失了

请协助我如何在日志文件中获取更多信息或解决此问题。

更新

  1. 这似乎与使用JWT的 4.1.2.181 有关?
  2. 添加<jaxrs-roles-allowed-enabled>false</jaxrs-roles-allowed-enabled>glassfisf-web.xml仅在日志文件中给出警告
  3. 我在日志文件中看到以下内容:

    无法加载服务类fish.payara.appserver.roles.api.extension.RolesCDIExtension org.osgi.framework.BundleException:捆绑fish.payara.appserver.cdi-auth-roles [374]中未解决的约束:无法解析374.0:缺少要求 [374.0] osgi.wiring.package;(osgi.wiring.package=fish.payara.cdi.auth.roles)

  4. 我设法打开了 Jersey 的跟踪日志记录,并在日志文件中得到了以下最后一个跟踪:

    [2018-07-17T14:41:02.968+0200] [Payara 4.1] [FINE] [] [org.glassfish.jersey.tracing.general] [tid: _ThreadID=28 _ThreadName=http-thread-pool::http- listener-1(2)] [timeMillis: 1531831262968] [levelValue: 500] [CLASSNAME: org.glassfish.jersey.message.internal.TracingLogger$TracingLoggerImpl] [METHODNAME: logImpl] [[ FINISHED 响应状态:200/SUCCESSFUL|OK [ - - 小姐]]]

  5. 还发现了这一点:从 174 升级到 181 后无法访问使用 Jersey 过滤器保护的 REST 资源

  6. 降级到 Payara 4.1.2.174 有效,但目标服务器可能不支持

  7. 目标服务器支持 Payara 4.1.2.174

标签: payara

解决方案


推荐阅读