Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
4d7af4f0
提交
4d7af4f0
编写于
2月 13, 2020
作者:
wfy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
闪验:登录demo
上级
8ecde431
流水线
#21556
已失败 于阶段
in 0 second
变更
12
流水线
1
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
615 行增加
和
9 行删除
+615
-9
LoginController.java
...ud/account/account/server/controller/LoginController.java
+2
-3
MobileDataEntity.java
...cloud/account/account/server/entity/MobileDataEntity.java
+46
-0
QueryMobileEntity.java
...loud/account/account/server/entity/QueryMobileEntity.java
+56
-0
OneClickLoginReq.java
...ca/cloud/account/account/server/req/OneClickLoginReq.java
+30
-0
QueryMobileReq.java
...pica/cloud/account/account/server/req/QueryMobileReq.java
+64
-0
LoginServiceImpl.java
...account/account/server/service/impl/LoginServiceImpl.java
+2
-6
Base64.java
...va/com/pica/cloud/account/account/server/util/Base64.java
+172
-0
ByteFormat.java
...om/pica/cloud/account/account/server/util/ByteFormat.java
+58
-0
HttpUtil.java
.../com/pica/cloud/account/account/server/util/HttpUtil.java
+68
-0
MD5.java
.../java/com/pica/cloud/account/account/server/util/MD5.java
+44
-0
SignUtils.java
...com/pica/cloud/account/account/server/util/SignUtils.java
+52
-0
OneClickLoginResultVo.java
...loud/account/account/server/vo/OneClickLoginResultVo.java
+21
-0
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/controller/LoginController.java
浏览文件 @
4d7af4f0
...
@@ -211,9 +211,8 @@ public class LoginController extends AccountBaseController {
...
@@ -211,9 +211,8 @@ public class LoginController extends AccountBaseController {
@ApiOperation
(
value
=
"app端手机号码一键登录"
)
@ApiOperation
(
value
=
"app端手机号码一键登录"
)
@PostMapping
(
"/login/one-click"
)
@PostMapping
(
"/login/one-click"
)
public
PicaResponse
<
OneClickLoginResultVo
>
oneClickLogin
(
@RequestBody
OneClickLoginReq
req
){
public
PicaResponse
<
OneClickLoginResultVo
>
oneClickLogin
(
@RequestBody
OneClickLoginReq
req
)
{
OneClickLoginResultVo
oneClickLoginResultVo
=
new
OneClickLoginResultVo
();
OneClickLoginResultVo
oneClickLoginResultVo
=
loginService
.
oneClickLogin
(
req
);
oneClickLoginResultVo
=
loginService
.
oneClickLogin
(
req
);
return
PicaResponse
.
toResponse
(
oneClickLoginResultVo
);
return
PicaResponse
.
toResponse
(
oneClickLoginResultVo
);
}
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/entity/MobileDataEntity.java
0 → 100644
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
entity
;
/**
* @program: pica-cloud-account
* @description:
* @author: wfy
* @create: 2020-02-12 17:09
*/
public
class
MobileDataEntity
{
private
String
mobileName
;
private
String
tradeNo
;
private
Integer
fanqizha
;
private
String
tag
;
public
String
getMobileName
()
{
return
mobileName
;
}
public
void
setMobileName
(
String
mobileName
)
{
this
.
mobileName
=
mobileName
;
}
public
String
getTradeNo
()
{
return
tradeNo
;
}
public
void
setTradeNo
(
String
tradeNo
)
{
this
.
tradeNo
=
tradeNo
;
}
public
Integer
getFanqizha
()
{
return
fanqizha
;
}
public
void
setFanqizha
(
Integer
fanqizha
)
{
this
.
fanqizha
=
fanqizha
;
}
public
String
getTag
()
{
return
tag
;
}
public
void
setTag
(
String
tag
)
{
this
.
tag
=
tag
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/entity/QueryMobileEntity.java
0 → 100644
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
entity
;
/**
* @program: pica-cloud-account
* @description:
* @author: wfy
* @create: 2020-02-12 17:06
*/
public
class
QueryMobileEntity
{
private
String
code
;
private
String
message
;
private
Integer
chargeStatus
;
private
MobileDataEntity
data
;
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
Integer
getChargeStatus
()
{
return
chargeStatus
;
}
public
void
setChargeStatus
(
Integer
chargeStatus
)
{
this
.
chargeStatus
=
chargeStatus
;
}
public
MobileDataEntity
getData
()
{
return
data
;
}
public
void
setData
(
MobileDataEntity
data
)
{
this
.
data
=
data
;
}
@Override
public
String
toString
()
{
return
"QueryMobileEntity{"
+
"code='"
+
code
+
'\''
+
", message='"
+
message
+
'\''
+
", chargeStatus="
+
chargeStatus
+
", data="
+
data
+
'}'
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/req/OneClickLoginReq.java
0 → 100644
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
req
;
/**
* @program: pica-cloud-account
* @description:
* @author: wfy
* @create: 2020-02-12 15:58
*/
public
class
OneClickLoginReq
{
private
Integer
type
=
0
;
private
String
token
=
""
;
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/req/QueryMobileReq.java
0 → 100644
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
req
;
/**
* @program: pica-cloud-account
* @description:
* @author: wfy
* @create: 2020-02-12 17:11
*/
public
class
QueryMobileReq
{
private
String
token
;
private
String
appId
;
private
String
clientIp
;
private
String
encryptType
;
private
String
outId
;
private
String
sign
;
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
public
String
getAppId
()
{
return
appId
;
}
public
void
setAppId
(
String
appId
)
{
this
.
appId
=
appId
;
}
public
String
getClientIp
()
{
return
clientIp
;
}
public
void
setClientIp
(
String
clientIp
)
{
this
.
clientIp
=
clientIp
;
}
public
String
getEncryptType
()
{
return
encryptType
;
}
public
void
setEncryptType
(
String
encryptType
)
{
this
.
encryptType
=
encryptType
;
}
public
String
getOutId
()
{
return
outId
;
}
public
void
setOutId
(
String
outId
)
{
this
.
outId
=
outId
;
}
public
String
getSign
()
{
return
sign
;
}
public
void
setSign
(
String
sign
)
{
this
.
sign
=
sign
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/LoginServiceImpl.java
浏览文件 @
4d7af4f0
...
@@ -431,10 +431,10 @@ public class LoginServiceImpl implements LoginService {
...
@@ -431,10 +431,10 @@ public class LoginServiceImpl implements LoginService {
String
code
=
queryMobileEntity
.
getCode
();
//返回码 200000为成功
String
code
=
queryMobileEntity
.
getCode
();
//返回码 200000为成功
String
message
=
queryMobileEntity
.
getMessage
();
//返回消息
String
message
=
queryMobileEntity
.
getMessage
();
//返回消息
Integer
chargeStatus
=
queryMobileEntity
.
getChargeStatus
();
//是否收费
Integer
chargeStatus
=
queryMobileEntity
.
getChargeStatus
();
//是否收费
o
.
setQueryMobileEntity
(
queryMobileEntity
);
if
(
"200000"
.
equals
(
code
))
{
if
(
"200000"
.
equals
(
code
))
{
MobileDataEntity
mobileDataEntity
=
queryMobileEntity
.
getData
();
MobileDataEntity
mobileDataEntity
=
queryMobileEntity
.
getData
();
String
mobile
=
mobileDataEntity
.
getMobileName
();
String
mobile
=
mobileDataEntity
.
getMobileName
();
String
tradeNo
=
mobileDataEntity
.
getTradeNo
();
//交易流水号
if
(
"0"
.
equals
(
encryptType
))
{
if
(
"0"
.
equals
(
encryptType
))
{
String
key
=
MD5
.
getMD5Code
(
appKey
);
String
key
=
MD5
.
getMD5Code
(
appKey
);
mobile
=
AESUtil
.
decrypt
(
mobile
,
key
.
substring
(
0
,
16
),
key
.
substring
(
16
));
mobile
=
AESUtil
.
decrypt
(
mobile
,
key
.
substring
(
0
,
16
),
key
.
substring
(
16
));
...
@@ -442,11 +442,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -442,11 +442,7 @@ public class LoginServiceImpl implements LoginService {
mobile
=
RSAUtil
.
decryptByPrivateKeyForLongStr
(
mobile
,
privateKey
);
mobile
=
RSAUtil
.
decryptByPrivateKeyForLongStr
(
mobile
,
privateKey
);
}
}
System
.
out
.
println
(
"mobile:"
+
mobile
);
//解密后的手机号码
System
.
out
.
println
(
"mobile:"
+
mobile
);
//解密后的手机号码
o
.
setMobile
(
mobile
);
queryMobileEntity
.
getData
().
setMobileName
(
mobile
);
o
.
setFanqizha
(
mobileDataEntity
.
getFanqizha
());
o
.
setTag
(
mobileDataEntity
.
getTag
());
o
.
setTradeNo
(
tradeNo
);
o
.
setMessage
(
message
);
}
}
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
server/src/main/java/com/pica/cloud/account/account/server/util/Base64.java
0 → 100755
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
;
public
final
class
Base64
{
/**
* Base64编码表。
*/
private
static
final
char
[]
BASE64CODE
=
{
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
,
'G'
,
'H'
,
'I'
,
'J'
,
'K'
,
'L'
,
'M'
,
'N'
,
'O'
,
'P'
,
'Q'
,
'R'
,
'S'
,
'T'
,
'U'
,
'V'
,
'W'
,
'X'
,
'Y'
,
'Z'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
,
'g'
,
'h'
,
'i'
,
'j'
,
'k'
,
'l'
,
'm'
,
'n'
,
'o'
,
'p'
,
'q'
,
'r'
,
's'
,
't'
,
'u'
,
'v'
,
'w'
,
'x'
,
'y'
,
'z'
,
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'+'
,
'/'
,
};
/**
* Base64解码表。
*/
private
static
final
byte
[]
BASE64DECODE
=
{
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
// 注意两个63,为兼容SMP,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
62
,
-
1
,
63
,
-
1
,
63
,
// “/”和“-”都翻译成63。
52
,
53
,
54
,
55
,
56
,
57
,
58
,
59
,
60
,
61
,
-
1
,
-
1
,
-
1
,
0
,
-
1
,
-
1
,
-
1
,
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
// 注意两个0:
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
// “A”和“=”都翻译成0。
-
1
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
};
private
static
final
int
HEX_255
=
0x0000ff
;
private
static
final
int
HEX_16515072
=
0xfc0000
;
private
static
final
int
HEX_258048
=
0x3f000
;
private
static
final
int
HEX_4032
=
0xfc0
;
private
static
final
int
HEX_63
=
0x3f
;
private
static
final
int
HEX_16711680
=
0xff0000
;
private
static
final
int
HEX_65280
=
0x00ff00
;
private
static
final
int
NUMBER_TWO
=
2
;
private
static
final
int
NUMBER_THREE
=
3
;
private
static
final
int
NUMBER_FOUR
=
4
;
private
static
final
int
NUMBER_SIX
=
6
;
private
static
final
int
NUMBER_EIGHT
=
8
;
private
static
final
int
NUMBER_TWELVE
=
12
;
private
static
final
int
NUMBER_SIXTEEN
=
16
;
private
static
final
int
NUMBER_EIGHTEEN
=
18
;
/**
* 构造方法私有化,防止实例化。
*/
private
Base64
()
{
}
/**
* Base64编码。将字节数组中字节3个一组编码成4个可见字符。
*
* @param b
* 需要被编码的字节数据。
* @return 编码后的Base64字符串。
*/
public
static
String
encode
(
byte
[]
b
)
{
int
code
=
0
;
// 按实际编码后长度开辟内存,加快速度
StringBuffer
sb
=
new
StringBuffer
(
((
b
.
length
-
1
)
/
NUMBER_THREE
)
<<
NUMBER_TWO
+
NUMBER_FOUR
);
// 进行编码
for
(
int
i
=
0
;
i
<
b
.
length
;
i
++)
{
code
|=
(
b
[
i
]
<<
(
NUMBER_SIXTEEN
-
i
%
NUMBER_THREE
*
NUMBER_EIGHT
))
&
(
HEX_255
<<
(
NUMBER_SIXTEEN
-
i
%
NUMBER_THREE
*
NUMBER_EIGHT
));
if
(
i
%
NUMBER_THREE
==
NUMBER_TWO
||
i
==
b
.
length
-
1
)
{
sb
.
append
(
BASE64CODE
[(
code
&
HEX_16515072
)
>>>
NUMBER_EIGHTEEN
]);
sb
.
append
(
BASE64CODE
[(
code
&
HEX_258048
)
>>>
NUMBER_TWELVE
]);
sb
.
append
(
BASE64CODE
[(
code
&
HEX_4032
)
>>>
NUMBER_SIX
]);
sb
.
append
(
BASE64CODE
[
code
&
HEX_63
]);
code
=
0
;
}
}
// 对于长度非3的整数倍的字节数组,编码前先补0,编码后结尾处编码用=代替,
// =的个数和短缺的长度一致,以此来标识出数据实际长度
if
(
b
.
length
%
NUMBER_THREE
>
0
)
{
sb
.
setCharAt
(
sb
.
length
()
-
1
,
'='
);
}
if
(
b
.
length
%
NUMBER_THREE
==
1
)
{
sb
.
setCharAt
(
sb
.
length
()
-
NUMBER_TWO
,
'='
);
}
return
sb
.
toString
();
}
/**
* Base64解码。
*
* @param code
* 用Base64编码的ASCII字符串
* @return 解码后的字节数据
*/
public
static
byte
[]
decode
(
String
code
)
{
// 检查参数合法性
if
(
code
==
null
)
{
return
null
;
}
int
len
=
code
.
length
();
if
(
len
%
NUMBER_FOUR
!=
0
)
{
throw
new
IllegalArgumentException
(
"Base64 string length must be 4*n"
);
}
if
(
code
.
length
()
==
0
)
{
return
new
byte
[
0
];
}
// 统计填充的等号个数
int
pad
=
0
;
if
(
code
.
charAt
(
len
-
1
)
==
'='
)
{
pad
++;
}
if
(
code
.
charAt
(
len
-
NUMBER_TWO
)
==
'='
)
{
pad
++;
}
// 根据填充等号的个数来计算实际数据长度
int
retLen
=
len
/
NUMBER_FOUR
*
NUMBER_THREE
-
pad
;
// 分配字节数组空间
byte
[]
ret
=
new
byte
[
retLen
];
// 查表解码
char
ch1
,
ch2
,
ch3
,
ch4
;
int
i
;
for
(
i
=
0
;
i
<
len
;
i
+=
NUMBER_FOUR
)
{
int
j
=
i
/
NUMBER_FOUR
*
NUMBER_THREE
;
ch1
=
code
.
charAt
(
i
);
ch2
=
code
.
charAt
(
i
+
1
);
ch3
=
code
.
charAt
(
i
+
NUMBER_TWO
);
ch4
=
code
.
charAt
(
i
+
NUMBER_THREE
);
int
tmp
=
(
BASE64DECODE
[
ch1
]
<<
NUMBER_EIGHTEEN
)
|
(
BASE64DECODE
[
ch2
]
<<
NUMBER_TWELVE
)
|
(
BASE64DECODE
[
ch3
]
<<
NUMBER_SIX
)
|
(
BASE64DECODE
[
ch4
]);
ret
[
j
]
=
(
byte
)
((
tmp
&
HEX_16711680
)
>>
NUMBER_SIXTEEN
);
if
(
i
<
len
-
NUMBER_FOUR
)
{
ret
[
j
+
1
]
=
(
byte
)
((
tmp
&
HEX_65280
)
>>
NUMBER_EIGHT
);
ret
[
j
+
NUMBER_TWO
]
=
(
byte
)
((
tmp
&
HEX_255
));
}
else
{
if
(
j
+
1
<
retLen
)
{
ret
[
j
+
1
]
=
(
byte
)
((
tmp
&
HEX_65280
)
>>
NUMBER_EIGHT
);
}
if
(
j
+
NUMBER_TWO
<
retLen
)
{
ret
[
j
+
NUMBER_TWO
]
=
(
byte
)
((
tmp
&
HEX_255
));
}
}
}
return
ret
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/util/ByteFormat.java
0 → 100755
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
;
/**
* 格式化操作类
*/
public
class
ByteFormat
{
private
static
final
char
[]
HEX
=
new
char
[]{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
public
ByteFormat
()
{
}
public
static
final
String
bytesToHexString
(
byte
[]
bArray
)
{
StringBuffer
sb
=
new
StringBuffer
(
bArray
.
length
);
for
(
int
i
=
0
;
i
<
bArray
.
length
;
++
i
)
{
String
sTemp
=
Integer
.
toHexString
(
255
&
bArray
[
i
]);
if
(
sTemp
.
length
()
<
2
)
{
sb
.
append
(
0
);
}
sb
.
append
(
sTemp
.
toUpperCase
());
}
return
sb
.
toString
();
}
public
static
byte
[]
hexToBytes
(
String
str
)
{
if
(
str
==
null
)
{
return
null
;
}
else
{
char
[]
hex
=
str
.
toCharArray
();
int
length
=
hex
.
length
/
2
;
byte
[]
raw
=
new
byte
[
length
];
for
(
int
i
=
0
;
i
<
length
;
++
i
)
{
int
high
=
Character
.
digit
(
hex
[
i
*
2
],
16
);
int
low
=
Character
.
digit
(
hex
[
i
*
2
+
1
],
16
);
int
value
=
high
<<
4
|
low
;
if
(
value
>
127
)
{
value
-=
256
;
}
raw
[
i
]
=
(
byte
)
value
;
}
return
raw
;
}
}
public
static
void
main
(
String
[]
args
)
{
byte
[]
data
=
new
byte
[
65536
];
for
(
int
i
=
0
;
i
<
data
.
length
;
++
i
)
{
data
[
i
]
=
(
byte
)
i
;
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/util/HttpUtil.java
0 → 100644
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.pica.cloud.foundation.utils.utils.HttpClientUtil
;
import
com.pica.cloud.foundation.utils.utils.StringUtil
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.client.utils.URIBuilder
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.util.Iterator
;
import
java.util.Map
;
/**
* @program: pica-cloud-account
* @description:
* @author: wfy
* @create: 2020-02-12 17:45
*/
public
class
HttpUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
HttpClientUtil
.
class
);
private
static
final
CloseableHttpClient
hc
;
static
{
PoolingHttpClientConnectionManager
cm
=
new
PoolingHttpClientConnectionManager
();
cm
.
setDefaultMaxPerRoute
(
20
);
cm
.
setMaxTotal
(
200
);
hc
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
}
public
static
Object
postForm
(
String
url
,
Map
<
String
,
String
>
params
,
Class
clazz
)
throws
IOException
,
URISyntaxException
{
URIBuilder
builder
=
new
URIBuilder
(
url
);
if
(
params
!=
null
&&
params
.
size
()
>
0
)
{
params
.
forEach
((
k
,
v
)
->
{
builder
.
setParameter
(
k
,
v
);
});
}
HttpPost
post
=
new
HttpPost
(
builder
.
build
());
CloseableHttpResponse
resp
=
null
;
Object
data
;
try
{
resp
=
hc
.
execute
(
post
);
String
buf
=
IOUtils
.
toString
(
resp
.
getEntity
().
getContent
(),
"utf-8"
);
data
=
StringUtil
.
isNotNull
(
buf
)
?
JSON
.
parseObject
(
buf
,
clazz
)
:
null
;
}
finally
{
if
(
resp
!=
null
)
{
try
{
resp
.
close
();
}
catch
(
IOException
var12
)
{
logger
.
error
(
var12
.
getMessage
());
}
}
}
return
data
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/util/MD5.java
0 → 100755
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
;
import
java.security.MessageDigest
;
public
class
MD5
{
// 全局数组
private
final
static
String
[]
strDigits
=
{
"0"
,
"1"
,
"2"
,
"3"
,
"4"
,
"5"
,
"6"
,
"7"
,
"8"
,
"9"
,
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"j"
,
"?"
,
"~"
};
// 返回形式为数字跟字符串
private
static
String
byteToArrayString
(
byte
bByte
)
{
int
iRet
=
bByte
;
if
(
iRet
<
0
)
{
iRet
+=
256
;
}
int
iD1
=
iRet
/
16
;
int
iD2
=
iRet
%
16
;
return
strDigits
[
iD1
]
+
strDigits
[
iD2
];
}
// 转换字节数组为16进制字串
private
static
String
byteToString
(
byte
[]
bByte
)
{
StringBuffer
sBuffer
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
bByte
.
length
;
i
++)
{
sBuffer
.
append
(
byteToArrayString
(
bByte
[
i
]));
}
return
sBuffer
.
toString
();
}
public
static
String
getMD5Code
(
String
strObj
)
{
String
resultString
=
null
;
try
{
resultString
=
new
String
(
strObj
);
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
// md.digest() 该函数返回值为存放哈希值结果的byte数组
resultString
=
byteToString
(
md
.
digest
(
strObj
.
getBytes
(
"UTF-8"
)));
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
}
return
resultString
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/util/SignUtils.java
0 → 100755
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
util
;
import
javax.crypto.Mac
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.util.Arrays
;
import
java.util.Map
;
/**
* Description:签名工具类
* User: liutao
* Date: 2019-09-11
* Time: 10:29
*/
public
class
SignUtils
{
public
static
String
getSign
(
Map
<
String
,
String
>
requestMap
,
String
appKey
)
{
return
hmacSHA256Encrypt
(
requestMap2Str
(
requestMap
),
appKey
);
}
private
static
String
hmacSHA256Encrypt
(
String
encryptText
,
String
encryptKey
)
{
byte
[]
result
=
null
;
try
{
//根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
SecretKeySpec
signinKey
=
new
SecretKeySpec
(
encryptKey
.
getBytes
(
"UTF-8"
),
"HmacSHA256"
);
//生成一个指定 Mac 算法 的 Mac 对象
Mac
mac
=
Mac
.
getInstance
(
"HmacSHA256"
);
//用给定密钥初始化 Mac 对象
mac
.
init
(
signinKey
);
//完成 Mac 操作
byte
[]
rawHmac
=
mac
.
doFinal
(
encryptText
.
getBytes
(
"UTF-8"
));
return
ByteFormat
.
bytesToHexString
(
rawHmac
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
private
static
String
requestMap2Str
(
Map
<
String
,
String
>
requestMap
)
{
String
[]
keys
=
requestMap
.
keySet
().
toArray
(
new
String
[
0
]);
Arrays
.
sort
(
keys
);
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
String
str
:
keys
)
{
if
(!
str
.
equals
(
"sign"
))
{
stringBuilder
.
append
(
str
).
append
(
requestMap
.
get
(
str
));
}
}
return
stringBuilder
.
toString
();
}
}
server/src/main/java/com/pica/cloud/account/account/server/vo/OneClickLoginResultVo.java
0 → 100644
浏览文件 @
4d7af4f0
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
vo
;
import
com.pica.cloud.account.account.server.entity.QueryMobileEntity
;
/**
* @program: pica-cloud-account
* @description:
* @author: wfy
* @create: 2020-02-12 16:01
*/
public
class
OneClickLoginResultVo
{
private
QueryMobileEntity
queryMobileEntity
;
public
QueryMobileEntity
getQueryMobileEntity
()
{
return
queryMobileEntity
;
}
public
void
setQueryMobileEntity
(
QueryMobileEntity
queryMobileEntity
)
{
this
.
queryMobileEntity
=
queryMobileEntity
;
}
}
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录