当前位置: 首页 > 知识库问答 >
问题:

Micronaut:实现自定义信息endpoint元素

皇甫夕
2023-03-14

我试图实现一个自定义元素,以便由Micronaut的Infoendpoint发布,但是当查询/Info时,不会出现自定义数据。使用Micronaut 2.4.0版。

以下是我到目前为止的代码:

  • application.yml
[...]
endpoints:
  info:
    enabled: true
    sensitive: false
    git:
      enabled: true
[...]
    null
dependencies {
  [...]
  implementation('io.micronaut:micronaut-management')
  [...]
}
    null
import io.micronaut.context.env.MapPropertySource;
import io.micronaut.context.env.PropertySource;
import io.micronaut.management.endpoint.info.InfoSource;
import io.micronaut.runtime.context.scope.Refreshable;
import org.reactivestreams.Publisher;

import java.util.Map;
import java.util.Set;

import static io.reactivex.Flowable.just;

//@Singleton  // No success even with this annotation set
public class RegisteredUsersInfo implements InfoSource {

  // Business component to receive data from:
  private final SubjectMetadataDataSource subjectMetadataDataSource;

  public RegisteredUsersInfo(final SubjectMetadataDataSource subjectMetadataDataSource) {
    this.subjectMetadataDataSource = subjectMetadataDataSource;
  }

  @Override
  public Publisher<PropertySource> getSource() {
    return just(getUserPropertySource());
  }

  private PropertySource getUserPropertySource() {
    final Map<String, Set<String>> userProperties = 
           Map.of("knownID", subjectMetadataDataSource.listOfKnownUserIDs());
    return new MapPropertySource("user", userProperties);
  }

}

谢谢

基督徒

共有1个答案

卫博
2023-03-14

好的,在方法getUserPropertySource()中做以下细微的更改:

    [...]
    final Map<String, Set<String>> userProperties = 
          Map.of("knownID", Set.of("foo", "bar", "baz"));
    [...]

在查询/info时给出以下响应:

{
  "known-id": [
    "foo",
    "baz",
    "bar"
  ],
  [...]
}

所以我的“问题”的原因是SubjectMetadatadataSource.listofknownUserids()返回一个空的

    [...]
    final Map<String, Set<String>> userProperties = 
          Map.of("knownID", Set.of());
    [...]
{
  "known-id": [],
  [...]
}
 类似资料:
  • 获取设备配置信息 根据业务需求获取设备 配置的各种信息。 参数说明 字段 类型 必须 备注 device RKDevice 是 设备 namespace String 是 存储空间、根据业务填写 key String 是 信息存储Key 示例代码 Swift: RokidMobileSDK.device.getServiceInfo(device: RKDevice, namespace: Str

  • 获取设备配置信息 根据业务需求获取设备 配置的各种信息。 参数说明 字段 类型 必须 备注 deviceId String 是 设备Id namespace String 是 存储空间、根据业务填写 key String 是 信息存储Key 示例代码: Kotlin val deviceId: String = "XXX" val namespace: String = "YYY" val ke

  • 本文向大家介绍MFC自定义消息的实现方法,包括了MFC自定义消息的实现方法的使用技巧和注意事项,需要的朋友参考一下 一、概述: 消息机制是windows程序的典型运行机制,在MFC中有很多已经封装好了的消息,如WM_BTN**等。但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能,这时候MFC的向导不能帮助我们做到这一点。对此,我们可以通过添加相应的代码去完成这个功能。 二、实现

  • 基础 content 渲染 <vuep template="#exampleContent"></vuep> <script v-pre type="text/x-template" id="exampleContent"> <template> <div class="amap-page-container"> <el-amap vid="amapDe

  • 在keycloak中实现自定义restendpoint时,我使用了以下示例: