package com.test.client;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import org.apache.oltu.oauth2.client.OAuthClient;
import org.apache.oltu.oauth2.client.URLConnectionClient;
import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
import org.apache.oltu.oauth2.client.request.OAuthClientRequest.OAuthRequestBuilder;
import org.apache.oltu.oauth2.client.response.OAuthClientResponse;
import org.apache.oltu.oauth2.client.response.OAuthClientResponseFactory;
import org.apache.oltu.oauth2.client.response.OAuthResourceResponse;
import org.apache.oltu.oauth2.common.OAuth;
import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
import org.apache.oltu.oauth2.common.utils.OAuthUtils;
public class resourceClientTest {
private static String url = "https://localhost:8443/TestServlet/resourceServlet";
private static String token = "111";
public static void main(String[] args) throws Exception {
testRight();
}
private static void testRight() throws OAuthSystemException,
OAuthProblemException {
ResourceClientRequest request = new ResourceClientRequest(url);
request.setParameter("token", "111");
OAuthClientRequest req = request.buildHeaderMessage();
OAuthClient oAuthClient = new OAuthClient(
new HTTPSURLConnectionClient());
OAuthResourceResponse response = oAuthClient.resource(req, null,
OAuthResourceResponse.class);
System.out.println(response.getBody());
}
private static void testError() throws OAuthSystemException,
OAuthProblemException {
ResourceClientRequest request = new ResourceClientRequest(url);
OAuthClientRequest req = request.buildQueryMessage();
OAuthClient oAuthClient = new OAuthClient(
new HTTPSURLConnectionClient());
// OAuth.HttpMethod.GET
OAuthResourceResponse response = oAuthClient.resource(req, null,
OAuthResourceResponse.class);
System.out.println(response.getResponseCode());
}
}
class ResourceClientRequest extends OAuthRequestBuilder {
public ResourceClientRequest(String url) {
super(url);
}
public ResourceClientRequest setParameter(String paramName,
String paramValue) {
this.parameters.put(paramName, paramValue);
return this;
}
}
class HTTPSURLConnectionClient extends URLConnectionClient {
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
return true;
}
};
@Override
public <T extends OAuthClientResponse> T execute(
OAuthClientRequest request, Map<String, String> headers,
String requestMethod, Class<T> responseClass)
throws OAuthSystemException, OAuthProblemException {
String responseBody = null;
URLConnection c = null;
int responseCode = 0;
try {
URL url = new URL(request.getLocationUri());
c = url.openConnection();
responseCode = -1;
if (c instanceof HttpURLConnection) {
HttpsURLConnection httpURLConnection = (HttpsURLConnection) c;
try {
trustAllHttpsCertificates();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
httpURLConnection.setHostnameVerifier(hv);
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> header : headers.entrySet()) {
httpURLConnection.addRequestProperty(header.getKey(),
header.getValue());
}
}
if (request.getHeaders() != null) {
for (Map.Entry<String, String> header : request
.getHeaders().entrySet()) {
httpURLConnection.addRequestProperty(header.getKey(),
header.getValue());
}
}
if (!OAuthUtils.isEmpty(requestMethod)) {
httpURLConnection.setRequestMethod(requestMethod);
if (requestMethod.equals(OAuth.HttpMethod.POST)) {
httpURLConnection.setDoOutput(true);
OutputStream ost = httpURLConnection.getOutputStream();
PrintWriter pw = new PrintWriter(ost);
pw.print(request.getBody());
pw.flush();
pw.close();
}
} else {
httpURLConnection.setRequestMethod(OAuth.HttpMethod.GET);
}
httpURLConnection.connect();
InputStream inputStream;
responseCode = httpURLConnection.getResponseCode();
if (responseCode == 400 || responseCode == 401) {
inputStream = httpURLConnection.getErrorStream();
} else {
inputStream = httpURLConnection.getInputStream();
}
responseBody = OAuthUtils.saveStreamAsString(inputStream);
}
} catch (IOException e) {
throw new OAuthSystemException(e);
}
return OAuthClientResponseFactory.createCustomResponse(responseBody,
c.getContentType(), responseCode, responseClass);
}
private static void trustAllHttpsCertificates() throws Exception {
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
javax.net.ssl.TrustManager tm = new miTM();
trustAllCerts[0] = tm;
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext
.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc
.getSocketFactory());
}
static class miTM implements javax.net.ssl.TrustManager,
javax.net.ssl.X509TrustManager {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public boolean isServerTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public boolean isClientTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType)
throws java.security.cert.CertificateException {
return;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType)
throws java.security.cert.CertificateException {
return;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
TestServlet.rar (57个子文件)
TestServlet
org.apache.oltu.oauth2.dynamicreg.client-1.0.0.jar 15KB
servlet-api.jar 88KB
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 414B
org.eclipse.wst.common.component 492B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 522B
org.eclipse.jdt.core.prefs 364B
src
com
test
client
resourceClientTest.java 6KB
RegistClientTest.java 2KB
refreshTokenClientTest.java 2KB
clientTokenRequestTest.java 2KB
servlet
RefreshTokenServlet.java 3KB
RegisterSerlvet.java 3KB
TokenServlet.java 3KB
AuthrationServlet.java 5KB
ResourceServlet.java 3KB
.project 1KB
WebRoot
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 3KB
classes
com
test
client
HTTPSURLConnectionClient$1.class 1KB
HTTPSURLConnectionClient$miTM.class 1KB
HTTPSURLConnectionClient.class 5KB
resourceClientTest.class 2KB
ResourceClientRequest.class 901B
clientTokenRequestTest.class 3KB
refreshTokenClientTest.class 3KB
RegistClientTest.class 3KB
servlet
RegisterSerlvet.class 5KB
ResourceServlet.class 4KB
AuthrationServlet.class 6KB
RefreshTokenServlet.class 4KB
TokenServlet.class 4KB
lib
commons-codec-1.8.jar 258KB
org.apache.oltu.oauth2.dynamicreg.client-1.0.0.jar 15KB
org.apache.oltu.oauth2.httpclient4-1.0.0.jar 11KB
org.apache.oltu.oauth2.client-1.0.0.jar 30KB
org.apache.oltu.oauth2.dynamicreg.common-1.0.0.jar 11KB
org.apache.oltu.jose.jws-1.0.0.jar 20KB
slf4j-api-1.6.1.jar 25KB
org.apache.oltu.oauth2.jwt-1.0.0.jar 18KB
org.apache.oltu.oauth2.dynamicreg.server-1.0.0.jar 17KB
servlet-api.jar 88KB
org.apache.oltu.commons.encodedtoken-1.0.0.jar 11KB
org.apache.oltu.oauth2.resourceserver-filter-1.0.0.jar 15KB
org.apache.oltu.oauth2.resourceserver-1.0.0.jar 21KB
org.apache.oltu.oauth2.common-1.0.0.jar 51KB
org.apache.oltu.commons.json-1.0.0.jar 13KB
org.apache.oltu.oauth2.authzserver-1.0.0.jar 29KB
json-20131018.jar 64KB
index.html 471B
redict.html 175B
test.jsp 434B
.classpath 1KB
org.apache.oltu.oauth2.common-1.0.0.jar 51KB
.myeclipse
profiler
New_configuration (1).xml 1KB
org.apache.oltu.oauth2.authzserver-1.0.0.jar 29KB
共 57 条
- 1
zdw7777
- 粉丝: 0
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 软件工程项目验收系列文档.doc
- content_1713513663833.xmind
- 数据流图(Data Flow Diagram,简称DFD).md
- 基于Mybatis-Plus的Maven代码生成插件设计源码
- 67e1bc92-b0ee-45c1-b46f-9d519bbd6925.ofd
- npcsvpwm.v
- Java项目:基于Springboot+vue实现的校园志愿者管理系统(源码+数据库+环境配置和运行指导视频+系统讲解视频)
- 驱动开发,驱动加载工具,支持安装、启动、停止、卸载、关闭功能
- UTS 32146 Data Visualisation and Visual Analytics A1
- 西门子1200PLC 六部十层电梯程序案例,WINCC RT Advanced界面,博图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页