Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
school-paper-admin
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
school-paper
school-paper-admin
Commits
d70135ec
Commit
d70135ec
authored
Jul 31, 2023
by
zhengyunfei
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
89cbb2e3
187f16c0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
6 deletions
+41
-6
ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
+36
-1
school-paper/src/main/resources/mapper/school-paper/DbQuestionBankMapper.xml
+5
-5
No files found.
ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
View file @
d70135ec
...
@@ -75,7 +75,7 @@ public class SysLoginService {
...
@@ -75,7 +75,7 @@ public class SysLoginService {
validateCaptcha
(
username
,
code
,
uuid
,
request
);
validateCaptcha
(
username
,
code
,
uuid
,
request
);
}
}
SysUser
user
=
loadUserByUsername
(
username
);
SysUser
user
=
loadUserByUsername
(
username
);
checkLogin
(
LoginType
.
PASSWORD
,
username
,
()
->
!
BCrypt
.
checkpw
(
password
,
user
.
getPassword
()));
checkLogin
New
(
LoginType
.
PASSWORD
,
username
,
()
->
!
BCrypt
.
checkpw
(
password
,
user
.
getPassword
()));
// 此处可根据登录用户的数据不同 自行创建 loginUser
// 此处可根据登录用户的数据不同 自行创建 loginUser
LoginUser
loginUser
=
buildLoginUser
(
user
);
LoginUser
loginUser
=
buildLoginUser
(
user
);
// 生成token
// 生成token
...
@@ -292,4 +292,39 @@ public class SysLoginService {
...
@@ -292,4 +292,39 @@ public class SysLoginService {
// 登录成功 清空错误次数
// 登录成功 清空错误次数
RedisUtils
.
deleteObject
(
errorKey
);
RedisUtils
.
deleteObject
(
errorKey
);
}
}
/**
* 登录校验
*/
private
void
checkLoginNew
(
LoginType
loginType
,
String
username
,
Supplier
<
Boolean
>
supplier
)
{
String
errorKey
=
CacheConstants
.
PWD_ERR_CNT_KEY
+
username
;
String
loginFail
=
Constants
.
LOGIN_FAIL
;
// 获取用户登录错误次数(可自定义限制策略 例如: key + username + ip)
Integer
errorNumber
=
RedisUtils
.
getCacheObject
(
errorKey
);
// 锁定时间内登录 则踢出
if
(
ObjectUtil
.
isNotNull
(
errorNumber
)
&&
errorNumber
.
equals
(
maxRetryCount
))
{
recordLogininfor
(
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
));
throw
new
ServiceException
(
"账号密码错误"
+
maxRetryCount
+
"次"
);
}
if
(
supplier
.
get
())
{
// 是否第一次
errorNumber
=
ObjectUtil
.
isNull
(
errorNumber
)
?
1
:
errorNumber
+
1
;
// 达到规定错误次数 则锁定登录
if
(
errorNumber
.
equals
(
maxRetryCount
))
{
RedisUtils
.
setCacheObject
(
errorKey
,
errorNumber
,
Duration
.
ofMinutes
(
lockTime
));
recordLogininfor
(
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
));
throw
new
ServiceException
(
"账号密码错误"
+
maxRetryCount
+
"次"
);
}
else
{
// 未达到规定错误次数 则递增
RedisUtils
.
setCacheObject
(
errorKey
,
errorNumber
);
recordLogininfor
(
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitCount
(),
errorNumber
));
throw
new
ServiceException
(
"账号密码错误"
+
errorNumber
+
"次"
);
}
}
// 登录成功 清空错误次数
RedisUtils
.
deleteObject
(
errorKey
);
}
}
}
school-paper/src/main/resources/mapper/school-paper/DbQuestionBankMapper.xml
View file @
d70135ec
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
<result
property=
"rightAnswersPic"
column=
"right_answers_pic"
/>
<result
property=
"rightAnswersPic"
column=
"right_answers_pic"
/>
<result
property=
"resolveCourse"
column=
"resolve_course"
/>
<result
property=
"resolveCourse"
column=
"resolve_course"
/>
<result
property=
"resolveVideo"
column=
"resolve_video"
/>
<result
property=
"resolveVideo"
column=
"resolve_video"
/>
<result
property=
"resolveVide
Name"
column=
"resolve_vide
_name"
/>
<result
property=
"resolveVide
oName"
column=
"resolve_video
_name"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"createTime"
column=
"create_time"
/>
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
<result
property=
"rightAnswersPic"
column=
"right_answers_pic"
/>
<result
property=
"rightAnswersPic"
column=
"right_answers_pic"
/>
<result
property=
"resolveCourse"
column=
"resolve_course"
/>
<result
property=
"resolveCourse"
column=
"resolve_course"
/>
<result
property=
"resolveVideo"
column=
"resolve_video"
/>
<result
property=
"resolveVideo"
column=
"resolve_video"
/>
<result
property=
"resolveVideoName"
column=
"resolve_vide_name"
/>
<result
property=
"resolveVideoName"
column=
"resolve_vide
o
_name"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"status"
column=
"status"
/>
<collection
property=
"options"
ofType=
"com.ruoyi.school.paper.domain.vo.DbQuestionBankAnswerVo"
>
<collection
property=
"options"
ofType=
"com.ruoyi.school.paper.domain.vo.DbQuestionBankAnswerVo"
>
...
@@ -62,7 +62,7 @@
...
@@ -62,7 +62,7 @@
bank.right_answers_pic,
bank.right_answers_pic,
bank.resolve_course,
bank.resolve_course,
bank.resolve_video,
bank.resolve_video,
bank.resolve_vide_name,
bank.resolve_vide
o
_name,
bank.remark,
bank.remark,
bank.status,
bank.status,
answer.id as a_id,
answer.id as a_id,
...
@@ -81,7 +81,7 @@
...
@@ -81,7 +81,7 @@
<result
property=
"topic"
column=
"topic"
/>
<result
property=
"topic"
column=
"topic"
/>
<result
property=
"resolveCourse"
column=
"resolve_course"
/>
<result
property=
"resolveCourse"
column=
"resolve_course"
/>
<result
property=
"resolveVideo"
column=
"resolve_video"
/>
<result
property=
"resolveVideo"
column=
"resolve_video"
/>
<result
property=
"resolveVideName"
column=
"resolve_vide_name"
/>
<result
property=
"resolveVideName"
column=
"resolve_vide
o
_name"
/>
<collection
property=
"options"
javaType=
"java.util.List"
resultMap=
"DbQuestionBankAnswerResult"
/>
<collection
property=
"options"
javaType=
"java.util.List"
resultMap=
"DbQuestionBankAnswerResult"
/>
</resultMap>
</resultMap>
<resultMap
type=
"com.ruoyi.school.paper.domain.DbQuestionBankAnswer"
id=
"DbQuestionBankAnswerResult"
>
<resultMap
type=
"com.ruoyi.school.paper.domain.DbQuestionBankAnswer"
id=
"DbQuestionBankAnswerResult"
>
...
@@ -102,7 +102,7 @@
...
@@ -102,7 +102,7 @@
qb.topic as topic,
qb.topic as topic,
qb.resolve_course,
qb.resolve_course,
qb.resolve_video,
qb.resolve_video,
qb.resolve_vide_name,
qb.resolve_vide
o
_name,
dqba.*
dqba.*
from db_question_bank qb
from db_question_bank qb
left join db_question_bank_answer dqba on qb.id = dqba.question_bank_id
left join db_question_bank_answer dqba on qb.id = dqba.question_bank_id
...
...
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