如何隐藏 OSGi Felix 组件 属性 中的密码?

How to obscure a password in OSGi Felix component property?

我有一个 OSGi 组件,用注释声明,允许通过 Felix 的配置 UI 配置登录凭据 属性。我已经看到其他组件遮盖了密码的 属性 文本字段,但我的仍然是明文。我假设 @属性 注释中只包含一个标志,但我在 documentation.

中找不到任何提及它的地方

有谁知道如何在配置中创建密码字段UI?

OSGi 元类型服务规范确实支持 PASSWORD 属性类型,用户界面应使用该属性类型来隐藏文本字段。

此外,在声明式服务中,属性 以句号开头的名称(例如 .password)不会作为服务属性发布在任何作为服务的组件上。 属性 在组件属性中可用。

有注解属性可以使用:

private static final String DEFAULT_USERNAME = StringUtils.EMPTY;
private String username = DEFAULT_USERNAME;
@Property(label="username", description="user name", value=DEFAULT_USERNAME )
public static final String USERNAME = "xxx.username";

private static final String DEFAULT_PASSWORD = StringUtils.EMPTY;
private String password = DEFAULT_PASSWORD;
@Property(label="password", description="user password", passwordValue=DEFAULT_PASSWORD )
public static final String PASSWORD = "xxx.password";

请注意,USERNAME 常量使用 value 参数注释,而 PASSWORD 使用 passwordValue 参数注释。正是passwordValue的使用触发了该字段在OSGi控制台中被遮挡。