Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
5ff006d3
提交
5ff006d3
authored
6月 11, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
登录日志修改
上级
f735339a
显示空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
68 行增加
和
26 行删除
+68
-26
RemoteLogininforBo.java
.../org/dromara/system/api/domain/bo/RemoteLogininforBo.java
+5
-0
UserActionListener.java
...in/java/org/dromara/auth/listener/UserActionListener.java
+1
-0
SysLoginService.java
...c/main/java/org/dromara/auth/service/SysLoginService.java
+13
-11
EmailAuthStrategy.java
...java/org/dromara/auth/service/impl/EmailAuthStrategy.java
+4
-3
PasswordAuthStrategy.java
...a/org/dromara/auth/service/impl/PasswordAuthStrategy.java
+6
-5
SmsAuthStrategy.java
...n/java/org/dromara/auth/service/impl/SmsAuthStrategy.java
+4
-3
LogEventListener.java
...n/java/org/dromara/common/log/event/LogEventListener.java
+2
-0
LogininforEvent.java
...in/java/org/dromara/common/log/event/LogininforEvent.java
+5
-0
LoginHelper.java
...in/java/org/dromara/common/satoken/utils/LoginHelper.java
+9
-0
SensitiveServiceImpl.java
...a/org/dromara/demo/service/impl/SensitiveServiceImpl.java
+1
-1
PayOrderController.java
...a/mall/controller/pay/admin/order/PayOrderController.java
+1
-1
AppPayOrderController.java
.../mall/controller/pay/app/order/AppPayOrderController.java
+1
-1
SysLogininfor.java
...rc/main/java/org/dromara/system/domain/SysLogininfor.java
+5
-0
SysLogininforBo.java
...in/java/org/dromara/system/domain/bo/SysLogininforBo.java
+5
-0
SysLogininforVo.java
...in/java/org/dromara/system/domain/vo/SysLogininforVo.java
+5
-0
SysSensitiveServiceImpl.java
.../dromara/system/service/impl/SysSensitiveServiceImpl.java
+1
-1
没有找到文件。
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteLogininforBo.java
浏览文件 @
5ff006d3
...
@@ -36,6 +36,11 @@ public class RemoteLogininforBo implements Serializable {
...
@@ -36,6 +36,11 @@ public class RemoteLogininforBo implements Serializable {
*/
*/
private
String
userName
;
private
String
userName
;
/**
* 用户类型
*/
private
String
userType
;
/**
/**
* 客户端
* 客户端
*/
*/
...
...
ruoyi-auth/src/main/java/org/dromara/auth/listener/UserActionListener.java
浏览文件 @
5ff006d3
...
@@ -75,6 +75,7 @@ public class UserActionListener implements SaTokenListener {
...
@@ -75,6 +75,7 @@ public class UserActionListener implements SaTokenListener {
logininforEvent
.
setTenantId
(
tenantId
);
logininforEvent
.
setTenantId
(
tenantId
);
logininforEvent
.
setUsername
(
username
);
logininforEvent
.
setUsername
(
username
);
logininforEvent
.
setStatus
(
Constants
.
LOGIN_SUCCESS
);
logininforEvent
.
setStatus
(
Constants
.
LOGIN_SUCCESS
);
logininforEvent
.
setUserType
((
String
)
loginModel
.
getExtra
(
LoginHelper
.
USER_TYPE
));
logininforEvent
.
setMessage
(
MessageUtils
.
message
(
"user.login.success"
));
logininforEvent
.
setMessage
(
MessageUtils
.
message
(
"user.login.success"
));
SpringUtils
.
context
().
publishEvent
(
logininforEvent
);
SpringUtils
.
context
().
publishEvent
(
logininforEvent
);
// 更新登录信息
// 更新登录信息
...
...
ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java
浏览文件 @
5ff006d3
...
@@ -126,7 +126,7 @@ public class SysLoginService {
...
@@ -126,7 +126,7 @@ public class SysLoginService {
// 超级管理员 登出清除动态租户
// 超级管理员 登出清除动态租户
TenantHelper
.
clearDynamic
();
TenantHelper
.
clearDynamic
();
}
}
recordLogininfor
(
loginUser
.
getTenantId
(),
loginUser
.
getUsername
(),
Constants
.
LOGOUT
,
MessageUtils
.
message
(
"user.logout.success"
));
recordLogininfor
(
loginUser
.
getTenantId
(),
loginUser
.
getUsername
(),
Constants
.
LOGOUT
,
MessageUtils
.
message
(
"user.logout.success"
)
,
loginUser
.
getUserType
()
);
}
catch
(
NotLoginException
ignored
)
{
}
catch
(
NotLoginException
ignored
)
{
}
finally
{
}
finally
{
try
{
try
{
...
@@ -152,7 +152,7 @@ public class SysLoginService {
...
@@ -152,7 +152,7 @@ public class SysLoginService {
boolean
captchaEnabled
=
captchaProperties
.
getEnabled
();
boolean
captchaEnabled
=
captchaProperties
.
getEnabled
();
// 验证码开关
// 验证码开关
if
(
captchaEnabled
)
{
if
(
captchaEnabled
)
{
validateCaptcha
(
tenantId
,
username
,
registerBody
.
getCode
(),
registerBody
.
getUuid
());
validateCaptcha
(
tenantId
,
username
,
registerBody
.
getCode
(),
registerBody
.
getUuid
()
,
registerBody
.
getUserType
()
);
}
}
// 注册用户信息
// 注册用户信息
...
@@ -178,7 +178,7 @@ public class SysLoginService {
...
@@ -178,7 +178,7 @@ public class SysLoginService {
.
setSystemUserId
(
userId
)
.
setSystemUserId
(
userId
)
);
);
recordLogininfor
(
tenantId
,
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.register.success"
));
recordLogininfor
(
tenantId
,
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.register.success"
)
,
userType
);
}
}
/**
/**
...
@@ -187,17 +187,18 @@ public class SysLoginService {
...
@@ -187,17 +187,18 @@ public class SysLoginService {
* @param username 用户名
* @param username 用户名
* @param code 验证码
* @param code 验证码
* @param uuid 唯一标识
* @param uuid 唯一标识
* @param userType 用户类型
*/
*/
public
void
validateCaptcha
(
String
tenantId
,
String
username
,
String
code
,
String
uuid
)
{
public
void
validateCaptcha
(
String
tenantId
,
String
username
,
String
code
,
String
uuid
,
String
userType
)
{
String
verifyKey
=
GlobalConstants
.
CAPTCHA_CODE_KEY
+
StringUtils
.
blankToDefault
(
uuid
,
""
);
String
verifyKey
=
GlobalConstants
.
CAPTCHA_CODE_KEY
+
StringUtils
.
blankToDefault
(
uuid
,
""
);
String
captcha
=
RedisUtils
.
getCacheObject
(
verifyKey
);
String
captcha
=
RedisUtils
.
getCacheObject
(
verifyKey
);
RedisUtils
.
deleteObject
(
verifyKey
);
RedisUtils
.
deleteObject
(
verifyKey
);
if
(
captcha
==
null
)
{
if
(
captcha
==
null
)
{
recordLogininfor
(
tenantId
,
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
));
recordLogininfor
(
tenantId
,
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
)
,
userType
);
throw
new
CaptchaExpireException
();
throw
new
CaptchaExpireException
();
}
}
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
recordLogininfor
(
tenantId
,
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.jcaptcha.error"
));
recordLogininfor
(
tenantId
,
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.jcaptcha.error"
)
,
userType
);
throw
new
CaptchaException
();
throw
new
CaptchaException
();
}
}
}
}
...
@@ -210,20 +211,21 @@ public class SysLoginService {
...
@@ -210,20 +211,21 @@ public class SysLoginService {
* @param message 消息内容
* @param message 消息内容
* @return
* @return
*/
*/
public
void
recordLogininfor
(
String
tenantId
,
String
username
,
String
status
,
String
message
)
{
public
void
recordLogininfor
(
String
tenantId
,
String
username
,
String
status
,
String
message
,
String
userType
)
{
// 封装对象
// 封装对象
LogininforEvent
logininforEvent
=
new
LogininforEvent
();
LogininforEvent
logininforEvent
=
new
LogininforEvent
();
logininforEvent
.
setTenantId
(
tenantId
);
logininforEvent
.
setTenantId
(
tenantId
);
logininforEvent
.
setUsername
(
username
);
logininforEvent
.
setUsername
(
username
);
logininforEvent
.
setStatus
(
status
);
logininforEvent
.
setStatus
(
status
);
logininforEvent
.
setMessage
(
message
);
logininforEvent
.
setMessage
(
message
);
logininforEvent
.
setUserType
(
userType
);
SpringUtils
.
context
().
publishEvent
(
logininforEvent
);
SpringUtils
.
context
().
publishEvent
(
logininforEvent
);
}
}
/**
/**
* 登录校验
* 登录校验
*/
*/
public
void
checkLogin
(
LoginType
loginType
,
String
tenantId
,
String
username
,
Supplier
<
Boolean
>
supplier
)
{
public
void
checkLogin
(
LoginType
loginType
,
String
tenantId
,
String
user
Type
,
String
user
name
,
Supplier
<
Boolean
>
supplier
)
{
String
errorKey
=
CacheConstants
.
PWD_ERR_CNT_KEY
+
username
;
String
errorKey
=
CacheConstants
.
PWD_ERR_CNT_KEY
+
username
;
String
loginFail
=
Constants
.
LOGIN_FAIL
;
String
loginFail
=
Constants
.
LOGIN_FAIL
;
Integer
maxRetryCount
=
userPasswordProperties
.
getMaxRetryCount
();
Integer
maxRetryCount
=
userPasswordProperties
.
getMaxRetryCount
();
...
@@ -233,7 +235,7 @@ public class SysLoginService {
...
@@ -233,7 +235,7 @@ public class SysLoginService {
int
errorNumber
=
ObjectUtil
.
defaultIfNull
(
RedisUtils
.
getCacheObject
(
errorKey
),
0
);
int
errorNumber
=
ObjectUtil
.
defaultIfNull
(
RedisUtils
.
getCacheObject
(
errorKey
),
0
);
// 锁定时间内登录 则踢出
// 锁定时间内登录 则踢出
if
(
errorNumber
>=
maxRetryCount
)
{
if
(
errorNumber
>=
maxRetryCount
)
{
recordLogininfor
(
tenantId
,
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
));
recordLogininfor
(
tenantId
,
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
)
,
userType
);
throw
new
UserException
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
);
throw
new
UserException
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
);
}
}
...
@@ -243,11 +245,11 @@ public class SysLoginService {
...
@@ -243,11 +245,11 @@ public class SysLoginService {
RedisUtils
.
setCacheObject
(
errorKey
,
errorNumber
,
Duration
.
ofMinutes
(
lockTime
));
RedisUtils
.
setCacheObject
(
errorKey
,
errorNumber
,
Duration
.
ofMinutes
(
lockTime
));
// 达到规定错误次数 则锁定登录
// 达到规定错误次数 则锁定登录
if
(
errorNumber
>=
maxRetryCount
)
{
if
(
errorNumber
>=
maxRetryCount
)
{
recordLogininfor
(
tenantId
,
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
));
recordLogininfor
(
tenantId
,
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
)
,
userType
);
throw
new
UserException
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
);
throw
new
UserException
(
loginType
.
getRetryLimitExceed
(),
maxRetryCount
,
lockTime
);
}
else
{
}
else
{
// 未达到规定错误次数
// 未达到规定错误次数
recordLogininfor
(
tenantId
,
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitCount
(),
errorNumber
));
recordLogininfor
(
tenantId
,
username
,
loginFail
,
MessageUtils
.
message
(
loginType
.
getRetryLimitCount
(),
errorNumber
)
,
userType
);
throw
new
UserException
(
loginType
.
getRetryLimitCount
(),
errorNumber
);
throw
new
UserException
(
loginType
.
getRetryLimitCount
(),
errorNumber
);
}
}
}
}
...
...
ruoyi-auth/src/main/java/org/dromara/auth/service/impl/EmailAuthStrategy.java
浏览文件 @
5ff006d3
...
@@ -47,9 +47,10 @@ public class EmailAuthStrategy implements IAuthStrategy {
...
@@ -47,9 +47,10 @@ public class EmailAuthStrategy implements IAuthStrategy {
String
tenantId
=
loginBody
.
getTenantId
();
String
tenantId
=
loginBody
.
getTenantId
();
String
email
=
loginBody
.
getEmail
();
String
email
=
loginBody
.
getEmail
();
String
emailCode
=
loginBody
.
getEmailCode
();
String
emailCode
=
loginBody
.
getEmailCode
();
String
userType
=
loginBody
.
getUserType
();
LoginUser
loginUser
=
TenantHelper
.
dynamic
(
tenantId
,
()
->
{
LoginUser
loginUser
=
TenantHelper
.
dynamic
(
tenantId
,
()
->
{
LoginUser
user
=
remoteUserService
.
getUserInfoByEmail
(
email
,
tenantId
);
LoginUser
user
=
remoteUserService
.
getUserInfoByEmail
(
email
,
tenantId
);
loginService
.
checkLogin
(
LoginType
.
EMAIL
,
tenantId
,
user
.
getUsername
(),
()
->
!
validateEmailCode
(
tenantId
,
email
,
emailCod
e
));
loginService
.
checkLogin
(
LoginType
.
EMAIL
,
tenantId
,
user
Type
,
user
.
getUsername
(),
()
->
!
validateEmailCode
(
tenantId
,
email
,
emailCode
,
userTyp
e
));
return
user
;
return
user
;
});
});
loginUser
.
setClientKey
(
client
.
getClientKey
());
loginUser
.
setClientKey
(
client
.
getClientKey
());
...
@@ -74,10 +75,10 @@ public class EmailAuthStrategy implements IAuthStrategy {
...
@@ -74,10 +75,10 @@ public class EmailAuthStrategy implements IAuthStrategy {
/**
/**
* 校验邮箱验证码
* 校验邮箱验证码
*/
*/
private
boolean
validateEmailCode
(
String
tenantId
,
String
email
,
String
emailCode
)
{
private
boolean
validateEmailCode
(
String
tenantId
,
String
email
,
String
emailCode
,
String
userType
)
{
String
code
=
RedisUtils
.
getCacheObject
(
GlobalConstants
.
CAPTCHA_CODE_KEY
+
email
);
String
code
=
RedisUtils
.
getCacheObject
(
GlobalConstants
.
CAPTCHA_CODE_KEY
+
email
);
if
(
StringUtils
.
isBlank
(
code
))
{
if
(
StringUtils
.
isBlank
(
code
))
{
loginService
.
recordLogininfor
(
tenantId
,
email
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
));
loginService
.
recordLogininfor
(
tenantId
,
email
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
)
,
userType
);
throw
new
CaptchaExpireException
();
throw
new
CaptchaExpireException
();
}
}
return
code
.
equals
(
emailCode
);
return
code
.
equals
(
emailCode
);
...
...
ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java
浏览文件 @
5ff006d3
...
@@ -61,14 +61,15 @@ public class PasswordAuthStrategy implements IAuthStrategy {
...
@@ -61,14 +61,15 @@ public class PasswordAuthStrategy implements IAuthStrategy {
String
password
=
loginBody
.
getPassword
();
String
password
=
loginBody
.
getPassword
();
String
code
=
loginBody
.
getCode
();
String
code
=
loginBody
.
getCode
();
String
uuid
=
loginBody
.
getUuid
();
String
uuid
=
loginBody
.
getUuid
();
String
userType
=
loginBody
.
getUserType
();
// 验证码开关
// 验证码开关
if
(
captchaProperties
.
getEnabled
())
{
if
(
captchaProperties
.
getEnabled
())
{
validateCaptcha
(
tenantId
,
username
,
code
,
uuid
);
validateCaptcha
(
tenantId
,
username
,
code
,
uuid
,
userType
);
}
}
LoginUser
loginUser
=
TenantHelper
.
dynamic
(
tenantId
,
()
->
{
LoginUser
loginUser
=
TenantHelper
.
dynamic
(
tenantId
,
()
->
{
LoginUser
user
=
remoteUserService
.
getUserInfo
(
username
,
null
,
tenantId
,
loginBody
.
getUserType
());
LoginUser
user
=
remoteUserService
.
getUserInfo
(
username
,
null
,
tenantId
,
loginBody
.
getUserType
());
loginService
.
checkLogin
(
LoginType
.
PASSWORD
,
tenantId
,
username
,
()
->
!
BCrypt
.
checkpw
(
password
,
user
.
getPassword
()));
loginService
.
checkLogin
(
LoginType
.
PASSWORD
,
tenantId
,
user
Type
,
user
name
,
()
->
!
BCrypt
.
checkpw
(
password
,
user
.
getPassword
()));
return
user
;
return
user
;
});
});
loginUser
.
setClientKey
(
client
.
getClientKey
());
loginUser
.
setClientKey
(
client
.
getClientKey
());
...
@@ -99,16 +100,16 @@ public class PasswordAuthStrategy implements IAuthStrategy {
...
@@ -99,16 +100,16 @@ public class PasswordAuthStrategy implements IAuthStrategy {
* @param code 验证码
* @param code 验证码
* @param uuid 唯一标识
* @param uuid 唯一标识
*/
*/
private
void
validateCaptcha
(
String
tenantId
,
String
username
,
String
code
,
String
uuid
)
{
private
void
validateCaptcha
(
String
tenantId
,
String
username
,
String
code
,
String
uuid
,
String
userType
)
{
String
verifyKey
=
GlobalConstants
.
CAPTCHA_CODE_KEY
+
StringUtils
.
blankToDefault
(
uuid
,
""
);
String
verifyKey
=
GlobalConstants
.
CAPTCHA_CODE_KEY
+
StringUtils
.
blankToDefault
(
uuid
,
""
);
String
captcha
=
RedisUtils
.
getCacheObject
(
verifyKey
);
String
captcha
=
RedisUtils
.
getCacheObject
(
verifyKey
);
RedisUtils
.
deleteObject
(
verifyKey
);
RedisUtils
.
deleteObject
(
verifyKey
);
if
(
captcha
==
null
)
{
if
(
captcha
==
null
)
{
loginService
.
recordLogininfor
(
tenantId
,
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
));
loginService
.
recordLogininfor
(
tenantId
,
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
)
,
userType
);
throw
new
CaptchaExpireException
();
throw
new
CaptchaExpireException
();
}
}
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
loginService
.
recordLogininfor
(
tenantId
,
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.error"
));
loginService
.
recordLogininfor
(
tenantId
,
username
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.error"
)
,
userType
);
throw
new
CaptchaException
();
throw
new
CaptchaException
();
}
}
}
}
...
...
ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java
浏览文件 @
5ff006d3
...
@@ -47,9 +47,10 @@ public class SmsAuthStrategy implements IAuthStrategy {
...
@@ -47,9 +47,10 @@ public class SmsAuthStrategy implements IAuthStrategy {
String
tenantId
=
loginBody
.
getTenantId
();
String
tenantId
=
loginBody
.
getTenantId
();
String
phonenumber
=
loginBody
.
getPhonenumber
();
String
phonenumber
=
loginBody
.
getPhonenumber
();
String
smsCode
=
loginBody
.
getSmsCode
();
String
smsCode
=
loginBody
.
getSmsCode
();
String
userType
=
loginBody
.
getUserType
();
LoginUser
loginUser
=
TenantHelper
.
dynamic
(
tenantId
,
()
->
{
LoginUser
loginUser
=
TenantHelper
.
dynamic
(
tenantId
,
()
->
{
LoginUser
user
=
remoteUserService
.
getUserInfoByPhonenumber
(
phonenumber
,
tenantId
);
LoginUser
user
=
remoteUserService
.
getUserInfoByPhonenumber
(
phonenumber
,
tenantId
);
loginService
.
checkLogin
(
LoginType
.
SMS
,
tenantId
,
user
.
getUsername
(),
()
->
!
validateSmsCode
(
tenantId
,
phonenumber
,
smsCod
e
));
loginService
.
checkLogin
(
LoginType
.
SMS
,
tenantId
,
user
Type
,
user
.
getUsername
(),
()
->
!
validateSmsCode
(
tenantId
,
phonenumber
,
smsCode
,
userTyp
e
));
return
user
;
return
user
;
});
});
loginUser
.
setClientKey
(
client
.
getClientKey
());
loginUser
.
setClientKey
(
client
.
getClientKey
());
...
@@ -74,10 +75,10 @@ public class SmsAuthStrategy implements IAuthStrategy {
...
@@ -74,10 +75,10 @@ public class SmsAuthStrategy implements IAuthStrategy {
/**
/**
* 校验短信验证码
* 校验短信验证码
*/
*/
private
boolean
validateSmsCode
(
String
tenantId
,
String
phonenumber
,
String
smsCode
)
{
private
boolean
validateSmsCode
(
String
tenantId
,
String
phonenumber
,
String
smsCode
,
String
userType
)
{
String
code
=
RedisUtils
.
getCacheObject
(
GlobalConstants
.
CAPTCHA_CODE_KEY
+
phonenumber
);
String
code
=
RedisUtils
.
getCacheObject
(
GlobalConstants
.
CAPTCHA_CODE_KEY
+
phonenumber
);
if
(
StringUtils
.
isBlank
(
code
))
{
if
(
StringUtils
.
isBlank
(
code
))
{
loginService
.
recordLogininfor
(
tenantId
,
phonenumber
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
));
loginService
.
recordLogininfor
(
tenantId
,
phonenumber
,
Constants
.
LOGIN_FAIL
,
MessageUtils
.
message
(
"user.jcaptcha.expire"
)
,
userType
);
throw
new
CaptchaExpireException
();
throw
new
CaptchaExpireException
();
}
}
return
code
.
equals
(
smsCode
);
return
code
.
equals
(
smsCode
);
...
...
ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java
浏览文件 @
5ff006d3
...
@@ -63,6 +63,7 @@ public class LogEventListener {
...
@@ -63,6 +63,7 @@ public class LogEventListener {
s
.
append
(
getBlock
(
ip
));
s
.
append
(
getBlock
(
ip
));
s
.
append
(
address
);
s
.
append
(
address
);
s
.
append
(
getBlock
(
logininforEvent
.
getUsername
()));
s
.
append
(
getBlock
(
logininforEvent
.
getUsername
()));
s
.
append
(
getBlock
(
logininforEvent
.
getUserType
()));
s
.
append
(
getBlock
(
logininforEvent
.
getStatus
()));
s
.
append
(
getBlock
(
logininforEvent
.
getStatus
()));
s
.
append
(
getBlock
(
logininforEvent
.
getMessage
()));
s
.
append
(
getBlock
(
logininforEvent
.
getMessage
()));
// 打印信息到日志
// 打印信息到日志
...
@@ -83,6 +84,7 @@ public class LogEventListener {
...
@@ -83,6 +84,7 @@ public class LogEventListener {
logininfor
.
setLoginLocation
(
address
);
logininfor
.
setLoginLocation
(
address
);
logininfor
.
setBrowser
(
browser
);
logininfor
.
setBrowser
(
browser
);
logininfor
.
setOs
(
os
);
logininfor
.
setOs
(
os
);
logininfor
.
setUserType
(
logininforEvent
.
getUserType
());
logininfor
.
setMsg
(
logininforEvent
.
getMessage
());
logininfor
.
setMsg
(
logininforEvent
.
getMessage
());
// 日志状态
// 日志状态
if
(
StringUtils
.
equalsAny
(
logininforEvent
.
getStatus
(),
Constants
.
LOGIN_SUCCESS
,
Constants
.
LOGOUT
,
Constants
.
REGISTER
))
{
if
(
StringUtils
.
equalsAny
(
logininforEvent
.
getStatus
(),
Constants
.
LOGIN_SUCCESS
,
Constants
.
LOGOUT
,
Constants
.
REGISTER
))
{
...
...
ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogininforEvent.java
浏览文件 @
5ff006d3
...
@@ -27,6 +27,11 @@ public class LogininforEvent implements Serializable {
...
@@ -27,6 +27,11 @@ public class LogininforEvent implements Serializable {
*/
*/
private
String
username
;
private
String
username
;
/**
* 用户类型
*/
private
String
userType
;
/**
/**
* 登录状态 0成功 1失败
* 登录状态 0成功 1失败
*/
*/
...
...
ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
浏览文件 @
5ff006d3
...
@@ -43,6 +43,7 @@ public class LoginHelper {
...
@@ -43,6 +43,7 @@ public class LoginHelper {
public
static
final
String
YS_USER_ID
=
"ysUserId"
;
public
static
final
String
YS_USER_ID
=
"ysUserId"
;
public
static
final
String
OPEN_ID
=
"openId"
;
public
static
final
String
OPEN_ID
=
"openId"
;
public
static
final
String
MEMBER_ID
=
"memberId"
;
public
static
final
String
MEMBER_ID
=
"memberId"
;
public
static
final
String
USER_TYPE
=
"userType"
;
/**
/**
* 登录系统 基于 设备类型
* 登录系统 基于 设备类型
...
@@ -60,6 +61,7 @@ public class LoginHelper {
...
@@ -60,6 +61,7 @@ public class LoginHelper {
.
setExtra
(
DEPT_KEY
,
loginUser
.
getDeptId
())
.
setExtra
(
DEPT_KEY
,
loginUser
.
getDeptId
())
.
setExtra
(
DEPT_NAME_KEY
,
loginUser
.
getDeptName
())
.
setExtra
(
DEPT_NAME_KEY
,
loginUser
.
getDeptName
())
.
setExtra
(
DEPT_CATEGORY_KEY
,
loginUser
.
getDeptCategory
())
.
setExtra
(
DEPT_CATEGORY_KEY
,
loginUser
.
getDeptCategory
())
.
setExtra
(
USER_TYPE
,
loginUser
.
getUserType
())
);
);
StpUtil
.
getTokenSession
().
set
(
LOGIN_USER_KEY
,
loginUser
);
StpUtil
.
getTokenSession
().
set
(
LOGIN_USER_KEY
,
loginUser
);
}
}
...
@@ -186,6 +188,13 @@ public class LoginHelper {
...
@@ -186,6 +188,13 @@ public class LoginHelper {
return
UserType
.
getUserType
(
loginType
);
return
UserType
.
getUserType
(
loginType
);
}
}
/**
* 获取用户类型
*/
public
static
String
getUserTypeStr
()
{
return
StpUtil
.
getLoginIdAsString
();
}
/**
/**
* 是否为超级管理员
* 是否为超级管理员
*
*
...
...
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/SensitiveServiceImpl.java
浏览文件 @
5ff006d3
...
@@ -26,7 +26,7 @@ public class SensitiveServiceImpl implements SensitiveService {
...
@@ -26,7 +26,7 @@ public class SensitiveServiceImpl implements SensitiveService {
if
(!
LoginHelper
.
isLogin
())
{
if
(!
LoginHelper
.
isLogin
())
{
return
true
;
return
true
;
}
}
if
(
StringUtils
.
equals
(
LoginHelper
.
getUserType
().
getUserType
(),
UserType
.
APP_USER
.
getUserType
()))
{
if
(
StringUtils
.
equals
(
LoginHelper
.
getUserType
Str
(),
UserType
.
APP_USER
.
getUserType
()))
{
return
false
;
return
false
;
}
}
boolean
roleExist
=
StringUtils
.
isNotBlank
(
roleKey
);
boolean
roleExist
=
StringUtils
.
isNotBlank
(
roleKey
);
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/controller/pay/admin/order/PayOrderController.java
浏览文件 @
5ff006d3
...
@@ -94,7 +94,7 @@ public class PayOrderController {
...
@@ -94,7 +94,7 @@ public class PayOrderController {
Map
<
String
,
String
>
channelExtras
=
reqVO
.
getChannelExtras
()
==
null
?
Map
<
String
,
String
>
channelExtras
=
reqVO
.
getChannelExtras
()
==
null
?
Maps
.
newHashMapWithExpectedSize
(
2
)
:
reqVO
.
getChannelExtras
();
Maps
.
newHashMapWithExpectedSize
(
2
)
:
reqVO
.
getChannelExtras
();
channelExtras
.
put
(
WalletPayClient
.
USER_ID_KEY
,
String
.
valueOf
(
LoginHelper
.
getMemberId
()));
channelExtras
.
put
(
WalletPayClient
.
USER_ID_KEY
,
String
.
valueOf
(
LoginHelper
.
getMemberId
()));
channelExtras
.
put
(
WalletPayClient
.
USER_TYPE_KEY
,
String
.
valueOf
(
LoginHelper
.
getUserType
()
));
channelExtras
.
put
(
WalletPayClient
.
USER_TYPE_KEY
,
LoginHelper
.
getUserTypeStr
(
));
reqVO
.
setChannelExtras
(
channelExtras
);
reqVO
.
setChannelExtras
(
channelExtras
);
}
}
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/controller/pay/app/order/AppPayOrderController.java
浏览文件 @
5ff006d3
...
@@ -66,7 +66,7 @@ public class AppPayOrderController {
...
@@ -66,7 +66,7 @@ public class AppPayOrderController {
Map
<
String
,
String
>
channelExtras
=
reqVO
.
getChannelExtras
()
==
null
?
Map
<
String
,
String
>
channelExtras
=
reqVO
.
getChannelExtras
()
==
null
?
Maps
.
newHashMapWithExpectedSize
(
2
)
:
reqVO
.
getChannelExtras
();
Maps
.
newHashMapWithExpectedSize
(
2
)
:
reqVO
.
getChannelExtras
();
channelExtras
.
put
(
WalletPayClient
.
USER_ID_KEY
,
String
.
valueOf
(
LoginHelper
.
getMemberId
()));
channelExtras
.
put
(
WalletPayClient
.
USER_ID_KEY
,
String
.
valueOf
(
LoginHelper
.
getMemberId
()));
channelExtras
.
put
(
WalletPayClient
.
USER_TYPE_KEY
,
String
.
valueOf
(
LoginHelper
.
getUserType
()
));
channelExtras
.
put
(
WalletPayClient
.
USER_TYPE_KEY
,
LoginHelper
.
getUserTypeStr
(
));
reqVO
.
setChannelExtras
(
channelExtras
);
reqVO
.
setChannelExtras
(
channelExtras
);
}
}
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java
浏览文件 @
5ff006d3
...
@@ -37,6 +37,11 @@ public class SysLogininfor implements Serializable {
...
@@ -37,6 +37,11 @@ public class SysLogininfor implements Serializable {
*/
*/
private
String
userName
;
private
String
userName
;
/**
* 用户类型
*/
private
String
userType
;
/**
/**
* 客户端
* 客户端
*/
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java
浏览文件 @
5ff006d3
...
@@ -33,6 +33,11 @@ public class SysLogininforBo {
...
@@ -33,6 +33,11 @@ public class SysLogininforBo {
*/
*/
private
String
userName
;
private
String
userName
;
/**
* 用户类型
*/
private
String
userType
;
/**
/**
* 客户端
* 客户端
*/
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java
浏览文件 @
5ff006d3
...
@@ -45,6 +45,11 @@ public class SysLogininforVo implements Serializable {
...
@@ -45,6 +45,11 @@ public class SysLogininforVo implements Serializable {
@ExcelProperty
(
value
=
"用户账号"
)
@ExcelProperty
(
value
=
"用户账号"
)
private
String
userName
;
private
String
userName
;
/**
* 用户类型
*/
private
String
userType
;
/**
/**
* 客户端
* 客户端
*/
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java
浏览文件 @
5ff006d3
...
@@ -27,7 +27,7 @@ public class SysSensitiveServiceImpl implements SensitiveService {
...
@@ -27,7 +27,7 @@ public class SysSensitiveServiceImpl implements SensitiveService {
if
(!
LoginHelper
.
isLogin
())
{
if
(!
LoginHelper
.
isLogin
())
{
return
true
;
return
true
;
}
}
if
(
StringUtils
.
equals
(
LoginHelper
.
getUserType
().
getUserType
(),
UserType
.
APP_USER
.
getUserType
()))
{
if
(
StringUtils
.
equals
(
LoginHelper
.
getUserType
Str
(),
UserType
.
APP_USER
.
getUserType
()))
{
return
false
;
return
false
;
}
}
boolean
roleExist
=
StringUtils
.
isNotEmpty
(
roleKey
);
boolean
roleExist
=
StringUtils
.
isNotEmpty
(
roleKey
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论