记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
董敬伟
liquidnet-bus-v1
Commits
868e95cf
Commit
868e95cf
authored
May 27, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
opt:zuul auth filter;
parent
5bbda1e2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
61 additions
and
40 deletions
+61
-40
AdamMemberPriceController.java
...vice/adam/controller/admin/AdamMemberPriceController.java
+11
-6
AdamMemberPriceServiceImpl.java
...e/adam/service/impl/admin/AdamMemberPriceServiceImpl.java
+6
-2
GlobalAuthFilter.java
...a/com/liquidnet/support/zuul/filter/GlobalAuthFilter.java
+44
-32
No files found.
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/admin/AdamMemberPriceController.java
View file @
868e95cf
...
@@ -9,6 +9,8 @@ import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
...
@@ -9,6 +9,8 @@ import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.service.admin.IAdamMemberPriceService
;
import
com.liquidnet.service.adam.service.admin.IAdamMemberPriceService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -22,15 +24,18 @@ import java.util.List;
...
@@ -22,15 +24,18 @@ import java.util.List;
@Api
(
tags
=
"后台管理:会员价格"
)
@Api
(
tags
=
"后台管理:会员价格"
)
@Slf4j
@Slf4j
@RestController
@RestController
@RequestMapping
(
"
/
admin/member/price"
)
@RequestMapping
(
"admin/member/price"
)
public
class
AdamMemberPriceController
{
public
class
AdamMemberPriceController
{
@Autowired
@Autowired
IAdamMemberPriceService
adamMemberPriceService
;
IAdamMemberPriceService
adamMemberPriceService
;
@ApiOperationSupport
(
order
=
0
)
@ApiOperationSupport
(
order
=
1
)
@ApiOperation
(
value
=
"会员价格列表"
)
@ApiOperation
(
value
=
"会员价格列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"path"
,
required
=
true
,
dataType
=
"String"
,
name
=
"memberId"
,
value
=
"会员卡ID[64]"
),
})
@GetMapping
(
"list/{memberId}"
)
@GetMapping
(
"list/{memberId}"
)
public
ResponseDto
<
Object
>
list
(
@PathVariable
(
name
=
"memberId"
)
String
memberId
)
{
public
ResponseDto
<
Object
>
list
(
@PathVariable
String
memberId
)
{
List
<
AdamMemberPrice
>
list
=
adamMemberPriceService
.
list
(
memberId
);
List
<
AdamMemberPrice
>
list
=
adamMemberPriceService
.
list
(
memberId
);
List
<
AdamMemberPriceVo
>
adamMemberPriceVos
=
new
ArrayList
<>();
List
<
AdamMemberPriceVo
>
adamMemberPriceVos
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
...
@@ -44,7 +49,7 @@ public class AdamMemberPriceController {
...
@@ -44,7 +49,7 @@ public class AdamMemberPriceController {
return
ResponseDto
.
success
(
adamMemberPriceVos
);
return
ResponseDto
.
success
(
adamMemberPriceVos
);
}
}
@ApiOperationSupport
(
order
=
1
)
@ApiOperationSupport
(
order
=
2
)
@ApiOperation
(
value
=
"会员价格详情"
)
@ApiOperation
(
value
=
"会员价格详情"
)
@GetMapping
(
"info/{memberId}/{memberPriceId}"
)
@GetMapping
(
"info/{memberId}/{memberPriceId}"
)
public
ResponseDto
<
AdamMemberPriceVo
>
query
(
@PathVariable
(
name
=
"memberId"
)
String
memberId
,
@PathVariable
(
name
=
"memberPriceId"
)
String
memberPriceId
){
public
ResponseDto
<
AdamMemberPriceVo
>
query
(
@PathVariable
(
name
=
"memberId"
)
String
memberId
,
@PathVariable
(
name
=
"memberPriceId"
)
String
memberPriceId
){
...
@@ -52,7 +57,7 @@ public class AdamMemberPriceController {
...
@@ -52,7 +57,7 @@ public class AdamMemberPriceController {
return
ResponseDto
.
success
(
adamMemberPrice
);
return
ResponseDto
.
success
(
adamMemberPrice
);
}
}
@ApiOperationSupport
(
order
=
2
)
@ApiOperationSupport
(
order
=
3
)
@ApiOperation
(
value
=
"添加会员价格"
)
@ApiOperation
(
value
=
"添加会员价格"
)
@PostMapping
(
"add"
)
@PostMapping
(
"add"
)
public
ResponseDto
<
Object
>
add
(
@RequestBody
AdamMemberPriceParam
param
)
{
public
ResponseDto
<
Object
>
add
(
@RequestBody
AdamMemberPriceParam
param
)
{
...
@@ -62,7 +67,7 @@ public class AdamMemberPriceController {
...
@@ -62,7 +67,7 @@ public class AdamMemberPriceController {
return
ResponseDto
.
success
();
return
ResponseDto
.
success
();
}
}
@ApiOperationSupport
(
order
=
3
)
@ApiOperationSupport
(
order
=
4
)
@ApiOperation
(
value
=
"编辑会员价格"
)
@ApiOperation
(
value
=
"编辑会员价格"
)
@PostMapping
(
"edit"
)
@PostMapping
(
"edit"
)
public
ResponseDto
<
Object
>
edit
(
@RequestBody
AdamMemberPriceParam
param
)
{
public
ResponseDto
<
Object
>
edit
(
@RequestBody
AdamMemberPriceParam
param
)
{
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/admin/AdamMemberPriceServiceImpl.java
View file @
868e95cf
...
@@ -25,6 +25,8 @@ import org.springframework.data.mongodb.core.convert.MongoConverter;
...
@@ -25,6 +25,8 @@ import org.springframework.data.mongodb.core.convert.MongoConverter;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -54,17 +56,16 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
...
@@ -54,17 +56,16 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
}
}
@Override
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
rollbackFor
=
Exception
.
class
)
public
void
add
(
AdamMemberPrice
info
)
{
public
void
add
(
AdamMemberPrice
info
)
{
// mysql
// mysql
info
.
setMemberPriceId
(
IDGenerator
.
nextSnowId
().
toString
());
info
.
setMemberPriceId
(
IDGenerator
.
nextSnowId
().
toString
());
info
.
setCreatedAt
(
LocalDateTime
.
now
());
info
.
setCreatedAt
(
LocalDateTime
.
now
());
info
.
setUpdatedAt
(
LocalDateTime
.
now
());
adamMemberPriceMapper
.
insert
(
info
);
adamMemberPriceMapper
.
insert
(
info
);
// mongo
// mongo
AdamMemberPriceVo
vo
=
new
AdamMemberPriceVo
();
AdamMemberPriceVo
vo
=
new
AdamMemberPriceVo
();
BeanUtils
.
copyProperties
(
info
,
vo
);
BeanUtils
.
copyProperties
(
info
,
vo
);
vo
.
setCreatedAt
(
DateUtil
.
format
(
info
.
getCreatedAt
(),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
vo
.
setCreatedAt
(
DateUtil
.
format
(
info
.
getCreatedAt
(),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
vo
.
setUpdatedAt
(
DateUtil
.
format
(
info
.
getUpdatedAt
(),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
mongoTemplate
.
insert
(
vo
,
AdamMemberPriceVo
.
class
.
getSimpleName
());
mongoTemplate
.
insert
(
vo
,
AdamMemberPriceVo
.
class
.
getSimpleName
());
// redis
// redis
...
@@ -76,11 +77,14 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
...
@@ -76,11 +77,14 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
AdamMemberPriceVo
priceVo
=
(
AdamMemberPriceVo
)
redisUtil
.
hget
(
AdamRedisConst
.
INFO_MEMBERS_PRICE_INFO
.
concat
(
memberId
),
memberPriceId
);
AdamMemberPriceVo
priceVo
=
(
AdamMemberPriceVo
)
redisUtil
.
hget
(
AdamRedisConst
.
INFO_MEMBERS_PRICE_INFO
.
concat
(
memberId
),
memberPriceId
);
if
(
null
==
priceVo
)
{
if
(
null
==
priceVo
)
{
priceVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"memberPriceId"
).
is
(
memberPriceId
)),
AdamMemberPriceVo
.
class
,
AdamMemberPriceVo
.
class
.
getSimpleName
());
priceVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"memberPriceId"
).
is
(
memberPriceId
)),
AdamMemberPriceVo
.
class
,
AdamMemberPriceVo
.
class
.
getSimpleName
());
if
(
null
!=
priceVo
)
redisUtil
.
hset
(
AdamRedisConst
.
INFO_MEMBERS_PRICE_INFO
.
concat
(
memberId
),
memberPriceId
,
priceVo
);
}
}
return
priceVo
;
return
priceVo
;
}
}
@Override
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
rollbackFor
=
Exception
.
class
)
public
boolean
edit
(
AdamMemberPrice
info
)
{
public
boolean
edit
(
AdamMemberPrice
info
)
{
try
{
try
{
String
memberPriceId
=
info
.
getMemberPriceId
();
String
memberPriceId
=
info
.
getMemberPriceId
();
...
...
liquidnet-bus-support/liquidnet-support-zuul/src/main/java/com/liquidnet/support/zuul/filter/GlobalAuthFilter.java
View file @
868e95cf
...
@@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@Slf4j
@Component
@Component
...
@@ -32,6 +33,7 @@ public class GlobalAuthFilter extends ZuulFilter {
...
@@ -32,6 +33,7 @@ public class GlobalAuthFilter extends ZuulFilter {
private
List
<
String
>
excludeUrlPattern
;
private
List
<
String
>
excludeUrlPattern
;
private
static
final
String
CONTENT_TYPE
=
"application/json;charset=utf-8"
;
private
static
final
String
CONTENT_TYPE
=
"application/json;charset=utf-8"
;
private
static
final
String
AUTHORIZATION
=
"authorization"
;
private
static
final
String
AUTHORIZATION
=
"authorization"
;
private
static
final
String
TOKEN_STATUS
=
"token_status"
;
private
static
final
String
TOKEN_ILLEGAL
=
"40001"
;
private
static
final
String
TOKEN_ILLEGAL
=
"40001"
;
private
static
final
String
TOKEN_KICK
=
"40002"
;
private
static
final
String
TOKEN_KICK
=
"40002"
;
private
static
final
String
TOKEN_INVALID
=
"40003"
;
private
static
final
String
TOKEN_INVALID
=
"40003"
;
...
@@ -54,7 +56,28 @@ public class GlobalAuthFilter extends ZuulFilter {
...
@@ -54,7 +56,28 @@ public class GlobalAuthFilter extends ZuulFilter {
@Override
@Override
public
boolean
shouldFilter
()
{
public
boolean
shouldFilter
()
{
RequestContext
ctx
=
RequestContext
.
getCurrentContext
();
RequestContext
ctx
=
RequestContext
.
getCurrentContext
();
String
requestURI
=
ctx
.
getRequest
().
getRequestURI
();
HttpServletRequest
ctxRequest
=
ctx
.
getRequest
();
String
authorization
=
ctxRequest
.
getHeader
(
AUTHORIZATION
);
if
(
StringUtils
.
isNotBlank
(
authorization
)
&&
StringUtils
.
length
(
authorization
)
>
7
)
{
String
token
=
authorization
.
substring
(
7
);
try
{
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims
claims
=
jwtValidator
.
parse
(
token
);
ctx
.
addZuulRequestHeader
(
CurrentUtil
.
uID
,
(
String
)
claims
.
get
(
CurrentUtil
.
uID
));
ctx
.
addZuulRequestHeader
(
CurrentUtil
.
uTag
,
JsonUtils
.
toJson
(
claims
));
}
catch
(
ExpiredJwtException
expiredJwtEx
)
{
ctx
.
addZuulRequestHeader
(
TOKEN_STATUS
,
TOKEN_INVALID
);
}
catch
(
Exception
ex
)
{
ctx
.
addZuulRequestHeader
(
TOKEN_STATUS
,
TOKEN_ILLEGAL
);
}
ctx
.
addZuulRequestHeader
(
CurrentUtil
.
uToken
,
token
);
}
String
requestURI
=
ctxRequest
.
getRequestURI
();
if
(
excludeUrl
.
contains
(
requestURI
))
{
if
(
excludeUrl
.
contains
(
requestURI
))
{
return
false
;
return
false
;
...
@@ -67,50 +90,39 @@ public class GlobalAuthFilter extends ZuulFilter {
...
@@ -67,50 +90,39 @@ public class GlobalAuthFilter extends ZuulFilter {
@Override
@Override
public
Object
run
()
{
public
Object
run
()
{
RequestContext
requestContext
=
RequestContext
.
getCurrentContext
();
RequestContext
ctx
=
RequestContext
.
getCurrentContext
();
HttpServletRequest
httpServletRequest
=
requestContext
.
getRequest
();
String
authorization
=
httpServletRequest
.
getHeader
(
AUTHORIZATION
);
try
{
log
.
info
(
"headers:{}"
,
JsonUtils
.
toJson
(
httpServletRequest
.
getHeaderNames
()));
log
.
info
(
"authorization:{}"
,
authorization
);
if
(
StringUtils
.
isBlank
(
authorization
))
{
respHandler
(
requestContext
,
TOKEN_ILLEGAL
);
Map
<
String
,
String
>
zuulRequestHeaders
=
ctx
.
getZuulRequestHeaders
();
}
else
{
String
token
=
authorization
.
substring
(
7
);
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
String
uToken
=
zuulRequestHeaders
.
get
(
CurrentUtil
.
uToken
);
Claims
claims
=
jwtValidator
.
parse
(
token
);
String
uid
=
(
String
)
claims
.
get
(
"uid"
);
log
.
info
(
"headers:{}"
,
JsonUtils
.
toJson
(
ctx
.
getRequest
().
getHeaderNames
()));
log
.
info
(
"uToken:{}"
,
uToken
);
String
ssoKey
=
jwtValidator
.
getSsoRedisKey
().
concat
(
uid
).
concat
(
DigestUtils
.
md5DigestAsHex
(
token
.
getBytes
(
StandardCharsets
.
UTF_8
)));
if
(
StringUtils
.
isEmpty
(
uToken
))
{
respHandler
(
ctx
,
TOKEN_ILLEGAL
);
}
else
{
String
uid
=
zuulRequestHeaders
.
get
(
CurrentUtil
.
uID
);
if
(
redisUtil
.
hasKey
(
ssoKey
))
{
if
(
StringUtils
.
isEmpty
(
uid
))
{
if
((
boolean
)
redisUtil
.
get
(
ssoKey
))
{
respHandler
(
ctx
,
zuulRequestHeaders
.
get
(
TOKEN_STATUS
));
requestContext
.
setSendZuulResponse
(
true
);
}
else
{
String
ssoKey
=
jwtValidator
.
getSsoRedisKey
().
concat
(
uid
)
.
concat
(
DigestUtils
.
md5DigestAsHex
(
uToken
.
getBytes
(
StandardCharsets
.
UTF_8
)));
// requestContext.addZuulRequestHeader("uid", claims.get("uid").toString());
if
(
redisUtil
.
hasKey
(
ssoKey
))
{
// 是否存在SSO
requestContext
.
addZuulRequestHeader
(
CurrentUtil
.
uTag
,
JsonUtils
.
toJson
(
claims
));
if
((
boolean
)
redisUtil
.
get
(
ssoKey
))
{
// 是否在线
requestContext
.
addZuulRequestHeader
(
CurrentUtil
.
uToken
,
token
);
ctx
.
setSendZuulResponse
(
true
);
}
else
{
}
else
{
respHandler
(
requestContext
,
TOKEN_INVALID
);
respHandler
(
ctx
,
TOKEN_INVALID
);
}
}
}
else
{
}
else
{
respHandler
(
requestContext
,
TOKEN_KICK
);
respHandler
(
ctx
,
TOKEN_KICK
);
}
}
}
}
}
catch
(
ExpiredJwtException
expiredJwtEx
)
{
log
.
error
(
"TOKEN已过期:{}"
,
authorization
);
respHandler
(
requestContext
,
TOKEN_INVALID
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"TOKEN验证失败:{}"
,
authorization
);
respHandler
(
requestContext
,
TOKEN_ILLEGAL
);
}
}
return
null
;
return
null
;
}
}
...
...
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