apache oltu https ssl

标签: java https ssl api
3人阅读 评论(0) 收藏 举报
分类:

对接https接口中遇到的证书问题解决,无须安装

    使用apache-oltu client demo对接



package cn.com.xxxxx.common.utils;


import java.net.Socket;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.Map;


import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509ExtendedTrustManager;


import org.apache.oltu.oauth2.client.OAuthClient;
import org.apache.oltu.oauth2.client.URLConnectionClient;
import org.apache.oltu.oauth2.client.request.OAuthBearerClientRequest;
import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
import org.apache.oltu.oauth2.client.response.OAuthJSONAccessTokenResponse;
import org.apache.oltu.oauth2.client.response.OAuthResourceResponse;
import org.apache.oltu.oauth2.common.OAuth;
import org.apache.oltu.oauth2.common.message.types.GrantType;


public class AccessTokenUtil {

    
protected static void init() {
  try {
   SSLContext sc = SSLContext.getInstance("SSL");
   HostnameVerifier hv = new HostnameVerifier() {
    public boolean verify(String urlHostName, SSLSession session) {
     return true;
    }
   };
   TrustManager[] trustAllCerts = new TrustManager[] {
   new X509ExtendedTrustManager() {
           @Override
           public void checkClientTrusted(X509Certificate[] 
   x509Certificates, String s) { }


           @Override
           public void checkServerTrusted(X509Certificate[] 
   x509Certificates, String s) { }


           @Override
           public X509Certificate[] getAcceptedIssuers() {
               return null;
           }


           @Override
           public void checkClientTrusted(X509Certificate[] 
               x509Certificates, String s, Socket socket) {
           }


           @Override
           public void checkServerTrusted(X509Certificate[] 
               x509Certificates, String s, Socket socket) {
           }


           @Override
           public void checkClientTrusted(X509Certificate[] 
                x509Certificates, String s, SSLEngine sslEngine) {
           }


           @Override
           public void checkServerTrusted(X509Certificate[] 
              x509Certificates, String s, SSLEngine sslEngine) {
           }
       } };
   sc.init(null, trustAllCerts, new SecureRandom());


   SSLContext.setDefault(sc);
   HttpsURLConnection.setDefaultHostnameVerifier(hv);
  } catch (Exception e) {
   e.printStackTrace();
  }
}

public static String getResultByToken(Map<String,String> paramMap,String requestUrl,String requestBody){
init();
try {
OAuthClientRequest  request = OAuthClientRequest.tokenLocation(paramMap.get("access_token_url")).setClientId(paramMap.get("client_id"))
.setGrantType(GrantType.PASSWORD).setUsername(paramMap.get("username")).setPassword(paramMap.get("password")).setClientSecret(paramMap.get("client_secret")).buildQueryMessage();
    System.out.println(request.getLocationUri());
    OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());
    //OAuthAccessTokenResponse resourceResponse = oAuthClient.accessToken(request);
//OAuthResourceResponse resourceResponse = oAuthClient.resource(request, OAuth.HttpMethod.POST, OAuthResourceResponse.class);
//System.out.println(resourceResponse.getBody());
    //Map requestBodyMap = JSON.parseObject(resourceResponse.getBody(), Map.class);
    oAuthClient.accessToken(request);
       OAuthJSONAccessTokenResponse tokenResponse = (OAuthJSONAccessTokenResponse) oAuthClient
         .accessToken(request, OAuthJSONAccessTokenResponse.class);
       
    OAuthClientRequest bearerClientRequest = new OAuthBearerClientRequest(requestUrl)
        .setAccessToken(tokenResponse.getAccessToken())
    .buildQueryMessage();
bearerClientRequest.setHeader(OAuth.HeaderType.CONTENT_TYPE, "application/json;charset=utf8");
//bearerClientRequest.setHeader(OAuth.HeaderType.AUTHORIZATION, "Bearer "+tokenResponse.getAccessToken());
bearerClientRequest.setBody(requestBody);
OAuthResourceResponse resourceResponse = oAuthClient.resource(bearerClientRequest, OAuth.HttpMethod.POST, OAuthResourceResponse.class);
return resourceResponse.getBody();
   
    } catch (Exception e) {
e.printStackTrace();
}
return "error";
}
}
查看评论

