-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
1,658 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# 使用加签SDK的用法说明 | ||
|
||
新建一个对象```AssetCloudRequest()``` | ||
|
||
- ```url```:完整的请求路径 http://platform.assetcloud.org.cn/dev-api/+请求路径; | ||
|
||
- ```key```、```secret```:平台获取的key和secret | ||
|
||
Get调用方法: | ||
|
||
```java | ||
AssetCloudRequest request = new AssetCloudRequest(); | ||
request.setUrl(""); | ||
request.setKey(""); | ||
request.setSecret(""); | ||
request.setHttpMethods(HttpMethods.GET); | ||
HttpRequestUtil.send(request); | ||
``` | ||
|
||
Post调用方法: | ||
```java | ||
AssetCloudRequest request = new AssetCloudRequest(); | ||
request.setUrl(""); | ||
request.setKey(""); | ||
request.setSecret(""); | ||
request.setBody(""); | ||
request.setHttpMethods(HttpMethods.POST); | ||
HttpRequestUtil.send(request); | ||
``` | ||
|
||
Delete调用方法: | ||
|
||
```java | ||
AssetCloudRequest request = new AssetCloudRequest(); | ||
request.setUrl(""); | ||
request.setKey(""); | ||
request.setSecret(""); | ||
request.setHttpMethods(HttpMethods.DELETE); | ||
HttpRequestUtil.send(request); | ||
``` | ||
|
||
Put调用方法: | ||
```java | ||
AssetCloudRequest request = new AssetCloudRequest(); | ||
request.setUrl(""); | ||
request.setKey(""); | ||
request.setSecret(""); | ||
request.setBody(""); | ||
request.setHttpMethods(HttpMethods.Put); | ||
HttpRequestUtil.send(request); | ||
``` | ||
返回结果为:```AssetCloudResponse<T>``` | ||
|
||
| 字段 | 类型 | 说明 | | ||
| ------- | ------- | -------- | | ||
| code | int | 状态码 | | ||
| success | Boolean | 是否成功 | | ||
| data | T | 承载数据 | | ||
| msg | String | 返回消息 | | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<groupId>cn.org.assetcloud</groupId> | ||
<artifactId>assetcloud-authorization</artifactId> | ||
<version>1.1</version> | ||
|
||
<dependencies> | ||
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> | ||
<dependency> | ||
<groupId>org.projectlombok</groupId> | ||
<artifactId>lombok</artifactId> | ||
<version>1.18.12</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> | ||
<dependency> | ||
<groupId>commons-codec</groupId> | ||
<artifactId>commons-codec</artifactId> | ||
<version>1.11</version> | ||
</dependency> | ||
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> | ||
<dependency> | ||
<groupId>org.apache.httpcomponents</groupId> | ||
<artifactId>httpclient</artifactId> | ||
<version>4.4.1</version> | ||
</dependency> | ||
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> | ||
<dependency> | ||
<groupId>com.alibaba</groupId> | ||
<artifactId>fastjson</artifactId> | ||
<version>1.2.70</version> | ||
</dependency> | ||
|
||
</dependencies> | ||
</project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
package cn.org.assetcloud; | ||
|
||
import cn.org.assetcloud.entity.*; | ||
import cn.org.assetcloud.exception.HttpProcessException; | ||
import cn.org.assetcloud.util.AssetSignUtil; | ||
import cn.org.assetcloud.util.StringUtil; | ||
import com.alibaba.fastjson.JSONObject; | ||
import org.apache.commons.codec.digest.HmacUtils; | ||
|
||
/** | ||
* @author Juxiu Ren Jianchao | ||
*/ | ||
public class HttpRequestUtil { | ||
|
||
public static AssetCloudResponse<Object> send(AssetCloudRequest request) throws HttpProcessException { | ||
String result = ""; | ||
if (request.getHttpMethods() == HttpMethods.POST) { | ||
result = AssetSignUtil.post(buildConfig(handleRequest(request))); | ||
} else if (request.getHttpMethods() == HttpMethods.GET) { | ||
result = AssetSignUtil.get(buildConfig(handleRequest(request))); | ||
} | ||
JSONObject json = JSONObject.parseObject(result); | ||
AssetCloudResponse<Object> r = new AssetCloudResponse<Object>(); | ||
r.setCode(json.getIntValue("code")); | ||
r.setData(json.get("data")); | ||
r.setMsg(json.getString("msg")); | ||
r.setSuccess(json.getBoolean("success")); | ||
return r; | ||
} | ||
|
||
private static HttpConfig buildConfig(AssetCloudRequest request) { | ||
HttpConfig httpConfig = HttpConfig.custom(); | ||
HttpHeader headers = HttpHeader.custom().other("key", request.getKey()); | ||
httpConfig.headers(headers.build()); | ||
httpConfig.url(request.getUrl()); | ||
if (request.getHttpMethods() == HttpMethods.POST) { | ||
httpConfig.method(HttpMethods.POST); | ||
httpConfig.json(request.getBody()); | ||
} | ||
return httpConfig; | ||
} | ||
|
||
private static AssetCloudRequest handleRequest(AssetCloudRequest request) throws HttpProcessException { | ||
String url = request.getUrl(); | ||
String key = request.getKey(); | ||
String secret = request.getSecret(); | ||
//判空 | ||
if (StringUtil.isBlank(url) || StringUtil.isBlank(key) || StringUtil.isBlank(secret)) { | ||
throw new HttpProcessException("url key secret can not be null or empty"); | ||
} | ||
//毫秒级时间 | ||
long localTime = System.currentTimeMillis(); | ||
StringBuilder sb = new StringBuilder(); | ||
if (!url.contains("?")) { | ||
sb.append(url).append("?timestamp=").append(localTime); | ||
} else { | ||
sb.append(url).append("×tamp=").append(localTime); | ||
} | ||
//加签 | ||
String shaUrl = sb.toString(); | ||
String sha = HmacUtils.hmacSha256Hex(secret,shaUrl.substring(shaUrl.indexOf("?") + 1)); | ||
sb.append("&sign=").append(sha); | ||
request.setUrl(sb.toString()); | ||
return request; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package src.main.java.cn.org.assetcloud.builder; | ||
|
||
import org.apache.http.client.config.RequestConfig; | ||
import org.apache.http.impl.client.HttpClientBuilder; | ||
|
||
/** | ||
* @author Juxiu Ren Jianchao | ||
*/ | ||
public class Hcb extends HttpClientBuilder { | ||
|
||
public boolean isSetPool=false; | ||
|
||
|
||
private Hcb(){} | ||
public static Hcb custom(){ | ||
return new Hcb(); | ||
} | ||
|
||
/** | ||
* 设置超时时间 | ||
* | ||
* @param timeout 超市时间,单位-毫秒 | ||
* @return 返回当前对象 | ||
*/ | ||
@Deprecated | ||
public Hcb timeout(int timeout){ | ||
return timeout(timeout, true); | ||
} | ||
|
||
/** | ||
* 设置超时时间以及是否允许网页重定向(自动跳转 302) | ||
* | ||
* @param timeout 超时时间,单位-毫秒 | ||
* @param redirectEnable 自动跳转 | ||
* @return 返回当前对象 | ||
*/ | ||
@Deprecated | ||
public Hcb timeout(int timeout, boolean redirectEnable){ | ||
// 配置请求的超时设置 | ||
RequestConfig config = RequestConfig.custom() | ||
.setConnectionRequestTimeout(timeout) | ||
.setConnectTimeout(timeout) | ||
.setSocketTimeout(timeout) | ||
.setRedirectsEnabled(redirectEnable) | ||
.build(); | ||
return (Hcb) this.setDefaultRequestConfig(config); | ||
} | ||
} |
22 changes: 22 additions & 0 deletions
22
src/main/java/cn/org/assetcloud/entity/AssetCloudRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package src.main.java.cn.org.assetcloud.entity; | ||
|
||
import lombok.Data; | ||
|
||
/** | ||
* @author JuXiu Ren Jianchao | ||
*/ | ||
@Data | ||
public class AssetCloudRequest { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
private String url; | ||
|
||
private String key; | ||
|
||
private String secret; | ||
|
||
private String body; | ||
|
||
private HttpMethods httpMethods; | ||
} |
35 changes: 35 additions & 0 deletions
35
src/main/java/cn/org/assetcloud/entity/AssetCloudResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package src.main.java.cn.org.assetcloud.entity; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Data; | ||
|
||
import java.io.Serializable; | ||
|
||
/** | ||
* @author Juxiu Ren Jianchao | ||
*/ | ||
@Data | ||
public class AssetCloudResponse<T> implements Serializable { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
/** | ||
*状态码 | ||
*/ | ||
private int code; | ||
|
||
/** | ||
*是否成功 | ||
*/ | ||
private Boolean success; | ||
|
||
/** | ||
* 承载数据 | ||
*/ | ||
private T data; | ||
|
||
/** | ||
* 返回消息 | ||
*/ | ||
private String msg; | ||
} |
Oops, something went wrong.