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
2248078f
Commit
2248078f
authored
Jan 10, 2020
by
Lenovo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加校验
parent
5d7703bb
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 @
2248078f
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
<filter-class>
com.ejweb.core.filter.BasicVerifyFilter
</filter-class>
<filter-class>
com.ejweb.core.filter.BasicVerifyFilter
</filter-class>
<init-param>
<init-param>
<param-name>
excludedPages
</param-name>
<param-name>
excludedPages
</param-name>
<param-value>
*
</param-value>
<param-value>
app
</param-value>
</init-param>
</init-param>
</filter>
</filter>
<filter-mapping>
<filter-mapping>
...
...
resources/ejweb.properties
View file @
2248078f
...
@@ -67,7 +67,7 @@ seat.default.photo=images/user/avatar/seat_avatar.png
...
@@ -67,7 +67,7 @@ seat.default.photo=images/user/avatar/seat_avatar.png
# Sign Private Key(Default FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn)
# Sign Private Key(Default FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn)
content.sign.private.key
=
FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn
content.sign.private.key
=
FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn
# Verify Post Content Sign(Default true)
# 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
# \u9996\u822A\u63A5\u53E3\u57FA\u672C\u5730\u5740
jdair.api.base.url
=
https://dsp.jdair.net
jdair.api.base.url
=
https://dsp.jdair.net
jdair.api.base.param
=
ai.cc=7&ai.cp=10.68.26.52
jdair.api.base.param
=
ai.cc=7&ai.cp=10.68.26.52
...
...
src/com/ejweb/core/filter/BasicVerifyFilter.java
View file @
2248078f
...
@@ -116,7 +116,7 @@ public class BasicVerifyFilter implements Filter {
...
@@ -116,7 +116,7 @@ public class BasicVerifyFilter implements Filter {
if
(
baseBean
.
getAppCode
()
!=
null
)
{
// 基本必要参数验证通过
if
(
baseBean
.
getAppCode
()
!=
null
)
{
// 基本必要参数验证通过
message
=
"签名验证不匹配"
;
message
=
"签名验证不匹配"
;
if
(
GConstants
.
IS_VERIFY_CONTENT_SIGN
==
false
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
);
filterChain
.
doFilter
(
request
,
response
);
return
;
return
;
}
}
...
...
src/com/ejweb/core/security/GlobalUtil.java
View file @
2248078f
...
@@ -4,6 +4,8 @@ import javax.crypto.Mac;
...
@@ -4,6 +4,8 @@ import javax.crypto.Mac;
import
javax.crypto.spec.SecretKeySpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.io.UnsupportedEncodingException
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLDecoder
;
import
java.net.URLDecoder
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
public
class
GlobalUtil
{
public
class
GlobalUtil
{
...
@@ -16,7 +18,20 @@ public class GlobalUtil {
...
@@ -16,7 +18,20 @@ public class GlobalUtil {
public
static
boolean
verify
(
String
data
,
String
privateKey
,
String
sign
)
{
public
static
boolean
verify
(
String
data
,
String
privateKey
,
String
sign
)
{
try
{
try
{
String
mSign
=
getParamsSignStr
(
privateKey
,
data
);
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
;
return
true
;
mSign
=
URLDecoder
.
decode
(
mSign
,
"UTF-8"
);
mSign
=
URLDecoder
.
decode
(
mSign
,
"UTF-8"
);
return
mSign
.
equals
(
sign
);
return
mSign
.
equals
(
sign
);
...
@@ -35,7 +50,24 @@ public class GlobalUtil {
...
@@ -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
)
{
public
static
String
getParamsSignStr
(
String
key
,
String
paramsStr
)
{
if
(
key
==
null
||
paramsStr
==
null
)
{
if
(
key
==
null
||
paramsStr
==
null
)
{
...
@@ -53,11 +85,9 @@ public class GlobalUtil {
...
@@ -53,11 +85,9 @@ public class GlobalUtil {
/**
/**
* HMACSHA1加密
* HMACSHA1加密
*
*
* @param key
* @param key 加密使用的key
* 加密使用的key
* @param strByte 待加密的数据
* @param strByte
* 待加密的数据
* @return 生成MD5编码的字符串
* @return 生成MD5编码的字符串
*/
*/
...
@@ -80,15 +110,56 @@ public class GlobalUtil {
...
@@ -80,15 +110,56 @@ public class GlobalUtil {
* base64加密
* base64加密
*/
*/
public
static
String
base64
(
byte
[]
val
)
{
public
static
String
base64
(
byte
[]
val
)
{
if
(
val
==
null
)
if
(
val
==
null
)
{
return
null
;
return
null
;
else
}
else
{
return
Base64
.
encode
(
val
);
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
)
{
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
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
sign
=
GlobalUtil
.
getParamsSignStr
(
"FvNMhdkN5eTsgAfU2YHGJ2RfpKVi3omn"
,
param
);
String
check
=
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