2017-02-16 81 views
0
创建

刚开始使用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进行测试时它仍然无效。

任何想法是什么问题?

+0

您是否在应用程序注册的安全设置中将“访问限制”映射到UserLogin SecurityCheck? –

+0

是的。它被映射。 – Amon

+0

难道是因为我在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

回答

0

最有可能的原因是未能在MFP控制台中的应用程序的安全配置中将UserLogin安全检查映射到access-restricted范围。

下面是步骤:

  • 转到MFP控制台
  • 地图access-restricted范围UserLogin安全检查你的应用程序的安全选项卡,如图所示范围 - 元素映射部分

enter image description here

关于范围映射的更多细节可以在here找到。

+0

范围映射已创建。 – Amon

+0

@Amon请在您的服务器和客户端之间共享wireshark网络捕获。 –