问题标签 [microprofile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

openapi - OpenAPI 仅获取一个路径的文档?


我正在使用 OpenAPI 记录 Microprofile 应用程序。由于端点包含大量方法,我想知道是否可以通过 /openapi REST 进行过滤,以便它只返回一个特定的路径,例如“/users”。谢谢

0 投票
1 回答
102 浏览

java - 使用 eclipse microprofile-config 自定义配置文件

我想在运行时选择 .properties 文件。microprofile-config可以吗?因此,我想使用外部文件,而不是使用 META-INF/microprofile-config.properties:

我知道,可以编写自定义配置源,但我想知道是否有一个内置选项来定义配置文件,从而避免在每个项目中重复代码

0 投票
1 回答
181 浏览

java - 如何在运行时将验证公钥添加到 openliberty 微配置文件中的 mp-jwt 以供 Cloud Foundry 使用?

基于此文档:https ://www.ibm.com/support/knowledgecenter/de/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_sec_json.html可以将验证密钥添加到密钥库或在设计时对其进行硬编码。我遇到的问题是我在运行时通过 Cloud Foundry 服务绑定获得了验证密钥。所以我必须在运行时从我的 VCAP 中提取这个密钥。知道我应该在哪里调查吗?

0 投票
2 回答
420 浏览

java - 为官方 Docker 映像 microProfile3java11 打开 Liberty SSLHandshakeException

我正在尝试使用简单的 JAX-RS 客户端访问虚拟 REST API,例如https://reqres.in/api/usershttps://jsonplaceholder.typicode.com/todos :

但是每次我尝试使用 HTTPS 时,我都会得到SSLHandshakeExeption服务器是:无法找到请求目标的有效证书路径

Dockerfile 如下所示:

我假设这个官方 Docker 映像正在使用 JDK 可信证书,还是我必须在自己的文件中明确配置它server.xml

0 投票
1 回答
191 浏览

java - 如何在 OpenLiberty 的 server.xml 配置属性文字/变量中使用自定义转换器?

我真的很想将容器管理的事务与 JPA 一起使用,因此将采用简单的方法在 server.xml 中创建数据源,然后在我的代码中使用 @PersistenceContext。

我目前面临的问题——也许我想得太复杂了——是我在运行时在我的 Cloud Foundry 环境中获取凭据作为 VCAP_SERVICES 系统环境变量。

这个 VCAP_SERVICES 变量包含一个带有必要凭据的大 JSON。因此,我首先必须在其中提取相应的 JSON,然后将其作为属性传递。

我最初的想法是在这种情况下使用转换器从 JSON 中返回值,以便可以使用它们。但似乎这在定义的配置 xml 文件中是不可能的。

我肯定要防止的是“注入”我自己做的事情,比如拥有一个属性文件并从不同的环境 DEV、TEST、PROD 复制值,因为 Cloud Foundry 环境已经在为我做这项工作.

所以问题是:如何将 VCAP_SERVICES 系统环境变量中的凭据获取到 server.xml 配置中?请记住:我真的必须解析 VCAP_SERVICES 变量,因为这是 JSON 并提取值。

0 投票
1 回答
538 浏览

jakarta-ee - 将 JWT 承载传递给受保护的 JAX-RS 资源时,Payara Micro 返回 AuthenticationStatus.SEND_FAILURE

我对 Java 编程比较陌生,所以请多多包涵。我正在开发一个部署在 Payara Micro 上的微服务。为了安全起见,我使用的是 JWT。因为 Payara Micro 是 MicroProfile 的实现,所以我试图利用 MicroProfile JWT auth 规范(Payara Micro 实现规范 1.1)。根据规范,我在 JAX-RS 配置类中注释@LoginConfig

Payara Micro 实现了一个过滤器,可以激活@RolesAllowedJAX-RS 资源上的注释(通常只对 EJB 可用)。我正在利用此注释来识别 JWT 的声明,使用JsonWebTokenMP JWT auth 规范中的接口来确定是否允许用户发出 GET 请求以根据声明中的 id 访问用户的信息:

此外,根据Payara 的 MP JWT auth activation guide,我在我的META-INF/microprofile-config.properties文件中提供以下配置属性供 Payara 验证:

应该注意的是,我正在@PermitAll根据用户登录信息通过一个单独的端点出售我自己的 JWT。但是,这些似乎是正确构造的,因为它们可以很容易地调试,并且在jwt.io的调试器中验证了签名(不提供验证密钥,因为问题已经足够长了):

但是,@RolesAllowed注释的行为似乎出乎意料。当我在将 JWT 不记名令牌作为授权 HTTP 标头传递时向端点发送 curl 时:

我收到以下回复:

在研究了 Payara 的源代码后,我发现这里收到了这个响应。

显然,当Principal收到的 fromSecurityContext为 null 并且@RolesAllowed注释存在于 JAX-RS 资源中时,就会发生这种情况。然后显然调用了容器提供的身份验证模块,在 Payara 的情况下是 BASIC 身份验证:https ://github.com/payara/Payara/issues/2326#issuecomment-367855133 。但是,我不明白为什么在我指定@LoginConfig(authMethod="MP-JWT")并提供 JWT 作为授权标头时使用 BASIC 身份验证。github上有与此相关的问题,但我无法找到有关修复内容的明确答案。

所以,我的问题是,我是否错误地解释了如何让 Payara 产生JsonWebToken调用者的注射剂?如何修复此 SEND_FAILURE 响应?

0 投票
2 回答
1230 浏览

java - 找不到签名密钥

使用http://jwtenizr.sh/生成 jwt 微配置文件配置。添加 microprofile-config.properties 文件与 quarkus 完美配合,但在尝试使用 openliberty 时出现以下错误:

CWWKS5523E: MicroProfile JWT 功能无法验证请求,因为无法从请求中包含的令牌创建有效的 JWT。CWWKS6029E: 无法验证 JSON Web 令牌 (JWT),因为找不到签名密钥。配置的签名算法 [RS256] 需要密钥来验证令牌。

我的 server.xml 如下:

微配置文件-config.properties

我需要添加密钥库吗?如果是这样,为什么需要这样做?

0 投票
1 回答
147 浏览

java - 如何在 Liberty 配置文件中使用 MicroProfile FaultTolerance

我想在我的 Web 应用程序中使用 MP FaultTolerance 功能中的断路功能。现在我不知道如何知道这个函数是否在我的应用程序中工作。我想跟踪 MP Fault Tolerance 添加的 MP Metrics 的值,如https://download.eclipse.org/microprofile/microprofile-fault-tolerance-2.0/microprofile-fault-tolerance-spec.html#fallback中所述

我的应用程序在 WAS Liberty 配置文件 19.0.0.6 上运行。我尝试使用 /metrics 来获取所有指标,但只返回基本指标。回报如下

我导入了包 org.eclipse.microprofile.faulttolerance。注释 CircuitBreaker 到我的 java 代码中,并在这样的方法前面添加注释:

我在 server.xml 中添加了如下功能

  1. 如何获取容错添加的 Metrics 的值,例如ft.<name>.circuitbreaker.callsSucceeded.totalft.<name>.circuitbreaker.callsSucceeded.total等等。
  2. 当我的应用程序运行时,如何知道注释 CircuitBreaker 正在工作?
0 投票
1 回答
264 浏览

websphere - WebSphere Application Server 对 MicroProfile 的支持

随着 WebSphere Liberty 的引入,与经典的 WebSphere Application Server 产生了混淆。

例如,WebSphere Liberty 支持 MicroProfile 并且有很多关于它的信息,但是很难在 WebSphere Application Server 中找到有关 MicroProfile 支持的信息。

我想知道或查找哪些 WebSphere Application Server 版本支持哪些 MicroProfile 版本。

今天我有 WAS 9.0.0.3 ,我想转移到一个提供一些 MicroProfile 支持的修复包,规格越高越好。

0 投票
1 回答
688 浏览

jwt - Quarkus MicroProfile JWT 通过 JWKS 进行身份验证

我正在尝试使用 JWKS 端点来提供用于验证 JWT 签名的公钥。在我的application.properties中,我设置了以下内容:

看来这确实被使用了:

当尝试向此应用程序中的端点发出请求时,它会崩溃:

从这个堆栈跟踪中我能理解的最好的,id=null可能是一个问题?我在这里没有其他事情要做,因为我可以确认这个 JWT 是有效的,因为我是生成它的人,并且可以通过其他应用程序对其进行验证。

我无权向此 JWT 添加其他字段/值,因为我不拥有身份验证系统。有什么办法可以解决这个问题吗?