Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
V
volunteer_service
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
licc
volunteer_service
Commits
621b7817
Commit
621b7817
authored
Apr 09, 2021
by
cy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改shiro管理,添加vip用户
parent
227b8f9c
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
228 additions
and
75 deletions
+228
-75
UsersMapper.xml
wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml
+7
-5
User.java
...ergy-model/src/main/java/cn/wisenergy/model/app/User.java
+6
-0
StaffAddDto.java
...del/src/main/java/cn/wisenergy/model/dto/StaffAddDto.java
+50
-0
UserDto.java
...y-model/src/main/java/cn/wisenergy/model/dto/UserDto.java
+7
-0
UserInfoDto.java
...del/src/main/java/cn/wisenergy/model/dto/UserInfoDto.java
+7
-0
StaffUserVipService.java
...in/java/cn/wisenergy/service/app/StaffUserVipService.java
+3
-4
SchemeServiceImpl.java
...java/cn/wisenergy/service/app/impl/SchemeServiceImpl.java
+2
-2
StaffUserVipServiceImpl.java
...n/wisenergy/service/app/impl/StaffUserVipServiceImpl.java
+45
-23
StaffUserVipController.java
...ergy/web/admin/controller/app/StaffUserVipController.java
+7
-10
ShiroConfig.java
...c/main/java/cn/wisenergy/web/shir/config/ShiroConfig.java
+3
-1
AuthenticationFilter.java
...va/cn/wisenergy/web/shir/filter/AuthenticationFilter.java
+72
-0
KickoutSessionControlFilter.java
...isenergy/web/shir/filter/KickoutSessionControlFilter.java
+19
-30
No files found.
wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml
View file @
621b7817
...
...
@@ -18,6 +18,7 @@
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"is_vip"
property=
"isVip"
/>
<result
column=
"openid"
property=
"openid"
/>
<result
column=
"vip_mobile"
property=
"vipMobile"
/>
</resultMap>
<sql
id=
"table"
>
...
...
@@ -30,12 +31,12 @@
</sql>
<sql
id=
"cols_exclude_id"
>
user_name,password, phone,uuid,head_image,sex,school, exam_type,source,is_delete,create_time,update_time,is_vip,openid
user_name,password, phone,uuid,head_image,sex,school, exam_type,source,is_delete,create_time,update_time,is_vip,openid
,vip_mobile
</sql>
<sql
id=
"vals"
>
#{userName},#{password},#{phone},#{uuid},#{headImage},#{sex},#{school},#{examType}, #{source},
#{isDelete},now(),now(),#{isVip},#{openid}
#{isDelete},now(),now(),#{isVip},#{openid}
,#{vipMobile}
</sql>
<sql
id=
"updateCondition"
>
...
...
@@ -51,7 +52,8 @@
<if
test=
"isDelete != null"
>
is_delete = #{isDelete},
</if>
update_time =now(),
<if
test=
"isVip != null"
>
is_vip = #{isVip},
</if>
<if
test=
"openid != null"
>
openid =#{openid}
</if>
<if
test=
"openid != null"
>
openid =#{openid},
</if>
<if
test=
"vipMobile != null"
>
vip_mobile =#{vipMobile}
</if>
</sql>
<sql
id=
"criteria"
>
...
...
@@ -119,7 +121,7 @@
from
<include
refid=
"table"
/>
<where>
is_delete=0
is_delete=0
and is_vip = 2
<if
test=
"startTime != null"
>
and create_time
...
...
@@ -143,7 +145,7 @@
FROM
<include
refid=
"table"
/>
<where>
is_delete=0
is_delete=0 and is_vip = 2
<if
test=
"startTime != null"
>
and create_time
...
...
wisenergy-model/src/main/java/cn/wisenergy/model/app/User.java
View file @
621b7817
...
...
@@ -108,4 +108,10 @@ public class User implements Serializable {
@ApiModelProperty
(
name
=
"微信用户openid"
,
value
=
"openid"
)
private
String
openid
;
/**
* vip电话号码
*/
@ApiModelProperty
(
name
=
"vipMobile"
,
value
=
"vip电话号码"
)
private
String
vipMobile
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/StaffAddDto.java
0 → 100644
View file @
621b7817
package
cn
.
wisenergy
.
model
.
dto
;
import
cn.wisenergy.model.app.ScoreInfo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
"StaffAddDto"
)
public
class
StaffAddDto
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户名称
*/
@ApiModelProperty
(
value
=
"用户名称"
,
name
=
"userName"
)
private
String
userName
;
/**
* 性别
*/
@ApiModelProperty
(
value
=
"性别"
,
name
=
"sex"
)
private
Integer
sex
;
/**
* 学校
*/
@ApiModelProperty
(
value
=
"学校"
,
name
=
"school"
)
private
String
school
;
/**
* 考生类型 1:文化课考生 2:美术生 3:体育生 4:文学编导考生
*/
@ApiModelProperty
(
value
=
"考生类型 1:文化课考生 2:美术生 3:体育生 4:文学编导考生"
,
name
=
"studentType"
)
private
Integer
studentType
;
/**
* 学生成绩信息
*/
@ApiModelProperty
(
value
=
"学生成绩信息"
,
name
=
"scoreInfo"
)
private
ScoreInfo
scoreInfo
;
/**
* vip客户电话
*/
@ApiModelProperty
(
value
=
"vip客户电话"
,
name
=
"VipMobile"
)
private
String
VipMobile
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/UserDto.java
View file @
621b7817
...
...
@@ -71,6 +71,13 @@ public class UserDto implements Serializable {
@ExcelProperty
(
value
=
"手机号"
)
private
String
phone
;
/**
* vip手机号
*/
@ApiModelProperty
(
value
=
"vip手机号"
,
name
=
"vipMobile"
)
@ExcelProperty
(
value
=
"vip手机号"
)
private
String
vipMobile
;
/**
* 学校
*/
...
...
wisenergy-model/src/main/java/cn/wisenergy/model/dto/UserInfoDto.java
View file @
621b7817
...
...
@@ -69,6 +69,13 @@ public class UserInfoDto implements Serializable {
@ExcelProperty
(
value
=
"登录来源"
)
private
Integer
source
;
/**
* vip用户手机
*/
@ApiModelProperty
(
value
=
"vip用户手机"
,
name
=
"vipMobile"
)
@ExcelProperty
(
value
=
"vip用户手机"
)
private
String
vipMobile
;
/**
* 手机
*/
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/app/StaffUserVipService.java
View file @
621b7817
...
...
@@ -2,6 +2,7 @@ package cn.wisenergy.service.app;
import
cn.wisenergy.common.utils.R
;
import
cn.wisenergy.model.app.Local
;
import
cn.wisenergy.model.dto.StaffAddDto
;
import
cn.wisenergy.model.dto.UserInfoDto
;
import
cn.wisenergy.model.vo.*
;
import
com.github.pagehelper.PageInfo
;
...
...
@@ -28,12 +29,10 @@ public interface StaffUserVipService {
/**
* 添加员工和vip客户关系
* @param staffId 员工id
* @param phone 手机号
* 添vip客户
* @return true:成功 false:失败
*/
R
<
Boolean
>
add
UserByPhone
(
Integer
staffId
,
String
phone
);
R
<
Boolean
>
add
VipUser
(
StaffAddDto
staffAddDto
);
/**
* 获取地区列表
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/SchemeServiceImpl.java
View file @
621b7817
...
...
@@ -248,9 +248,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
SetQueryTime
(
result
);
volunteerVo
.
setVolunteers
(
result
);
List
<
Volunteer
>
volunteers
=
volunteerVo
.
getVolunteers
();
//
除本科文化以外,其余
最低位次用--代替
//
为空的
最低位次用--代替
for
(
Volunteer
info
:
volunteers
)
{
if
(
info
.
getType
()!=
SchemeTypeEnums
.
UNDERGRADUATE_CULTURE
.
getCode
())
{
if
(
null
==
info
.
getLowestRank
())
{
info
.
setLowestRank
(
"--"
);
}
}
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/StaffUserVipServiceImpl.java
View file @
621b7817
...
...
@@ -5,6 +5,7 @@ import cn.wisenergy.common.utils.R;
import
cn.wisenergy.common.utils.StringUtil
;
import
cn.wisenergy.mapper.*
;
import
cn.wisenergy.model.app.*
;
import
cn.wisenergy.model.dto.StaffAddDto
;
import
cn.wisenergy.model.dto.UserCommitDto
;
import
cn.wisenergy.model.dto.UserDto
;
import
cn.wisenergy.model.dto.UserInfoDto
;
...
...
@@ -69,7 +70,7 @@ public class StaffUserVipServiceImpl extends ServiceImpl<LocalMapper, Local> imp
@Autowired
private
LocalMapper
localMapper
;
private
static
final
int
ERROR_CODE
=
1
;
//初始密码
private
static
final
String
PASSWORD
=
"123456"
;
...
...
@@ -102,7 +103,7 @@ public class StaffUserVipServiceImpl extends ServiceImpl<LocalMapper, Local> imp
Subject
subject
=
SecurityUtils
.
getSubject
();
String
credentialsSalt
=
Md5Util
.
digestMD5
(
loginVo
.
getPassword
()
);
UserToken
userToken
=
new
UserToken
(
loginVo
.
getLoginName
(),
credentialsSalt
,
STAFF_LOGIN_TYPE
);
//UsernamePasswordToken token = new UsernamePasswordToken(loginVo.getLoginName(), credentialsSalt,"staff");
try
{
subject
.
login
(
userToken
);
QueryWrapper
<
Staff
>
objectQueryWrapper
=
new
QueryWrapper
<>();
...
...
@@ -231,11 +232,41 @@ public class StaffUserVipServiceImpl extends ServiceImpl<LocalMapper, Local> imp
return
R
.
ok
(
info
);
}
@Transactional
@Override
public
R
<
Boolean
>
addUserByPhone
(
Integer
staffId
,
String
phone
)
{
log
.
info
(
"StaffUserVipServiceImpl[].addUserByPhone[].input.param:"
+
staffId
,
phone
);
return
addPhone
(
staffId
,
phone
);
public
R
<
Boolean
>
addVipUser
(
StaffAddDto
staffAddDto
)
{
log
.
info
(
"StaffUserVipServiceImpl[].addUserByPhone[].input.param:"
+
staffAddDto
);
if
(
null
==
staffAddDto
){
return
R
.
error
(
"入参为空"
);
}
if
(!
getUserInfo
(
staffAddDto
.
getVipMobile
())){
return
R
.
error
(
"该电话已存在"
);
}
User
user
=
new
User
();
user
.
setIsVip
(
1
);
user
.
setSchool
(
staffAddDto
.
getSchool
());
user
.
setSex
(
staffAddDto
.
getSex
());
user
.
setExamType
(
staffAddDto
.
getStudentType
());
user
.
setIsDelete
(
0
);
user
.
setCreateTime
(
new
Date
());
user
.
setUpdateTime
(
new
Date
());
user
.
setUserName
(
staffAddDto
.
getUserName
());
user
.
setVipMobile
(
staffAddDto
.
getVipMobile
());
usersMapper
.
insert
(
user
);
R
<
Boolean
>
checkScore
=
volunteerManager
.
checkScore
(
staffAddDto
.
getScoreInfo
());
if
(
null
!=
checkScore
&&
checkScore
.
getCode
()
==
ERROR_CODE
)
{
return
R
.
error
(
checkScore
.
getMessage
());
}
ScoreInfo
scoreInfo
=
staffAddDto
.
getScoreInfo
();
scoreInfo
.
setCreateTime
(
new
Date
());
scoreInfo
.
setUserId
(
user
.
getId
());
scoreInfo
.
setUpdateTime
(
new
Date
());
int
insert
=
scoreInfoMapper
.
insert
(
scoreInfo
);
if
(
insert
>
0
){
return
R
.
ok
(
0
,
true
);
}
return
R
.
error
(
"添加失败"
);
}
@Override
...
...
@@ -245,7 +276,6 @@ public class StaffUserVipServiceImpl extends ServiceImpl<LocalMapper, Local> imp
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
R
.
error
(
"入参为空"
);
}
return
R
.
ok
(
0
,
list
);
}
...
...
@@ -275,23 +305,15 @@ public class StaffUserVipServiceImpl extends ServiceImpl<LocalMapper, Local> imp
}
private
R
<
Boolean
>
addPhone
(
Integer
staffId
,
String
phone
){
if
(
null
==
staffId
||
StringUtils
.
isBlank
(
phone
))
{
return
R
.
error
(
"入参为空"
);
}
//进行vip客户和员工绑定
User
byPhone
=
userVipManager
.
checkPhone
(
phone
);
if
(
null
==
byPhone
)
{
return
R
.
error
(
"信息添加失败"
);
}
R
<
Boolean
>
booleanR
=
userVipManager
.
addPhone1
(
staffId
,
byPhone
);
//判断数据是否添加成功
if
(
booleanR
.
getCode
()!=
0
)
{
return
R
.
error
(
"关系绑定失败"
);
public
boolean
getUserInfo
(
String
vipMobile
){
QueryWrapper
<
User
>
objectQueryWrapper
=
new
QueryWrapper
<>();
objectQueryWrapper
.
eq
(
"vip_mobile"
,
vipMobile
);
User
user
=
usersMapper
.
selectOne
(
objectQueryWrapper
);
if
(
null
==
user
){
return
true
;
}
return
R
.
ok
(
0
,
true
);
return
false
;
}
@Override
...
...
@@ -326,7 +348,7 @@ public class StaffUserVipServiceImpl extends ServiceImpl<LocalMapper, Local> imp
.
registerTime
(
t
.
getRegisterTime
())
.
source
(
t
.
getSource
()==
1
?
"PC"
:
"APP"
)
.
userName
(
t
.
getUserName
())
.
phone
(
t
.
getPhon
e
())
.
vipMobile
(
t
.
getVipMobil
e
())
.
lastLoginTime
(
t
.
getLastLoginTime
())
.
school
(
t
.
getSchool
())
.
examType
(
t
.
getExamType
()==
1
?
"文化生"
:
t
.
getExamType
()==
2
?
"美术生"
:
t
.
getExamType
()==
3
?
"体育生"
:
"文学编导考生"
)
...
...
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/StaffUserVipController.java
View file @
621b7817
...
...
@@ -2,6 +2,7 @@ package cn.wisenergy.web.admin.controller.app;
import
cn.wisenergy.common.utils.R
;
import
cn.wisenergy.model.app.Local
;
import
cn.wisenergy.model.dto.StaffAddDto
;
import
cn.wisenergy.model.dto.UserInfoDto
;
import
cn.wisenergy.model.vo.*
;
import
cn.wisenergy.service.app.SchemeService
;
...
...
@@ -35,17 +36,13 @@ public class StaffUserVipController {
return
staffUserVipService
.
staffLogin
(
loginVo
);
}
@ApiOperation
(
value
=
"添加Vip客户(当客户已存在时)"
,
notes
=
"添加Vip客户(当客户已存在时)"
,
httpMethod
=
"POST"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"staffId"
,
value
=
"员工id"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
"phone"
,
value
=
"vip客户手机号"
,
dataType
=
"string"
)
}
)
@PostMapping
(
"/add2"
)
public
R
<
Boolean
>
addUserVipByPhone
(
Integer
staffId
,
String
phone
){
log
.
info
(
"StaffUserVipController[].addUserVipByPhone[].input.param:"
+
staffId
,
phone
);
@ApiOperation
(
value
=
"添加Vip客户"
,
notes
=
"添加Vip客户"
,
httpMethod
=
"POST"
)
@ApiModelProperty
(
name
=
"staffAddDto"
,
value
=
"登录信息"
,
dataType
=
"StaffAddDto"
)
@PostMapping
(
"/addVipUser"
)
public
R
<
Boolean
>
addVipUser
(
@RequestBody
StaffAddDto
staffAddDto
){
log
.
info
(
"StaffUserVipController[].addUserVipByPhone[].input.param:"
+
staffAddDto
);
return
staffUserVipService
.
add
UserByPhone
(
staffId
,
phone
);
return
staffUserVipService
.
add
VipUser
(
staffAddDto
);
}
@ApiOperation
(
value
=
"查询Vip客户(查询所有vip客户就不用传staffId)"
,
notes
=
"查询Vip客户(查询所有vip客户就不用传staffId)"
,
httpMethod
=
"POST"
)
...
...
wisenergy-web-admin/src/main/java/cn/wisenergy/web/shir/config/ShiroConfig.java
View file @
621b7817
package
cn
.
wisenergy
.
web
.
shir
.
config
;
import
cn.wisenergy.web.shir.cache.MySessionManager
;
import
cn.wisenergy.web.shir.filter.AuthenticationFilter
;
import
cn.wisenergy.web.shir.filter.KickoutSessionControlFilter
;
import
cn.wisenergy.web.shir.realm.AdminRealm
;
import
cn.wisenergy.web.shir.realm.CodeRealm
;
...
...
@@ -67,13 +68,14 @@ public class ShiroConfig {
//自定义拦截器
Map
<
String
,
Filter
>
filtersMap
=
new
LinkedHashMap
<>();
filtersMap
.
put
(
"authc"
,
new
AuthenticationFilter
());
filtersMap
.
put
(
"kickout"
,
kickoutSessionControlFilter
());
shiroFilterFactoryBean
.
setFilters
(
filtersMap
);
filterChainDefinitionMap
.
put
(
"/authInformation/save"
,
"anon"
);
//存储设备IMEI号和手机SIM卡ID号
filterChainDefinitionMap
.
put
(
"/user/login/*"
,
"anon"
);
// 登录页面-身份认证
filterChainDefinitionMap
.
put
(
"/account/login"
,
"anon"
);
// 登录页面-身份认证
filterChainDefinitionMap
.
put
(
"/staff
/staffUser
"
,
"anon"
);
// 登录页面-身份认证
filterChainDefinitionMap
.
put
(
"/staff
User/login
"
,
"anon"
);
// 登录页面-身份认证
filterChainDefinitionMap
.
put
(
"/swagger-ui.html"
,
"anon"
);
// swagger接口-匿名访问
filterChainDefinitionMap
.
put
(
"/swagger/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/anon/**"
,
"anon"
);
...
...
wisenergy-web-admin/src/main/java/cn/wisenergy/web/shir/filter/AuthenticationFilter.java
0 → 100644
View file @
621b7817
package
cn
.
wisenergy
.
web
.
shir
.
filter
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.shiro.web.filter.authc.FormAuthenticationFilter
;
import
org.springframework.http.HttpStatus
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* 跨域配置拦截器,继承FormAuthenticationFilter
*/
public
class
AuthenticationFilter
extends
FormAuthenticationFilter
{
@Override
protected
boolean
onAccessDenied
(
ServletRequest
request
,
ServletResponse
response
)
throws
Exception
{
// 错误异常提示
HttpServletResponse
httpResponse
=
(
HttpServletResponse
)
response
;
HttpServletRequest
httpRequest
=
(
HttpServletRequest
)
request
;
String
sessionId
=
((
HttpServletRequest
)
request
).
getHeader
(
"sessionId"
);
if
(
sessionId
==
null
)
{
setHeader
(
httpRequest
,
httpResponse
);
httpResponse
.
setCharacterEncoding
(
"UTF-8"
);
httpResponse
.
setContentType
(
"application/json"
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"status"
,
"1001"
);
map
.
put
(
"message"
,
"登录已超时,请重新登录!"
);
httpResponse
.
getWriter
().
write
(
JSONObject
.
toJSONString
(
map
));
return
false
;
}
else
{
return
true
;
}
}
/**
* 为response设置header,实现跨域
*/
private
void
setHeader
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
//跨域的header设置
response
.
setHeader
(
"Access-control-Allow-Origin"
,
request
.
getHeader
(
"Origin"
));
response
.
setHeader
(
"Access-Control-Allow-Methods"
,
request
.
getMethod
());
response
.
setHeader
(
"Access-Control-Allow-Credentials"
,
"true"
);
response
.
setHeader
(
"Access-Control-Allow-Headers"
,
request
.
getHeader
(
"Access-Control-Request-Headers"
));
//防止乱码,适用于传输JSON数据
//Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild
response
.
setHeader
(
"Content-Type"
,
"application/json;charset=UTF-8"
);
response
.
setStatus
(
HttpStatus
.
OK
.
value
());
}
@Override
protected
boolean
isAccessAllowed
(
ServletRequest
request
,
ServletResponse
response
,
Object
mappedValue
)
{
if
(
request
instanceof
HttpServletRequest
)
{
if
(((
HttpServletRequest
)
request
).
getMethod
().
toUpperCase
().
equals
(
"OPTIONS"
))
{
return
true
;
}
}
//小程序放行
if
(
isFilter
((
HttpServletRequest
)
request
)){
return
true
;
}
return
super
.
isAccessAllowed
(
request
,
response
,
mappedValue
);
}
//判断请求头中是否带有identity(标识是小程序)
public
boolean
isFilter
(
HttpServletRequest
request
)
{
return
null
!=
request
.
getHeader
(
"identity"
)
&&
request
.
getHeader
(
"identity"
).
equals
(
"miniprogram"
);
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/shir/filter/KickoutSessionControlFilter.java
View file @
621b7817
...
...
@@ -76,14 +76,19 @@ public class KickoutSessionControlFilter extends AccessControlFilter {
return
true
;
}
Session
session
=
subject
.
getSession
();
//设置session超时时长,30分钟(1800000毫秒)
//session.setTimeout(1800000);
//5分钟
session
.
setTimeout
(
300000
);
Serializable
sessionId
=
null
;
String
username
=
null
;
Deque
<
Serializable
>
deque
=
null
;
try
{
//客户端
User
user
=
(
User
)
SecurityUtils
.
getSubject
().
getPrincipal
();
username
=
user
.
getPhone
();
username
=
user
.
getPhone
();
sessionId
=
session
.
getId
();
//读取缓存,没有就存入
deque
=
cache
.
get
(
username
);
...
...
@@ -96,31 +101,16 @@ public class KickoutSessionControlFilter extends AccessControlFilter {
//读取缓存,没有就存入
deque
=
cache
.
get
(
username
);
}
catch
(
Exception
en
)
{
try
{
//员工端
Staff
staff
=
(
Staff
)
SecurityUtils
.
getSubject
().
getPrincipal
();
username
=
staff
.
getLoginName
();
sessionId
=
session
.
getId
();
//读取缓存,没有就存入
deque
=
cache
.
get
(
username
);
}
catch
(
Exception
es
)
{
map
.
put
(
"status"
,
"1001"
);
map
.
put
(
"message"
,
"登录已超时,请重新登录!"
);
out
(
response
,
map
);
//退出登录
subject
.
logout
();
return
false
;
}
//员工端
Staff
staff
=
(
Staff
)
SecurityUtils
.
getSubject
().
getPrincipal
();
username
=
staff
.
getLoginName
();
sessionId
=
session
.
getId
();
//读取缓存,没有就存入
deque
=
cache
.
get
(
username
);
}
}
//30分钟(1800000毫秒)
//session.setTimeout(1800000);
//5分钟
session
.
setTimeout
(
300000
);
//如果此用户没有session队列,也就是还没有登录过,缓存中没有
//就new一个空队列,不然deque对象为空,会报空指针
//如果此用户没有session队列,也就是还没有登录过,缓存中没有,就new一个空队列,不然deque对象为空,会报空指针
if
(
deque
==
null
)
{
deque
=
new
LinkedList
<>();
}
...
...
@@ -169,15 +159,14 @@ public class KickoutSessionControlFilter extends AccessControlFilter {
out
(
response
,
map
);
return
false
;
}
return
true
;
return
true
;
}
private
void
out
(
ServletResponse
hresponse
,
Map
<
String
,
Object
>
map
)
throws
IOException
{
hresponse
.
setContentType
(
"text/json"
);
private
void
out
(
ServletResponse
response
,
Map
<
String
,
Object
>
map
)
throws
IOException
{
response
.
setContentType
(
"text/json"
);
//设置字符集为'UTF-8'
h
response
.
setCharacterEncoding
(
"UTF-8"
);
PrintWriter
out
=
h
response
.
getWriter
();
response
.
setCharacterEncoding
(
"UTF-8"
);
PrintWriter
out
=
response
.
getWriter
();
out
.
write
(
JSON
.
toJSONString
(
map
,
SerializerFeature
.
WriteMapNullValue
));
out
.
flush
();
out
.
close
();
...
...
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