![](/img/trans.png)
[英]How to get authorize code to dismiss login page with oauth2 wso2 identity server
[英]wso2 identity server oauth2 request returns HTTP error 415
我的wso2身份服务器有问题,可能是概念错误,但我不太了解自己在做什么错。
我有一个JAVA REST应用程序,需要使用oauth2标识服务器来验证用户。 我已经在debian机器上安装了wso2 Identity Server 5.0.0。 我创建了最终用户,并创建了服务提供商来获取clientid和client secret。
我正在遵循的过程是这样的:
我的APP使用以下Java代码发送请求:
URL url = new URL(desturl);
HttpsURLConnection huc = (HttpsURLConnection) url.openConnection();
huc.setRequestMethod("POST");
huc.connect();
huc.setConnectTimeout(10000);
rd = new BufferedReader(new InputStreamReader(huc.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
content += line;
}
我的应用程序将以下http请求作为POST发送:
https://<wso2is>:9443/oauth2/authorize?response_type=code&client_id=<xxx>&state=xyz&redirect_uri=http://<tomcat>:8080/myapp/rest/listener
IS要求用户登录并向我的应用程序生成以下请求:
http://<wso2is>:8080/myapp/rest/listener?state=xyz&code=<xxx>
在此步骤中,在用户登录后,我的应用会询问用户信息:
https://<wso2is>:9443/oauth2/token?grant_type=authorization_code&code=<xxx>&redirect_uri=http://<wso2is>:8080/myapp/rest/listener&client_id=<xxx>&client_secret=<xxx>
在这里,我得到一个HTTP 415响应代码。 这是格式错误,在某些地方我已经读到我被要求更改请求的Content-Type。 我已经尝试过json和xml,但是没有用。
我有同一个应用程序,该应用程序与另一个应该是标准的IdM(固件KeyRock Idm)一起使用。 有人知道我在做什么错吗?
-更新-
我发现将以下内容添加到代码中:
huc.setRequestProperty("Content-Type", "application/octet-stream");
在IS系统日志中给出了另一个错误:
No operation matching request path "/oauth2/token" is found
但是在APP端仍然存在相同的错误。
最后,我改变了这样做的方式。 我没有手动编写HTTP客户端,而是使用Apache OLTU。 这种方式要容易得多,并且可以正常工作。
该链接[1]将提供您要发送的必要请求格式。 根据您的问题,内容类型应为“ application / x-www-form-urlencoded”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.