Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中测试SAML RestAPI?_Java_Android_Saml - Fatal编程技术网

Java 如何在Android中测试SAML RestAPI?

Java 如何在Android中测试SAML RestAPI?,java,android,saml,Java,Android,Saml,我用openid connect尝试了这个,它正在工作。我想让SAML做同样的事。仅供参考,我正在用KeyClope做演示。所以,我已经在KeyClope控制台/仪表板内部将协议从openid connet更改为SAML 代码: 请引导我。请用Java而不是Kotlin回答。您不能将协议更改为SAML,然后发送OpenID连接参数 下面是一个例子。参数完全不同 您不能使用RESTAPI。SAML使用浏览器重定向 不是Keyclope专家,但您的应用程序需要。您好。谢谢你的回复,因为这很复杂,没有

我用openid connect尝试了这个,它正在工作。我想让SAML做同样的事。仅供参考,我正在用KeyClope做演示。所以,我已经在KeyClope控制台/仪表板内部将协议从openid connet更改为SAML

代码:


请引导我。请用Java而不是Kotlin回答。

您不能将协议更改为SAML,然后发送OpenID连接参数

下面是一个例子。参数完全不同

您不能使用RESTAPI。SAML使用浏览器重定向


不是Keyclope专家,但您的应用程序需要。

您好。谢谢你的回复,因为这很复杂,没有人回复,至少你回复了!所以,我读了这两本书。现在问题仍然存在。我要澄清一件事:我能够从Postman(使用openid connect)创建用户,请看:|现在我想在Android中做的事情与我想做的一样,但是使用SAML协议,以及我尝试使用SAML编写的代码,这已经是个问题了。|第二,在你建议的帖子中,没有一件事与Android相关。如果我需要打开webview,这没关系,我没有问题。你可以检查这个例子,他们使用的是客户端提供商登录:但他们使用的是openid连接,而不是我想要的SAML!对于Android,您将使用js/节点库。您通过调用REST API创建用户。OpenID Connect就是为此而设计的。山姆不是。不能从SAML调用RESTAPI。首先,SAML使用XML令牌,OpenID Connect需要JWT令牌,
@Override
    protected Boolean doInBackground(String... params) {
        try {
            OkHttpClient client = new OkHttpClient().newBuilder()
                    .build();
            MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
            
            /*For openid-connect*/
            //RequestBody body = RequestBody.create(mediaType, "client_id=lifetrenz-client-1&username=test&password=test@123&grant_type=password&client_secret=c89b1eed-136d-445f-bfb0-e7e2bdac89ee");


            /*For SAML*/
            RequestBody body = RequestBody.create(mediaType, "client_id=lifetrenz-client-1&username=test&password=test@123&grant_type=password");


            /*URL is changing manually accoridng to protocol*/
            Request request = new Request.Builder()
                    .url("http://10.0.2.2:8080/auth/realms/Lifetrenz/protocol/saml/token")
                    .method("POST", body)
                    .addHeader("Content-Type", "application/x-www-form-urlencoded")
                    .build();
            Response response = client.newCall(request).execute();
            data = "CODE: " + response.code() + "\n" + "MESSAGE: " + response.message() + "\n" + "BODY: " + response.body().string();
            return true;
        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }
    }