Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sts网站
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
liyang
sts网站
Commits
7b894da4
Commit
7b894da4
authored
Jul 13, 2021
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
参数管理支持配置验证码开关
parent
c8b66f9b
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
762 additions
and
701 deletions
+762
-701
CaptchaController.java
...va/com/ruoyi/web/controller/common/CaptchaController.java
+12
-2
SysLoginService.java
...java/com/ruoyi/framework/web/service/SysLoginService.java
+33
-11
ISysConfigService.java
...main/java/com/ruoyi/system/service/ISysConfigService.java
+7
-0
SysConfigServiceImpl.java
...a/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
+15
-0
login.vue
ruoyi-ui/src/views/login.vue
+10
-4
ry_20210713.sql
sql/ry_20210713.sql
+685
-684
No files found.
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
View file @
7b894da4
...
@@ -17,6 +17,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
...
@@ -17,6 +17,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
import
com.ruoyi.common.core.redis.RedisCache
;
import
com.ruoyi.common.core.redis.RedisCache
;
import
com.ruoyi.common.utils.sign.Base64
;
import
com.ruoyi.common.utils.sign.Base64
;
import
com.ruoyi.common.utils.uuid.IdUtils
;
import
com.ruoyi.common.utils.uuid.IdUtils
;
import
com.ruoyi.system.service.ISysConfigService
;
/**
/**
* 验证码操作处理
* 验证码操作处理
...
@@ -39,12 +40,22 @@ public class CaptchaController
...
@@ -39,12 +40,22 @@ public class CaptchaController
@Value
(
"${ruoyi.captchaType}"
)
@Value
(
"${ruoyi.captchaType}"
)
private
String
captchaType
;
private
String
captchaType
;
@Autowired
private
ISysConfigService
configService
;
/**
/**
* 生成验证码
* 生成验证码
*/
*/
@GetMapping
(
"/captchaImage"
)
@GetMapping
(
"/captchaImage"
)
public
AjaxResult
getCode
(
HttpServletResponse
response
)
throws
IOException
public
AjaxResult
getCode
(
HttpServletResponse
response
)
throws
IOException
{
{
AjaxResult
ajax
=
AjaxResult
.
success
();
boolean
captchaOnOff
=
configService
.
selectCaptchaOnOff
();
ajax
.
put
(
"captchaOnOff"
,
captchaOnOff
);
if
(!
captchaOnOff
)
{
return
ajax
;
}
// 保存验证码信息
// 保存验证码信息
String
uuid
=
IdUtils
.
simpleUUID
();
String
uuid
=
IdUtils
.
simpleUUID
();
String
verifyKey
=
Constants
.
CAPTCHA_CODE_KEY
+
uuid
;
String
verifyKey
=
Constants
.
CAPTCHA_CODE_KEY
+
uuid
;
...
@@ -78,7 +89,6 @@ public class CaptchaController
...
@@ -78,7 +89,6 @@ public class CaptchaController
return
AjaxResult
.
error
(
e
.
getMessage
());
return
AjaxResult
.
error
(
e
.
getMessage
());
}
}
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"uuid"
,
uuid
);
ajax
.
put
(
"uuid"
,
uuid
);
ajax
.
put
(
"img"
,
Base64
.
encode
(
os
.
toByteArray
()));
ajax
.
put
(
"img"
,
Base64
.
encode
(
os
.
toByteArray
()));
return
ajax
;
return
ajax
;
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
View file @
7b894da4
...
@@ -21,6 +21,7 @@ import com.ruoyi.common.utils.ServletUtils;
...
@@ -21,6 +21,7 @@ import com.ruoyi.common.utils.ServletUtils;
import
com.ruoyi.common.utils.ip.IpUtils
;
import
com.ruoyi.common.utils.ip.IpUtils
;
import
com.ruoyi.framework.manager.AsyncManager
;
import
com.ruoyi.framework.manager.AsyncManager
;
import
com.ruoyi.framework.manager.factory.AsyncFactory
;
import
com.ruoyi.framework.manager.factory.AsyncFactory
;
import
com.ruoyi.system.service.ISysConfigService
;
import
com.ruoyi.system.service.ISysUserService
;
import
com.ruoyi.system.service.ISysUserService
;
/**
/**
...
@@ -43,6 +44,9 @@ public class SysLoginService
...
@@ -43,6 +44,9 @@ public class SysLoginService
@Autowired
@Autowired
private
ISysUserService
userService
;
private
ISysUserService
userService
;
@Autowired
private
ISysConfigService
configService
;
/**
/**
* 登录验证
* 登录验证
*
*
...
@@ -54,18 +58,11 @@ public class SysLoginService
...
@@ -54,18 +58,11 @@ public class SysLoginService
*/
*/
public
String
login
(
String
username
,
String
password
,
String
code
,
String
uuid
)
public
String
login
(
String
username
,
String
password
,
String
code
,
String
uuid
)
{
{
String
verifyKey
=
Constants
.
CAPTCHA_CODE_KEY
+
uuid
;
boolean
captchaOnOff
=
configService
.
selectCaptchaOnOff
();
String
captcha
=
redisCache
.
getCacheObject
(
verifyKey
);
// 验证码开关
redisCache
.
deleteObject
(
verifyKey
);
if
(
captchaOnOff
)
if
(
captcha
==
null
)
{
AsyncManager
.
me
().
execute
(
AsyncFactory
.
recordLogininfor
(
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
)));
throw
new
CaptchaExpireException
();
}
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
{
AsyncManager
.
me
().
execute
(
AsyncFactory
.
recordLogininfor
(
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.error"
)));
validateCapcha
(
username
,
code
,
uuid
);
throw
new
CaptchaException
();
}
}
// 用户验证
// 用户验证
Authentication
authentication
=
null
;
Authentication
authentication
=
null
;
...
@@ -95,6 +92,31 @@ public class SysLoginService
...
@@ -95,6 +92,31 @@ public class SysLoginService
return
tokenService
.
createToken
(
loginUser
);
return
tokenService
.
createToken
(
loginUser
);
}
}
/**
* 校验验证码
*
* @param username 用户名
* @param code 验证码
* @param uuid 唯一标识
* @return 结果
*/
public
void
validateCapcha
(
String
username
,
String
code
,
String
uuid
)
{
String
verifyKey
=
Constants
.
CAPTCHA_CODE_KEY
+
uuid
;
String
captcha
=
redisCache
.
getCacheObject
(
verifyKey
);
redisCache
.
deleteObject
(
verifyKey
);
if
(
captcha
==
null
)
{
AsyncManager
.
me
().
execute
(
AsyncFactory
.
recordLogininfor
(
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
)));
throw
new
CaptchaExpireException
();
}
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
AsyncManager
.
me
().
execute
(
AsyncFactory
.
recordLogininfor
(
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.error"
)));
throw
new
CaptchaException
();
}
}
/**
/**
* 记录登录信息
* 记录登录信息
*/
*/
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
View file @
7b894da4
...
@@ -26,6 +26,13 @@ public interface ISysConfigService
...
@@ -26,6 +26,13 @@ public interface ISysConfigService
*/
*/
public
String
selectConfigByKey
(
String
configKey
);
public
String
selectConfigByKey
(
String
configKey
);
/**
* 获取验证码开关
*
* @return true开启,false关闭
*/
public
boolean
selectCaptchaOnOff
();
/**
/**
* 查询参数配置列表
* 查询参数配置列表
*
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
View file @
7b894da4
...
@@ -80,6 +80,21 @@ public class SysConfigServiceImpl implements ISysConfigService
...
@@ -80,6 +80,21 @@ public class SysConfigServiceImpl implements ISysConfigService
return
StringUtils
.
EMPTY
;
return
StringUtils
.
EMPTY
;
}
}
/**
* 获取验证码开关
*
* @return true开启,false关闭
*/
public
boolean
selectCaptchaOnOff
()
{
String
captchaOnOff
=
selectConfigByKey
(
"sys.account.captchaOnOff"
);
if
(
StringUtils
.
isEmpty
(
captchaOnOff
))
{
return
true
;
}
return
Convert
.
toBool
(
captchaOnOff
);
}
/**
/**
* 查询参数配置列表
* 查询参数配置列表
*
*
...
...
ruoyi-ui/src/views/login.vue
View file @
7b894da4
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<svg-icon
slot=
"prefix"
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
<svg-icon
slot=
"prefix"
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"code"
>
<el-form-item
prop=
"code"
v-if=
"captchaOnOff"
>
<el-input
<el-input
v-model=
"loginForm.code"
v-model=
"loginForm.code"
auto-complete=
"off"
auto-complete=
"off"
...
@@ -81,6 +81,7 @@ export default {
...
@@ -81,6 +81,7 @@ export default {
code
:
[{
required
:
true
,
trigger
:
"change"
,
message
:
"验证码不能为空"
}]
code
:
[{
required
:
true
,
trigger
:
"change"
,
message
:
"验证码不能为空"
}]
},
},
loading
:
false
,
loading
:
false
,
captchaOnOff
:
true
,
redirect
:
undefined
redirect
:
undefined
};
};
},
},
...
@@ -99,8 +100,11 @@ export default {
...
@@ -99,8 +100,11 @@ export default {
methods
:
{
methods
:
{
getCode
()
{
getCode
()
{
getCodeImg
().
then
(
res
=>
{
getCodeImg
().
then
(
res
=>
{
this
.
captchaOnOff
=
res
.
captchaOnOff
===
undefined
?
true
:
res
.
captchaOnOff
;
if
(
this
.
captchaOnOff
)
{
this
.
codeUrl
=
"data:image/gif;base64,"
+
res
.
img
;
this
.
codeUrl
=
"data:image/gif;base64,"
+
res
.
img
;
this
.
loginForm
.
uuid
=
res
.
uuid
;
this
.
loginForm
.
uuid
=
res
.
uuid
;
}
});
});
},
},
getCookie
()
{
getCookie
()
{
...
@@ -130,7 +134,9 @@ export default {
...
@@ -130,7 +134,9 @@ export default {
this
.
$router
.
push
({
path
:
this
.
redirect
||
"/"
}).
catch
(()
=>
{});
this
.
$router
.
push
({
path
:
this
.
redirect
||
"/"
}).
catch
(()
=>
{});
}).
catch
(()
=>
{
}).
catch
(()
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
this
.
captchaOnOff
)
{
this
.
getCode
();
this
.
getCode
();
}
});
});
}
}
});
});
...
...
sql/ry_20210
210
.sql
→
sql/ry_20210
713
.sql
View file @
7b894da4
...
@@ -537,6 +537,7 @@ create table sys_config (
...
@@ -537,6 +537,7 @@ create table sys_config (
insert
into
sys_config
values
(
1
,
'主框架页-默认皮肤样式名称'
,
'sys.index.skinName'
,
'skin-blue'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow'
);
insert
into
sys_config
values
(
1
,
'主框架页-默认皮肤样式名称'
,
'sys.index.skinName'
,
'skin-blue'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow'
);
insert
into
sys_config
values
(
2
,
'用户管理-账号初始密码'
,
'sys.user.initPassword'
,
'123456'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'初始化密码 123456'
);
insert
into
sys_config
values
(
2
,
'用户管理-账号初始密码'
,
'sys.user.initPassword'
,
'123456'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'初始化密码 123456'
);
insert
into
sys_config
values
(
3
,
'主框架页-侧边栏主题'
,
'sys.index.sideTheme'
,
'theme-dark'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'深色主题theme-dark,浅色主题theme-light'
);
insert
into
sys_config
values
(
3
,
'主框架页-侧边栏主题'
,
'sys.index.sideTheme'
,
'theme-dark'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'深色主题theme-dark,浅色主题theme-light'
);
insert
into
sys_config
values
(
4
,
'账号自助-验证码开关'
,
'sys.account.captchaOnOff'
,
'true'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启登录验证码功能(true开启,false关闭)'
);
-- ----------------------------
-- ----------------------------
...
...
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