Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kyb-search
Project
Project
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
万建斌
kyb-search
Commits
8fa69882
Commit
8fa69882
authored
Oct 21, 2019
by
万建斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2019-10-21 bug修复
parent
f961580b
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
105 additions
and
34 deletions
+105
-34
pom.xml
pom.xml
+5
-5
RSAEncryptUtil.java
src/main/java/com/cesgroup/common/utils/RSAEncryptUtil.java
+43
-1
TokenInterceptor.java
...a/com/cesgroup/kingkong/interceptor/TokenInterceptor.java
+45
-21
SearchContrllor.java
src/main/java/com/cesgroup/kingkong/web/SearchContrllor.java
+12
-7
kyb-search.db
src/main/resources/db/kyb-search.db
+0
-0
No files found.
pom.xml
View file @
8fa69882
...
...
@@ -77,10 +77,6 @@
<version>
5.1.4
</version>
</dependency>
<dependency>
<groupId>
org.xerial
</groupId>
<artifactId>
sqlite-jdbc
</artifactId>
</dependency>
<dependency>
<groupId>
com.pentahohub.nexus
</groupId>
<artifactId>
alipay-sdk-java
</artifactId>
<version>
20150820220052
</version>
...
...
@@ -116,7 +112,11 @@
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpcore
</artifactId>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
8.0.18
</version>
</dependency>
<dependency>
<groupId>
com.belerweb
</groupId>
<artifactId>
pinyin4j
</artifactId>
...
...
src/main/java/com/cesgroup/common/utils/RSAEncryptUtil.java
View file @
8fa69882
...
...
@@ -49,7 +49,7 @@ public class RSAEncryptUtil {
private
static
String
CHARSET
=
"UTF-8"
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
List
<
String
>
list
=
new
ArrayList
<>();
/*
List<String> list = new ArrayList<>();
String[] ids = {"CN201310641619.6","CN85108702","CN86105552","CN85102316","CN85100424","CN85107140","CN85105258","CN87104444","CN86106501","CN85104116"};
for (int i = 0; i< 10; i++) {
...
...
@@ -70,6 +70,48 @@ public class RSAEncryptUtil {
// }
// });
// thread.start();
}*/
test1
(
"CN200930231881.8"
);
}
public
static
void
test1
(
String
id
){
//生成公钥和私钥
Map
keyMap
=
new
HashMap
();
keyMap
.
put
(
"publicKey"
,
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJLuCIAqbnO1eunvgp3vby+2s0RnpNq3OFNpIQqStuTVIbedulgS2mEPASi9k5eHlc5n7MlHZMxdNRlBzo81EVa7bVCdS9nw2kMPNJoKLUX0RA8NFIYpkXakocDwCl1J8kNWuN1dMwQOZ7JPZQJaer9aAY/tu2aVpJG+CKTbQHRQIDAQAB"
);
keyMap
.
put
(
"privateKey"
,
"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIku4IgCpuc7V66e+Cne9vL7azRGek2rc4U2khCpK25NUht526WBLaYQ8BKL2Tl4eVzmfsyUdkzF01GUHOjzURVrttUJ1L2fDaQw80mgotRfREDw0UhimRdqShwPAKXUnyQ1a43V0zBA5nsk9lAlp6v1oBj+27ZpWkkb4IpNtAdFAgMBAAECgYA8aHsRCXHrovMSfwgyj+9YwiPMCjjzGMuu3n/lfEkWsk+0r61sLP0oAo9k61ZFe2qd4RX3Cm0pk3dhlgJBBlwumHuX+E+i15gWJT/RBLzulJx6yUMs8SZsfLIyswHIuNUzhuCFk0GwzcHtG1w9VyQkklhUGebsCZbhKmNfdSsipQJBAMCiYmf4c+fdWBOJt+G094XKzchNtkB4QALBR9boJlbyOOqT4U/dNlPUb8PMs2GDfqhSML0lOL4Zg7hKWbpvtqMCQQC2TvtLnTBul2LfybClf0uWMsg9VXfIzkjuSJDlvprFksPaOnIBUI37s2CbWfOZJkgofeKPRPI+Tbl24nPhpvD3AkEAnHIE652bPF7GTi/V2Afp0o3vbFK4xkki61nfp0ipAon78X8iSINGwPRRxLn1oSdy8O63SJX3LGR6VmyDzOc3cwJATvlr9teDMYU2+ca/VRINxmT9RUSO/VgPU9nvmva0yT3IxfJnjJY+y3hrMyEGW6Ovwoq16GZvofm9i/iRRoExBQJAAjc8qZDi9PM0TrNc75V/xfUatKl52QWiCSFHn8biPYtKn02a3ZRnhp+Dk2UNRXSlnveULMa/tqI5MQ1VYleD6Q=="
);
System
.
out
.
println
(
"随机生成的公钥为:"
+
MapUtils
.
getString
(
keyMap
,
"publicKey"
));
System
.
out
.
println
(
"随机生成的私钥为:"
+
MapUtils
.
getString
(
keyMap
,
"privateKey"
));
String
sign
=
""
;
try
{
/*
* 拼接待签名字符串 RSA2对应的函数
*/
Map
map
=
new
HashMap
();
map
.
put
(
"id"
,
id
);
String
content
=
AlipaySignature
.
rsaEncrypt
(
JSON
.
toJSONString
(
map
),
MapUtils
.
getString
(
keyMap
,
"publicKey"
),
CHARSET
);
System
.
out
.
println
(
"拼接待签名字符串:"
+
content
);
/*
* 对数据签名 RSA2对应的函数和密钥
*/
sign
=
AlipaySignature
.
rsaDecrypt
(
content
,
MapUtils
.
getString
(
keyMap
,
"privateKey"
),
CHARSET
);
System
.
out
.
println
(
"原始sign:"
+
sign
);
Map
result
=
JSON
.
parseObject
(
sign
);
System
.
out
.
println
(
result
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
src/main/java/com/cesgroup/kingkong/interceptor/TokenInterceptor.java
View file @
8fa69882
package
com
.
cesgroup
.
kingkong
.
interceptor
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.internal.util.AlipaySignature
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -69,24 +70,37 @@ public class TokenInterceptor implements HandlerInterceptor {
ApiResponse
apiResponse
=
null
;
String
token
=
request
.
getHeader
(
"token"
);
// String remoteAddr = ApiResultUtil.getUserIP(request);
String
remoteAddr
=
"127.0.0.1"
;
if
(
StringUtil
.
isEmpty
(
token
)){
apiResponse
=
ApiResultUtil
.
getApiResponse
(
null
,
ApiResponseEnum
.
AUTH_TOKEN_ERROR
);
}
else
{
IPCheckEntity
ipCheckEntity
=
ipCheckService
.
getOne
(
new
QueryWrapper
<
IPCheckEntity
>().
eq
(
"
token"
,
token
));
IPCheckEntity
ipCheckEntity
=
ipCheckService
.
getOne
(
new
QueryWrapper
<
IPCheckEntity
>().
eq
(
"
ip_address"
,
remoteAddr
));
if
(
ipCheckEntity
!=
null
){
if
(
token
.
equals
(
ipCheckEntity
.
getToken
())){
// 校验token是否过期
if
(
checkToken
(
ipCheckEntity
)){
if
(
checkIp
(
request
,
token
)){
if
(
checkSign
(
params
)){
/* if (checkSign(params)){
IPCheckEntity entity = new IPCheckEntity();
entity.setLastCheckTime(new Date().getTime());
this.ipCheckService.update(entity, new UpdateWrapper<IPCheckEntity>().eq("token", token));
return true;
}else {
apiResponse = ApiResultUtil.getApiResponse(null, ApiResponseEnum.AUTH_SIGN_ERROR);
}*/
try
{
Map
<
String
,
Object
>
requestParams
=
resolveParamsForSign
(
params
);
log
.
info
(
"--------------------SET PARAMS BEGIN--------------------"
);
for
(
Map
.
Entry
entry
:
requestParams
.
entrySet
()){
log
.
info
(
entry
.
getKey
()
+
" : "
+
entry
.
getValue
());
request
.
setAttribute
(
entry
.
getKey
().
toString
(),
entry
.
getValue
());
}
}
else
{
apiResponse
=
ApiResultUtil
.
getApiResponse
(
null
,
ApiResponseEnum
.
AUTH_IP_ERROR
);
log
.
info
(
"--------------------SET PARAMS END----------------------"
);
return
true
;
}
catch
(
Exception
e
){
e
.
printStackTrace
();
apiResponse
=
ApiResultUtil
.
getApiResponse
(
null
,
ApiResponseEnum
.
AUTH_SIGN_ERROR
);
}
}
else
{
...
...
@@ -95,6 +109,9 @@ public class TokenInterceptor implements HandlerInterceptor {
}
else
{
apiResponse
=
ApiResultUtil
.
getApiResponse
(
null
,
ApiResponseEnum
.
AUTH_TOKEN_ERROR
);
}
}
else
{
apiResponse
=
ApiResultUtil
.
getApiResponse
(
null
,
ApiResponseEnum
.
AUTH_IP_ERROR
);
}
}
response
.
setCharacterEncoding
(
"utf-8"
);
...
...
@@ -114,22 +131,6 @@ public class TokenInterceptor implements HandlerInterceptor {
}
/**
* @Description: 校验IP白名单
* @Param: [request]
* @return: boolean
* @Author: Wanjianbin
* @Date: 2019/8/27
*/
private
boolean
checkIp
(
HttpServletRequest
request
,
String
token
)
{
String
remoteAddr
=
ApiResultUtil
.
getUserIP
(
request
);
int
i
=
ipCheckService
.
getBaseMapper
().
selectCount
(
new
QueryWrapper
<
IPCheckEntity
>().
eq
(
"ip_address"
,
remoteAddr
).
eq
(
"token"
,
token
));
if
(
i
<
1
){
return
false
;
}
return
true
;
}
/**
* @Description: 校验签名
* @Param:
* @return:
...
...
@@ -159,6 +160,29 @@ public class TokenInterceptor implements HandlerInterceptor {
}
/**
* @Description: 公钥解密
* @Param:
* @return:
* @Author: Wanjianbin
* @Date: 2019/8/27
*/
private
Map
resolveParamsForSign
(
Map
params
)
throws
Exception
{
String
sign
=
MapUtils
.
getString
(
params
,
"sign"
);
if
(
StringUtils
.
isEmpty
(
sign
)){
return
null
;
}
SecretKeyEntity
secretKeyEntity
=
secretKeyService
.
getById
(
1
);
if
(
secretKeyEntity
==
null
){
log
.
info
(
"-------------------- secretKey SELECT ERROR --------------------"
);
return
null
;
}
String
privateKey
=
secretKeyEntity
.
getPrivateKey
();
return
JSON
.
parseObject
(
AlipaySignature
.
rsaDecrypt
(
sign
,
privateKey
,
"UTF-8"
));
}
/**
* 是否有权限
*
* @param handler
...
...
src/main/java/com/cesgroup/kingkong/web/SearchContrllor.java
View file @
8fa69882
package
com
.
cesgroup
.
kingkong
.
web
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -12,6 +9,8 @@ import org.springframework.web.bind.annotation.*;
import
com.cesgroup.common.utils.RestAPIResult
;
import
com.cesgroup.kingkong.service.impl.QueryService
;
import
javax.servlet.http.HttpServletRequest
;
@RestController
@RequestMapping
(
"v1"
)
...
...
@@ -21,7 +20,8 @@ public class SearchContrllor {
@Autowired
private
QueryService
queryService
;
@RequestMapping
(
value
=
"queryById"
,
method
=
{
RequestMethod
.
POST
})
public
RestAPIResult
<
Object
>
query
(
String
id
)
{
public
RestAPIResult
<
Object
>
query
(
HttpServletRequest
request
)
{
String
id
=
request
.
getAttribute
(
"id"
).
toString
();
RestAPIResult
<
Object
>
panResult
=
new
RestAPIResult
<
Object
>();
Map
<
String
,
Object
>
result
=
null
;
if
(
StringUtils
.
isNotBlank
(
id
))
{
...
...
@@ -58,12 +58,17 @@ public class SearchContrllor {
return
panResult
;
}
/**查询论文接口
(待完成)
/**查询论文接口
* @return
* RestAPIResult<Object>
*/
@RequestMapping
(
value
=
"queryArticleInfo"
,
method
=
{
RequestMethod
.
POST
})
public
RestAPIResult
<
Object
>
queryArticleInfo
(
@RequestParam
Map
<
String
,
Object
>
params
)
{
public
RestAPIResult
<
Object
>
queryArticleInfo
(
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"authorName"
,
request
.
getAttribute
(
"authorName"
));
params
.
put
(
"current"
,
request
.
getAttribute
(
"current"
));
params
.
put
(
"affilorg"
,
request
.
getAttribute
(
"affilorg"
));
RestAPIResult
<
Object
>
panResult
=
new
RestAPIResult
<
Object
>();
Map
<
String
,
Object
>
result
=
queryService
.
queryArticleInfo
(
params
);
if
(
result
==
null
||
result
.
size
()
<=
0
){
...
...
src/main/resources/db/kyb-search.db
deleted
100644 → 0
View file @
f961580b
File deleted
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