Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
首航-临时账号
api
Commits
28da5870
Commit
28da5870
authored
Jan 10, 2020
by
Lenovo
Committed by
zhangyu
Jan 10, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加校验
parent
b5f5272d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
85 additions
and
14 deletions
+85
-14
web.xml
WebContent/WEB-INF/web.xml
+1
-1
ejweb.properties
resources/ejweb.properties
+1
-1
BasicVerifyFilter.java
src/com/ejweb/core/filter/BasicVerifyFilter.java
+1
-1
GlobalUtil.java
src/com/ejweb/core/security/GlobalUtil.java
+82
-11
No files found.
WebContent/WEB-INF/web.xml
View file @
28da5870
...
...
@@ -57,7 +57,7 @@
<filter-class>
com.ejweb.core.filter.BasicVerifyFilter
</filter-class>
<init-param>
<param-name>
excludedPages
</param-name>
<param-value>
*
</param-value>
<param-value>
app
</param-value>
</init-param>
</filter>
<filter-mapping>
...
...
resources/ejweb.properties
View file @
28da5870
...
...
@@ -67,7 +67,7 @@ seat.default.photo=images/user/avatar/seat_avatar.png
# Sign Private Key(Default FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn)
content.sign.private.key
=
FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn
# Verify Post Content Sign(Default true)
is.verify.content.sign
=
fals
e
is.verify.content.sign
=
tru
e
# \u9996\u822A\u63A5\u53E3\u57FA\u672C\u5730\u5740
jdair.api.base.url
=
https://dsp.jdair.net
jdair.api.base.param
=
ai.cc=7&ai.cp=10.68.26.52
...
...
src/com/ejweb/core/filter/BasicVerifyFilter.java
View file @
28da5870
...
...
@@ -116,7 +116,7 @@ public class BasicVerifyFilter implements Filter {
if
(
baseBean
.
getAppCode
()
!=
null
)
{
// 基本必要参数验证通过
message
=
"签名验证不匹配"
;
if
(
GConstants
.
IS_VERIFY_CONTENT_SIGN
==
false
||
GlobalUtil
.
verify
(
content
,
GConstants
.
SIGN_PRIVATE_KEY
,
sign
))
{
// 签名验证通过
||
GlobalUtil
.
verify
Sign
(
content
,
GConstants
.
SIGN_PRIVATE_KEY
,
sign
))
{
// 签名验证通过
filterChain
.
doFilter
(
request
,
response
);
return
;
}
...
...
src/com/ejweb/core/security/GlobalUtil.java
View file @
28da5870
...
...
@@ -4,6 +4,8 @@ import javax.crypto.Mac;
import
javax.crypto.spec.SecretKeySpec
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLDecoder
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
public
class
GlobalUtil
{
...
...
@@ -16,7 +18,20 @@ public class GlobalUtil {
public
static
boolean
verify
(
String
data
,
String
privateKey
,
String
sign
)
{
try
{
String
mSign
=
getParamsSignStr
(
privateKey
,
data
);
if
(
mSign
==
null
||
sign
==
null
)
if
(
mSign
==
null
||
sign
==
null
)
return
true
;
mSign
=
URLDecoder
.
decode
(
mSign
,
"UTF-8"
);
return
mSign
.
equals
(
sign
);
}
catch
(
Exception
e
)
{
// TODO: handle exception
}
return
false
;
}
public
static
boolean
verifySign
(
String
data
,
String
privateKey
,
String
sign
)
{
try
{
String
mSign
=
getParamsSign
(
privateKey
,
data
);
if
(
mSign
==
null
||
sign
==
null
)
return
true
;
mSign
=
URLDecoder
.
decode
(
mSign
,
"UTF-8"
);
return
mSign
.
equals
(
sign
);
...
...
@@ -35,7 +50,24 @@ public class GlobalUtil {
/**
* 获取加密后的字符串
*
*/
public
static
String
getParamsSign
(
String
key
,
String
paramsStr
)
{
if
(
key
==
null
||
paramsStr
==
null
)
{
return
""
;
}
// String signedString = JSON.toJSONString(paramsStr);
String
signedStr
=
getSHA256
(
paramsStr
+
key
);
// String signedStr1 = base64(signedStr.getBytes("UTF-8"));
return
signedStr
;
// try {
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
// return "";
}
/**
* 获取加密后的字符串
*/
public
static
String
getParamsSignStr
(
String
key
,
String
paramsStr
)
{
if
(
key
==
null
||
paramsStr
==
null
)
{
...
...
@@ -53,11 +85,9 @@ public class GlobalUtil {
/**
* HMACSHA1加密
*
* @param key
* 加密使用的key
* @param strByte
* 待加密的数据
*
* @param key 加密使用的key
* @param strByte 待加密的数据
* @return 生成MD5编码的字符串
*/
...
...
@@ -80,15 +110,56 @@ public class GlobalUtil {
* base64加密
*/
public
static
String
base64
(
byte
[]
val
)
{
if
(
val
==
null
)
if
(
val
==
null
)
{
return
null
;
else
}
else
{
return
Base64
.
encode
(
val
);
}
}
/**
* * 利用java原生的类实现SHA256加密
* * @param str 加密后的报文
* * @return
*
*/
public
static
String
getSHA256
(
String
str
)
{
MessageDigest
messageDigest
;
String
encodeStr
=
""
;
try
{
messageDigest
=
MessageDigest
.
getInstance
(
"SHA-256"
);
messageDigest
.
update
(
str
.
getBytes
(
"UTF-8"
));
encodeStr
=
byte2Hex
(
messageDigest
.
digest
());
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
return
encodeStr
;
}
/**
* * 将byte转为16进制
* * @param bytes
* * @return
*
*/
private
static
String
byte2Hex
(
byte
[]
bytes
)
{
StringBuffer
stringBuffer
=
new
StringBuffer
();
String
temp
=
null
;
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
temp
=
Integer
.
toHexString
(
bytes
[
i
]
&
0xFF
);
if
(
temp
.
length
()
==
1
)
{
//1得到一位的进行补0操作
stringBuffer
.
append
(
"0"
);
}
stringBuffer
.
append
(
temp
);
}
return
stringBuffer
.
toString
();
}
public
static
void
main
(
String
[]
args
)
{
//{"shop_code":"ringpu","user_code":"","role_code":"","user_channel":"1002","sub_channel":"AGENCY","version_name":"0.9","password":"111111","telephone":"13752653287"}
//{"shop_code":"ringpu","user_code":"","role_code":"","user_channel":"1002","sub_channel":"AGENCY","version_name":"0.9","password":"111111","telephone":"13752653287"}
String
param
=
"{\"appCode\":\"30007\",\"appkey\":\"\",\"versionName\":\"6.0.0\",\"platform\":\"Android\",\"deviceToken\":\"deviceToken\",\"language\":\"zh_CN\",email : '123@qwe.com',name : 'name', keywords : '天津', staffAccounts : ['794089036222300160', 'seat791537198252023808']}"
;
String
sign
=
GlobalUtil
.
getParamsSignStr
(
"FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn"
,
param
);
String
check
=
getParamsSignStr
(
"FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn"
,
param
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment