我将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时,问题消失了
请协助我在日志文件中提供更多信息或解决此问题的方法。
更新
<jaxrs-roles-allowed-enabled>false</jaxrs-roles-allowed-enabled>
添加到glassfisf-web.xml
只会在日志文件中发出警告我在日志文件中看到以下内容:
无法加载服务类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)
我设法打开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] [[ 已完成响应状态: 200 / SUCCESSFUL | OK [---- ms]]]
还发现了这一点:REST Resources secured with Jersey filter not accessible after upgrade from 174 to 181
降级到Payara 4.1.2.174可以,但是目标服务器可能不支持
Payara 4.1.2.174