刚开始使用MFP 8,并创建了一个用户登陆安全检查指的是user authentication - security check和创建范围access-resticted
映射到用户登陆安全检查。MobileFirst 8(MFP 8)未经授权的访问受保护的JavaScript适配器资源,没有挑战是从UserAuthenticationSecurityCheck
的用户登陆是用来保护我的javascript适配器的资源,如:
< procedure name="getData" scope="access-restricted"/ >
但是叫我的资源时getData
了未经授权的错误,并没有被用户登陆安全检查创建的挑战。
期待下面的代码来执行:
@Override
protected Map<String, Object> createChallenge() {
System.out.println("---------------------CREATE-CHALLENGE---------------------");
Map<String, Object> challenge = new HashMap<String, Object>();
challenge.put("errorMsg", errorMsg);
return challenge;
}
@Override
protected boolean validateCredentials(Map<String, Object> credentials)
{
if(credentials!=null && credentials.containsKey("username") && credentials.containsKey("password"))
{
String username = credentials.get("username").toString();
String password = credentials.get("password").toString();
if(!username.isEmpty() && !password.isEmpty() && username.equals(password))
{
userId = username;
displayName = username;
//Optional RememberMe
if(credentials.containsKey("rememberMe"))
{
rememberMe = Boolean.valueOf(credentials.get("rememberMe").toString());
}
return true;
}
else
{
errorMsg = "Wrong Credentials";
}
}
else
{
errorMsg = "Credentials not set properly";
}
return false;
}
还试图执行从MobileFirst-扬鞭适配器的资源,开启安全检查,并被提示输入用户名密码&。在回答挑战时总是输入不正确的用户名&密码,但基于上面的代码,只要username.equal(密码)的validateCredential应该是有效的,但在从Swagger进行测试时它仍然无效。
任何想法是什么问题?
您是否在应用程序注册的安全设置中将“访问限制”映射到UserLogin SecurityCheck? –
是的。它被映射。 – Amon
难道是因为我在UserLogin adapter.xml中评论了“”?任何关系?我评论的原因是因为它在构建适配器时导致错误。 [错误]无法执行目标com.ibm.mfp:adapter-maven-plugin:8.0.2017012516:在项目上构建(默认构建)MyJavaAdapter:适配器xml文件架构验证遇到错误:[cvc-complex-type.2.4。 a:从元素'JAXRSApplicationClass'开始找到无效的内容。期望有一个'{securityCheckDefinition}'。] - > [Help 1] –
Amon