适配器UserAuthenticationSecurityCheck我们在securityCheckDefinition之外的adapter.xml文件中引入了一些属性。我可以在适配器中配置 - > mfp控制台中的配置选项卡。
我们尝试通过ConfigurationAPI导入配置值 在UserAuthenticationSecurityCheck扩展类中导入com.ibm.mfp.adapter.api.ConfigurationAPI。
但是在这个过程中我们得到一个空指针异常。我可以通过ConfigurationAPI在java-adapter类中访问它们,但不能在安全UserAuthenticationSecurityCheck类中访问它们。
想要访问UserAuthenticationSecurityCheck扩展类中的以下图像属性。
public class userSecurityCheck extends UserAuthenticationSecurityCheck {
@Context
ConfigurationAPI configurationAPI;
@Override
protected boolean validateCredentials(Map<String, Object> credentials){
String instancename = credentials.get("instancename").toString();
// java null pointer exception is happening at the below line
String httpUrl = configurationAPI.getPropertyValue(instancename);
}
}
答案 0 :(得分:0)
确实有一种方法可以在适配器的“安全性检查”类型上指定可配置属性,并且它与常规适配器类型不同。已记录在here中。我已经证实这种方法有效。该文档省略了一些关键元素,例如包名称,因此下面是一个非常简单的示例代码来演示:
`Taskkill /PID 26356 /F`
:
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);
}
}
:
UserAuthSecurityCheckConfig.java
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