fix check bug

This commit is contained in:
Looly 2020-10-21 12:58:03 +08:00
parent c008d0a081
commit a114113be0
7 changed files with 75 additions and 10 deletions

View File

@ -3,10 +3,14 @@
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.4.6 (2020-10-18) # 5.4.6 (2020-10-21)
### 新特性 ### 新特性
* 【http 】 HttpRequest增加basicProxyAuth方法issue#I1YQGM@Gitee
### Bug修复 ### Bug修复
* 【core 】 修复ChineseDate没有忽略时分秒导致计算错误问题issue#I1YW12@Gitee
* 【core 】 修复FileUtil中copyFile方法断言判断参数传递错误issue#I1Z2NY@Gitee
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------

View File

@ -48,7 +48,7 @@ public class ChineseDate {
*/ */
public ChineseDate(Date date) { public ChineseDate(Date date) {
// 求出和1900年1月31日相差的天数 // 求出和1900年1月31日相差的天数
int offset = (int) ((date.getTime() / DateUnit.DAY.getMillis()) - BASE_DAY); int offset = (int) ((DateUtil.beginOfDay(date).getTime() / DateUnit.DAY.getMillis()) - BASE_DAY);
// 计算农历年份 // 计算农历年份
// 用offset减去每农历年的天数计算当天是农历第几天offset是当年的第几天 // 用offset减去每农历年的天数计算当天是农历第几天offset是当年的第几天
int daysOfYear; int daysOfYear;

View File

@ -862,7 +862,7 @@ public class FileUtil extends PathUtil {
*/ */
public static File copyFile(String src, String dest, StandardCopyOption... options) throws IORuntimeException { public static File copyFile(String src, String dest, StandardCopyOption... options) throws IORuntimeException {
Assert.notBlank(src, "Source File path is blank !"); Assert.notBlank(src, "Source File path is blank !");
Assert.notNull(src, "Destination File path is null !"); Assert.notBlank(dest, "Destination File path is blank !");
return copyFile(Paths.get(src), Paths.get(dest), options).toFile(); return copyFile(Paths.get(src), Paths.get(dest), options).toFile();
} }

View File

@ -95,4 +95,10 @@ public class ChineseDateTest {
date = new ChineseDate(DateUtil.parseDate("1991-09-15")); date = new ChineseDate(DateUtil.parseDate("1991-09-15"));
Assert.assertEquals("辛未羊年 八月初八", date.toString()); Assert.assertEquals("辛未羊年 八月初八", date.toString());
} }
@Test
public void dateTest2(){
ChineseDate date = new ChineseDate(DateUtil.parse("2020-10-19 11:12:23"));
Assert.assertEquals("庚子鼠年 九月初三", date.toString());
}
} }

View File

@ -9,9 +9,19 @@ public enum Header {
//------------------------------------------------------------- 通用头域 //------------------------------------------------------------- 通用头域
/** /**
* 提供验证头 * 提供验证头例如
* <pre>
* Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
* </pre>
*/ */
AUTHORIZATION("Authorization"), AUTHORIZATION("Authorization"),
/**
* 提供给代理服务器的用于身份验证的凭证例如
* <pre>
* Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
* </pre>
*/
PROXY_AUTHORIZATION("Proxy-Authorization"),
/** /**
* 提供日期和时间标志,说明报文是什么时间创建的 * 提供日期和时间标志,说明报文是什么时间创建的
*/ */

View File

@ -1,6 +1,5 @@
package cn.hutool.http; package cn.hutool.http;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IORuntimeException;
@ -981,16 +980,32 @@ public class HttpRequest extends HttpBase<HttpRequest> {
} }
/** /**
* 简单验证 * 简单验证生成的头信息类似于
* <pre>
* Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
* </pre>
* *
* @param username 用户名 * @param username 用户名
* @param password 密码 * @param password 密码
* @return HttpRequest * @return this
*/ */
public HttpRequest basicAuth(String username, String password) { public HttpRequest basicAuth(String username, String password) {
final String data = username.concat(":").concat(password); return auth(HttpUtil.buildBasicAuth(username, password, charset));
final String base64 = Base64.encode(data, charset); }
return auth("Basic " + base64);
/**
* 简单代理验证生成的头信息类似于
* <pre>
* Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
* </pre>
*
* @param username 用户名
* @param password 密码
* @return this
* @since 5.4.6
*/
public HttpRequest basicProxyAuth(String username, String password) {
return proxyAuth(HttpUtil.buildBasicAuth(username, password, charset));
} }
/** /**
@ -1005,6 +1020,18 @@ public class HttpRequest extends HttpBase<HttpRequest> {
return this; return this;
} }
/**
* 验证简单插入Authorization头
*
* @param content 验证内容
* @return HttpRequest
* @since 5.4.6
*/
public HttpRequest proxyAuth(String content) {
header(Header.PROXY_AUTHORIZATION, content, true);
return this;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = StrUtil.builder(); StringBuilder sb = StrUtil.builder();

View File

@ -1,5 +1,6 @@
package cn.hutool.http; package cn.hutool.http;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FastByteArrayOutputStream; import cn.hutool.core.io.FastByteArrayOutputStream;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
@ -870,4 +871,21 @@ public class HttpUtil {
public static SimpleServer createServer(int port) { public static SimpleServer createServer(int port) {
return new SimpleServer(port); return new SimpleServer(port);
} }
/**
* 构建简单的账号秘密验证信息构建后类似于
* <pre>
* Basic YWxhZGRpbjpvcGVuc2VzYW1l
* </pre>
*
* @param username 账号
* @param password 密码
* @param charset 编码如果账号或密码中有非ASCII字符适用
* @return 密码验证信息
* @since 5.4.6
*/
public static String buildBasicAuth(String username, String password, Charset charset){
final String data = username.concat(":").concat(password);
return "Basic " + Base64.encode(data, charset);
}
} }