Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
2edf53a4
提交
2edf53a4
authored
1月 31, 2023
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善 AdminAuthServiceImpl 单元测试
上级
c107095d
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
25 行增加
和
28 行删除
+25
-28
AdminAuthServiceImpl.java
...udao/module/system/service/auth/AdminAuthServiceImpl.java
+25
-28
AdminAuthServiceImplTest.java
.../module/system/service/auth/AdminAuthServiceImplTest.java
+0
-0
没有找到文件。
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
浏览文件 @
2edf53a4
...
@@ -57,10 +57,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -57,10 +57,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
private
SocialUserService
socialUserService
;
private
SocialUserService
socialUserService
;
@Resource
@Resource
private
MemberService
memberService
;
private
MemberService
memberService
;
@Resource
@Resource
private
Validator
validator
;
private
Validator
validator
;
@Resource
@Resource
private
CaptchaService
captchaService
;
private
CaptchaService
captchaService
;
@Resource
@Resource
...
@@ -95,8 +93,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -95,8 +93,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
@Override
@Override
public
AuthLoginRespVO
login
(
AuthLoginReqVO
reqVO
)
{
public
AuthLoginRespVO
login
(
AuthLoginReqVO
reqVO
)
{
//
判断验证码是否正确
//
校验验证码
v
erify
Captcha
(
reqVO
);
v
alidate
Captcha
(
reqVO
);
// 使用账号密码,进行登录
// 使用账号密码,进行登录
AdminUserDO
user
=
authenticate
(
reqVO
.
getUsername
(),
reqVO
.
getPassword
());
AdminUserDO
user
=
authenticate
(
reqVO
.
getUsername
(),
reqVO
.
getPassword
());
...
@@ -106,7 +104,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -106,7 +104,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
socialUserService
.
bindSocialUser
(
new
SocialUserBindReqDTO
(
user
.
getId
(),
getUserType
().
getValue
(),
socialUserService
.
bindSocialUser
(
new
SocialUserBindReqDTO
(
user
.
getId
(),
getUserType
().
getValue
(),
reqVO
.
getSocialType
(),
reqVO
.
getSocialCode
(),
reqVO
.
getSocialState
()));
reqVO
.
getSocialType
(),
reqVO
.
getSocialCode
(),
reqVO
.
getSocialState
()));
}
}
// 创建 Token 令牌,记录登录日志
// 创建 Token 令牌,记录登录日志
return
createTokenAfterLoginSuccess
(
user
.
getId
(),
reqVO
.
getUsername
(),
LoginLogTypeEnum
.
LOGIN_USERNAME
);
return
createTokenAfterLoginSuccess
(
user
.
getId
(),
reqVO
.
getUsername
(),
LoginLogTypeEnum
.
LOGIN_USERNAME
);
}
}
...
@@ -136,25 +133,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -136,25 +133,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
return
createTokenAfterLoginSuccess
(
user
.
getId
(),
reqVO
.
getMobile
(),
LoginLogTypeEnum
.
LOGIN_MOBILE
);
return
createTokenAfterLoginSuccess
(
user
.
getId
(),
reqVO
.
getMobile
(),
LoginLogTypeEnum
.
LOGIN_MOBILE
);
}
}
@VisibleForTesting
void
verifyCaptcha
(
AuthLoginReqVO
reqVO
)
{
// 如果验证码关闭,则不进行校验
if
(!
captchaEnable
)
{
return
;
}
// 校验验证码
ValidationUtils
.
validate
(
validator
,
reqVO
,
AuthLoginReqVO
.
CodeEnableGroup
.
class
);
CaptchaVO
captchaVO
=
new
CaptchaVO
();
captchaVO
.
setCaptchaVerification
(
reqVO
.
getCaptchaVerification
());
ResponseModel
response
=
captchaService
.
verification
(
captchaVO
);
// 验证不通过
if
(!
response
.
isSuccess
())
{
// 创建登录失败日志(验证码不正确)
createLoginLog
(
null
,
reqVO
.
getUsername
(),
LoginLogTypeEnum
.
LOGIN_USERNAME
,
LoginResultEnum
.
CAPTCHA_CODE_ERROR
);
throw
exception
(
AUTH_LOGIN_CAPTCHA_CODE_ERROR
,
response
.
getRepMsg
());
}
}
private
void
createLoginLog
(
Long
userId
,
String
username
,
private
void
createLoginLog
(
Long
userId
,
String
username
,
LoginLogTypeEnum
logTypeEnum
,
LoginResultEnum
loginResult
)
{
LoginLogTypeEnum
logTypeEnum
,
LoginResultEnum
loginResult
)
{
// 插入登录日志
// 插入登录日志
...
@@ -193,10 +171,23 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -193,10 +171,23 @@ public class AdminAuthServiceImpl implements AdminAuthService {
return
createTokenAfterLoginSuccess
(
user
.
getId
(),
user
.
getUsername
(),
LoginLogTypeEnum
.
LOGIN_SOCIAL
);
return
createTokenAfterLoginSuccess
(
user
.
getId
(),
user
.
getUsername
(),
LoginLogTypeEnum
.
LOGIN_SOCIAL
);
}
}
@Override
@VisibleForTesting
public
AuthLoginRespVO
refreshToken
(
String
refreshToken
)
{
void
validateCaptcha
(
AuthLoginReqVO
reqVO
)
{
OAuth2AccessTokenDO
accessTokenDO
=
oauth2TokenService
.
refreshAccessToken
(
refreshToken
,
OAuth2ClientConstants
.
CLIENT_ID_DEFAULT
);
// 如果验证码关闭,则不进行校验
return
AuthConvert
.
INSTANCE
.
convert
(
accessTokenDO
);
if
(!
captchaEnable
)
{
return
;
}
// 校验验证码
ValidationUtils
.
validate
(
validator
,
reqVO
,
AuthLoginReqVO
.
CodeEnableGroup
.
class
);
CaptchaVO
captchaVO
=
new
CaptchaVO
();
captchaVO
.
setCaptchaVerification
(
reqVO
.
getCaptchaVerification
());
ResponseModel
response
=
captchaService
.
verification
(
captchaVO
);
// 验证不通过
if
(!
response
.
isSuccess
())
{
// 创建登录失败日志(验证码不正确)
createLoginLog
(
null
,
reqVO
.
getUsername
(),
LoginLogTypeEnum
.
LOGIN_USERNAME
,
LoginResultEnum
.
CAPTCHA_CODE_ERROR
);
throw
exception
(
AUTH_LOGIN_CAPTCHA_CODE_ERROR
,
response
.
getRepMsg
());
}
}
}
private
AuthLoginRespVO
createTokenAfterLoginSuccess
(
Long
userId
,
String
username
,
LoginLogTypeEnum
logType
)
{
private
AuthLoginRespVO
createTokenAfterLoginSuccess
(
Long
userId
,
String
username
,
LoginLogTypeEnum
logType
)
{
...
@@ -209,6 +200,12 @@ public class AdminAuthServiceImpl implements AdminAuthService {
...
@@ -209,6 +200,12 @@ public class AdminAuthServiceImpl implements AdminAuthService {
return
AuthConvert
.
INSTANCE
.
convert
(
accessTokenDO
);
return
AuthConvert
.
INSTANCE
.
convert
(
accessTokenDO
);
}
}
@Override
public
AuthLoginRespVO
refreshToken
(
String
refreshToken
)
{
OAuth2AccessTokenDO
accessTokenDO
=
oauth2TokenService
.
refreshAccessToken
(
refreshToken
,
OAuth2ClientConstants
.
CLIENT_ID_DEFAULT
);
return
AuthConvert
.
INSTANCE
.
convert
(
accessTokenDO
);
}
@Override
@Override
public
void
logout
(
String
token
,
Integer
logType
)
{
public
void
logout
(
String
token
,
Integer
logType
)
{
// 删除访问令牌
// 删除访问令牌
...
...
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImplTest.java
浏览文件 @
2edf53a4
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论