Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
5adc0d93
Commit
5adc0d93
authored
Sep 27, 2023
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
后台管理登录验证码
parent
fb6c07b4
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
29 additions
and
37 deletions
+29
-37
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/AdminAuthController.java
...ava/com/wwdz/ch/admin/controller/AdminAuthController.java
+4
-1
ch-admin-api/src/main/java/com/wwdz/ch/admin/entity/vo/CoinVo.java
...api/src/main/java/com/wwdz/ch/admin/entity/vo/CoinVo.java
+5
-0
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/AdminAuthServiceImpl.java
...ain/java/com/wwdz/ch/admin/impl/AdminAuthServiceImpl.java
+5
-1
ch-core/src/main/java/com/wwdz/ch/core/captcha/CaptchaCodeManager.java
...ain/java/com/wwdz/ch/core/captcha/CaptchaCodeManager.java
+15
-35
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/AdminAuthController.java
View file @
5adc0d93
...
@@ -39,6 +39,9 @@ public class AdminAuthController {
...
@@ -39,6 +39,9 @@ public class AdminAuthController {
@Autowired
@Autowired
private
AdminAuthService
adminAuthService
;
private
AdminAuthService
adminAuthService
;
@Autowired
CaptchaCodeManager
captchaCodeManager
;
/*
/*
* { username : value, password : value }
* { username : value, password : value }
*/
*/
...
@@ -56,7 +59,7 @@ public class AdminAuthController {
...
@@ -56,7 +59,7 @@ public class AdminAuthController {
}
}
//验证码校验
//验证码校验
String
cachedCaptcha
=
C
aptchaCodeManager
.
getCachedCaptcha
(
uuid
);
String
cachedCaptcha
=
c
aptchaCodeManager
.
getCachedCaptcha
(
uuid
);
if
(
cachedCaptcha
==
null
)
{
if
(
cachedCaptcha
==
null
)
{
logger
.
error
(
"系统管理->用户登录 错误:{},"
,
AdminResponseCode
.
AUTH_CAPTCHA_EXPIRED
.
desc
());
logger
.
error
(
"系统管理->用户登录 错误:{},"
,
AdminResponseCode
.
AUTH_CAPTCHA_EXPIRED
.
desc
());
return
AdminResponseUtil
.
fail
(
AdminResponseCode
.
AUTH_CAPTCHA_EXPIRED
);
return
AdminResponseUtil
.
fail
(
AdminResponseCode
.
AUTH_CAPTCHA_EXPIRED
);
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/entity/vo/CoinVo.java
View file @
5adc0d93
...
@@ -118,6 +118,11 @@ public class CoinVo implements Entity {
...
@@ -118,6 +118,11 @@ public class CoinVo implements Entity {
*/
*/
private
String
weight
;
private
String
weight
;
/**
* 原始的资源url
*/
private
String
originalSourceUrl
;
/**
/**
* 对应的分类
* 对应的分类
*
*
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/AdminAuthServiceImpl.java
View file @
5adc0d93
...
@@ -39,6 +39,9 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -39,6 +39,9 @@ public class AdminAuthServiceImpl implements AdminAuthService {
@Autowired
@Autowired
private
ApplicationContext
context
;
private
ApplicationContext
context
;
@Autowired
CaptchaCodeManager
captchaCodeManager
;
@Override
@Override
public
Object
info
()
{
public
Object
info
()
{
...
@@ -72,7 +75,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -72,7 +75,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
String
verifyCode
=
VerifyCodeUtils
.
generateVerifyCode
(
4
);
String
verifyCode
=
VerifyCodeUtils
.
generateVerifyCode
(
4
);
// 唯一标识
// 唯一标识
String
uuid
=
UUID
.
randomUUID
().
toString
(
true
);
String
uuid
=
UUID
.
randomUUID
().
toString
(
true
);
boolean
successful
=
CaptchaCodeManager
.
addToCache
(
uuid
,
verifyCode
,
10
);
//存储内存
//存入redis
boolean
successful
=
captchaCodeManager
.
addToCache
(
uuid
,
verifyCode
);
if
(!
successful
)
{
if
(!
successful
)
{
logger
.
error
(
"请求验证码出错:{}"
,
AdminResponseCode
.
AUTH_CAPTCHA_FREQUENCY
.
desc
());
logger
.
error
(
"请求验证码出错:{}"
,
AdminResponseCode
.
AUTH_CAPTCHA_FREQUENCY
.
desc
());
return
AdminResponseUtil
.
fail
(
AdminResponseCode
.
AUTH_CAPTCHA_FREQUENCY
);
return
AdminResponseUtil
.
fail
(
AdminResponseCode
.
AUTH_CAPTCHA_FREQUENCY
);
...
...
ch-core/src/main/java/com/wwdz/ch/core/captcha/CaptchaCodeManager.java
View file @
5adc0d93
package
com.wwdz.ch.core.captcha
;
package
com.wwdz.ch.core.captcha
;
import
com.wwdz.ch.core.util.RedisUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.*
;
...
@@ -10,12 +13,17 @@ import java.util.Map.Entry;
...
@@ -10,12 +13,17 @@ import java.util.Map.Entry;
/**
/**
* 缓存系统中的验证码
* 缓存系统中的验证码
*/
*/
@Component
public
class
CaptchaCodeManager
{
public
class
CaptchaCodeManager
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CaptchaCodeManager
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CaptchaCodeManager
.
class
);
private
static
final
Integer
DEFAULT_EXPIRE_MINUTES
=
3
;
//验证码默认存储的有效期,单位:分钟
private
static
final
Integer
DEFAULT_EXPIRE_MINUTES
=
3
;
//验证码默认存储的有效期,单位:分钟
private
static
Map
<
String
,
CaptchaItem
>
captchaCodeCache
=
new
HashMap
<>();
private
static
Map
<
String
,
CaptchaItem
>
captchaCodeCache
=
new
HashMap
<>();
@Autowired
RedisUtils
redisUtils
;
/**
/**
* 添加到缓存
* 添加到缓存
*
*
...
@@ -24,30 +32,8 @@ public class CaptchaCodeManager {
...
@@ -24,30 +32,8 @@ public class CaptchaCodeManager {
* @param code
* @param code
* 验证码
* 验证码
*/
*/
public
static
boolean
addToCache
(
String
flagUid
,
String
code
,
Integer
expireTime
)
{
public
boolean
addToCache
(
String
flagUid
,
String
code
)
{
cleanExpireCacheData
();
//清理过期内存数据
redisUtils
.
set
(
flagUid
,
code
,
3
*
60
);
// 已经发过验证码且验证码还未过期
if
(
captchaCodeCache
.
get
(
flagUid
)
!=
null
)
{
if
(
captchaCodeCache
.
get
(
flagUid
).
getExpireTime
().
isAfter
(
LocalDateTime
.
now
()))
{
return
false
;
}
else
{
// 存在但是已过期,删掉
captchaCodeCache
.
remove
(
flagUid
);
}
}
CaptchaItem
captchaItem
=
new
CaptchaItem
();
captchaItem
.
setFlagUid
(
flagUid
);
captchaItem
.
setCode
(
code
);
// 有效期为expireTime分钟
if
(
expireTime
==
null
)
{
expireTime
=
DEFAULT_EXPIRE_MINUTES
;
}
captchaItem
.
setExpireTime
(
LocalDateTime
.
now
().
plusMinutes
(
expireTime
));
captchaCodeCache
.
put
(
flagUid
,
captchaItem
);
return
true
;
return
true
;
}
}
...
@@ -59,24 +45,18 @@ public class CaptchaCodeManager {
...
@@ -59,24 +45,18 @@ public class CaptchaCodeManager {
* 关联的标志码
* 关联的标志码
* @return 验证码
* @return 验证码
*/
*/
public
static
String
getCachedCaptcha
(
String
flagUid
)
{
public
String
getCachedCaptcha
(
String
flagUid
)
{
// 没有标志码记录
// 没有标志码记录
if
(
captchaCodeCache
.
get
(
flagUid
)
==
null
)
if
(!
redisUtils
.
hasKey
(
flagUid
))
{
return
null
;
// 记录但是已经过期
if
(
captchaCodeCache
.
get
(
flagUid
).
getExpireTime
().
isBefore
(
LocalDateTime
.
now
()))
{
return
null
;
return
null
;
}
}
cleanExpireCacheData
();
//清理过期内存数据
return
redisUtils
.
get
(
flagUid
).
toString
();
return
captchaCodeCache
.
get
(
flagUid
).
getCode
();
}
}
/**
/**
* 清理过期验证码
* 清理过期验证码
*/
*/
private
static
void
cleanExpireCacheData
()
{
private
void
cleanExpireCacheData
()
{
Iterator
<
Entry
<
String
,
CaptchaItem
>>
iterator
=
captchaCodeCache
.
entrySet
().
iterator
();
//map.entrySet()得到的是set集合,可以使用迭代器遍历
Iterator
<
Entry
<
String
,
CaptchaItem
>>
iterator
=
captchaCodeCache
.
entrySet
().
iterator
();
//map.entrySet()得到的是set集合,可以使用迭代器遍历
List
<
String
>
keys
=
new
ArrayList
<
String
>();
List
<
String
>
keys
=
new
ArrayList
<
String
>();
while
(
iterator
.
hasNext
()){
while
(
iterator
.
hasNext
()){
...
@@ -93,7 +73,7 @@ public class CaptchaCodeManager {
...
@@ -93,7 +73,7 @@ public class CaptchaCodeManager {
}
}
}
}
public
static
void
removeCacheData
(
String
flagUid
)
{
public
void
removeCacheData
(
String
flagUid
)
{
captchaCodeCache
.
remove
(
flagUid
);
captchaCodeCache
.
remove
(
flagUid
);
}
}
...
...
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