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

时间:2015-08-04 14:06:41

标签: java osgi apache-felix

我有一个OSGi组件,使用注释声明,允许通过Felix的配置UI配置登录凭据属性。我已经看到其他组件模糊了密码的属性文本字段,但我的仍然是明确的。我假设@Property注释中只包含一个标记,但我无法在documentation中找到任何标记。

有人知道如何在配置界面中创建密码字段吗?

2 个答案:

答案 0 :(得分:1)

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

此外,在声明服务中,以完全停止(例如.password)开头的属性名称将不会作为服务的任何组件发布为服务属性。该属性在组件属性中可用。

答案 1 :(得分:1)

可以使用注释属性:

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控制台中的字段被隐藏。