是否有可能在UserAuthenticationSecurityCheck扩展类中访问ConfigurationAPI

时间:2018-06-13 12:02:25

标签: ibm-mobilefirst mobilefirst-server

适配器UserAuthenticationSecurityCheck我们在securityCheckDefinition之外的adapter.xml文件中引入了一些属性。我可以在适配器中配置 - > mfp控制台中的配置选项卡。

我们尝试通过ConfigurationAPI导入配置值 在UserAuthenticationSecurityCheck扩展类中导入com.ibm.mfp.adapter.api.ConfigurationAPI。

但是在这个过程中我们得到一个空指针异常。我可以通过ConfigurationAPI在java-adapter类中访问它们,但不能在安全UserAuthenticationSecurityCheck类中访问它们。

想要访问UserAuthenticationSecurityCheck扩展类中的以下图像属性。

enter image description here

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);



    }


}

1 个答案:

答案 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