基于Apache OLTU的OAuth2.0授权解决方案

Apache OLTU实现了OAuth 2.0的规范,是一种可靠的Java授权解决方案。但是,官方文档实在是太惨不忍睹了。本文参考了开涛的OAuth 2.0集成Shiro文章。模拟了OAuth2....
  • shehun1
  • shehun1
  • 2015-05-31 22:38:03
  • 25276

记录一次给Apache服务器添加SSL(https)的过程,包括集成mod_jk与Tomcat使用https

都说现在的HTTPS更好,更安全,也给自己的网站添加了HTTPS.以此记录此过程. 访问http://andaily.com试试. -硬件环境 操作系统:   Ubuntu 12.04.1 LTS...
  • monkeyking1987
  • monkeyking1987
  • 2015-04-21 21:15:25
  • 6791

apache oauth2 集成

原文地址:http://jinnianshilongnian.iteye.com/blog/2038646 OAuth2是OAuth协议的下一个版本,相比OAuth1,OAuth2整个授...
  • feimi0731
  • feimi0731
  • 2016-11-04 11:41:15
  • 1109

oltu 实现oauth协议

oltu 简介: Apache Oltu是OAuth协议的Java语言实现。它也包含其他oauth 的协议如JWT JWS OpenID ,是apache 基金会提供的开源项目 官网:http://...
  • lipingping951462
  • lipingping951462
  • 2016-11-09 13:39:28
  • 1864

oauth服务端之Java版oltu

oauth有服务端实现概要代码: pom.xml org.apache.oltu.oauth2 org.apache.oltu.oa...
  • ggj20ss
  • ggj20ss
  • 2015-07-15 09:58:51
  • 4450

apache中的https设置基于阿里云免费ssl服务

环境是:debian7+apache2.2+阿里云免费ssl服务,站点以前的http已经在运行了, 1、开通阿里云免费SSL&DNS解析配置 购买位置:打开阿里云找到“产品”-“安全”-“CA...
  • xuz0917
  • xuz0917
  • 2018-01-14 15:33:38
  • 423

apache 配置安装ssl证书实现https安全访问全过程

apache 配置安装ssl证书实现https安全访问全过程安装证书(贴上未来智库站配置ssl的代码内容),官方的配置复杂且不具有通用性。1.#修改httpd.conf文件LoadModule ssl...
  • my0592
  • my0592
  • 2018-02-08 09:19:11
  • 622

Apache 使用ssl模块配置HTTPS

Web服务器在默认情况下使用HTTP,这是一个纯文本的协议。正如其名称所暗示的,纯文本协议不会对传输中的数据进行任何形式的加密。而基于HTTP的Web服务器是非常容易配置,它在安全方面有重大缺陷。任何...
  • sunboy_2050
  • sunboy_2050
  • 2016-02-06 09:05:52
  • 46844

https多网站1个IP多个SSL证书的Apache设置办法

多种情况   先写各种可能的情况: · 老式的SSL证书是一个证书一个站点一个IP的一一对应,但后来有了改进; · 可以配置为一台服务器多个IP,分别对应不同的站点、不同的证书; · 还可以配...
  • xiaolong20081
  • xiaolong20081
  • 2018-01-30 11:49:35
  • 431

apache shiro 入门(一)

shiro          官网:http://shiro.apache.org/ Apache Shiro一个功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证...
  • liu414226580
  • liu414226580
  • 2014-03-28 12:22:15
  • 2476
    个人资料
    等级:
    访问量: 1
    积分: 10
    排名: 374万+
    文章分类
    文章存档
    阅读排行