Ibm mobilefirst 是否有可能在UserAuthenticationSecurityCheck扩展类中访问ConfigurationAPI
adapter UserAuthenticationSecurityCheck,我们在securityCheckDefinition之外的adapter.xml文件中引入了一些属性。我可以在mfp控制台的适配器->配置选项卡中配置它 我们正在尝试通过导入的ConfigurationAPI访问配置值 在UserAuthenticationSecurityCheck扩展类内导入com.ibm.mfp.adapter.api.ConfigurationAPI 但是在这个过程中我们得到了一个空指针异常。我可以通过ConfigurationAPI在java适配器类中访问它们,但不能在security UserAuthenticationSecurityCheck类中访问它们 想要访问UserAuthenticationSecurityCheck扩展类中的以下图像属性Ibm mobilefirst 是否有可能在UserAuthenticationSecurityCheck扩展类中访问ConfigurationAPI,ibm-mobilefirst,mobilefirst-server,Ibm Mobilefirst,Mobilefirst Server,adapter UserAuthenticationSecurityCheck,我们在securityCheckDefinition之外的adapter.xml文件中引入了一些属性。我可以在mfp控制台的适配器->配置选项卡中配置它 我们正在尝试通过导入的ConfigurationAPI访问配置值 在UserAuthenticationSecurityCheck扩展类内导入com.ibm.mfp.adapter.api.ConfigurationAPI 但是在这个过程中我们得到了一个空指针异常。
公共类userSecurityCheck扩展了UserAuthenticationSecurityCheck{
@上下文
配置API配置API;
@凌驾
受保护的布尔validateCredentials(映射凭据){
字符串instancename=credentials.get(“instancename”).toString();
//java空指针异常发生在下一行
字符串httpUrl=configurationAPI.getPropertyValue(instancename);
}
}
确实有一种方法可以指定适配器“安全检查”风格的可配置属性,它与常规类型的适配器不同。这是有案可查的。我已经验证了这种方法的有效性。文档中省略了一些关键元素,如包名,因此下面是非常简单的示例代码:
UserAuth.java
:
public class UserAuth extends UserAuthenticationSecurityCheck {
@Override
protected boolean validateCredentials(Map<String, Object> credentials) {
String test_property = ((UserAuthSecurityCheckConfig) this.config).test_property;
LOG.warning("auth test_property=" + test_property);
return true;
}
@Override
public SecurityCheckConfiguration createConfiguration(Properties properties) {
return new UserAuthSecurityCheckConfig(properties);
}
}
import java.util.Properties;
import com.ibm.mfp.security.checks.base.UserAuthenticationSecurityCheckConfig;
public class UserAuthSecurityCheckConfig extends UserAuthenticationSecurityCheckConfig {
public String test_property;
public UserAuthSecurityCheckConfig(Properties properties) {
super(properties);
this.test_property = this.getStringProperty("test_property", properties, "defaultValueInCode");
}
}
adapter.xml
:
<securityCheckDefinition name="UserLogin" class="com.xyz.UserAuth">
<property name="test_property" displayName="Test Property Auth" defaultValue="foo_default_in_xml" />
</securityCheckDefinition>
听起来您真正想要的是一个扩展点,用于扩展UserAuthenticationSecurityCheck中的可配置元素。这是一个公平的描述吗?我不知道MFP是否支持子类化这些对象。不过我会尽力帮你找出答案。@JohnGerken请查看更新后的问题
<securityCheckDefinition name="UserLogin" class="com.xyz.UserAuth">
<property name="test_property" displayName="Test Property Auth" defaultValue="foo_default_in_xml" />
</securityCheckDefinition>