Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
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
段启岩
beyond-clouds
Commits
95817327
Commit
95817327
authored
Feb 16, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加系统日志
parent
d24f8c1f
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
42 additions
and
17 deletions
+42
-17
src/main/java/cn/meteor/beyondclouds/core/authentication/Subject.java
+2
-1
src/main/java/cn/meteor/beyondclouds/core/constant/SysConstants.java
+3
-0
src/main/java/cn/meteor/beyondclouds/core/queue/message/UserActionMessage.java
+17
-2
src/main/java/cn/meteor/beyondclouds/modules/log/entity/SysLog.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/log/listener/LogListener.java
+5
-0
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/AuthenticationServiceImpl.java
+13
-12
No files found.
src/main/java/cn/meteor/beyondclouds/core/authentication/Subject.java
View file @
95817327
package
cn
.
meteor
.
beyondclouds
.
core
.
authentication
;
import
cn.meteor.beyondclouds.core.constant.SysConstants
;
import
cn.meteor.beyondclouds.core.emuns.SubjectType
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Data
;
...
...
@@ -42,7 +43,7 @@ public class Subject implements Serializable {
}
public
static
Subject
anonymous
()
{
return
new
Subject
(
null
,
SubjectType
.
ANONYMOUS
,
"SYS"
);
return
new
Subject
(
SysConstants
.
SYS_ID
,
SubjectType
.
ANONYMOUS
,
SysConstants
.
SYS_ID
);
}
public
static
Subject
authenticated
(
Serializable
id
,
String
ipAddress
)
{
...
...
src/main/java/cn/meteor/beyondclouds/core/constant/SysConstants.java
View file @
95817327
package
cn
.
meteor
.
beyondclouds
.
core
.
constant
;
import
java.io.Serializable
;
/**
* 系统常量
* @author meteor
...
...
@@ -30,4 +32,5 @@ public class SysConstants {
*
*/
public
static
final
String
THREAD_LOCAL_KEY_PREVENT_DUPLICATE_REDIS_LOCK
=
"THREAD_LOCAL_KEY_PREVENT_DUPLICATE_REDIS_LOCK"
;
public
static
final
String
SYS_ID
=
"SYS"
;
}
src/main/java/cn/meteor/beyondclouds/core/queue/message/UserActionMessage.java
View file @
95817327
package
cn
.
meteor
.
beyondclouds
.
core
.
queue
.
message
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.modules.user.entity.UserAuthApp
;
import
cn.meteor.beyondclouds.modules.user.entity.UserAuthLocal
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.ToString
;
...
...
@@ -19,6 +21,14 @@ public class UserActionMessage {
this
.
action
=
action
;
}
public
UserActionMessage
(
Subject
subject
,
UserAction
action
,
String
accountType
,
String
account
)
{
this
.
subject
=
subject
;
this
.
userId
=
(
String
)
subject
.
getId
();
this
.
action
=
action
;
this
.
accountType
=
accountType
;
this
.
account
=
account
;
}
private
Subject
subject
;
/**
...
...
@@ -31,13 +41,18 @@ public class UserActionMessage {
*/
private
UserAction
action
;
private
String
accountType
;
private
String
account
;
/**
* 用户登录消息
* @param subject
* @return
*/
public
static
UserActionMessage
loginMessage
(
Subject
subject
)
{
return
new
UserActionMessage
(
subject
,
UserAction
.
LOGIN
);
public
static
UserActionMessage
loginMessage
(
Subject
subject
,
UserAuthLocal
userAuthLocal
)
{
String
accountType
=
userAuthLocal
.
getAccountType
()
==
1
?
"MOBILE"
:
"EMAIL"
;
return
new
UserActionMessage
(
subject
,
UserAction
.
LOGIN
,
accountType
,
userAuthLocal
.
getAccount
());
}
/**
...
...
src/main/java/cn/meteor/beyondclouds/modules/log/entity/SysLog.java
View file @
95817327
...
...
@@ -67,8 +67,8 @@ public class SysLog implements Serializable {
public
SysLog
(
UserActionMessage
userActionMessage
)
{
this
.
logType
=
LogType
.
USER_ACTION
.
getType
();
// this.targetId = String.valueOf(dataItemChangeMessage.getItemId()
);
// this.targetType = dataItemChangeMessage.getItemType().nam
e();
this
.
targetId
=
userActionMessage
.
getAccount
(
);
this
.
targetType
=
userActionMessage
.
getAccountTyp
e
();
this
.
operateType
=
userActionMessage
.
getAction
().
name
();
this
.
operatorId
=
(
String
)
userActionMessage
.
getSubject
().
getId
();
this
.
operatorIp
=
userActionMessage
.
getSubject
().
getIpAddress
();
...
...
src/main/java/cn/meteor/beyondclouds/modules/log/listener/LogListener.java
View file @
95817327
package
cn
.
meteor
.
beyondclouds
.
modules
.
log
.
listener
;
import
cn.meteor.beyondclouds.core.constant.SysConstants
;
import
cn.meteor.beyondclouds.core.listener.DataItemChangeListener
;
import
cn.meteor.beyondclouds.core.listener.UserActionListener
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage
;
...
...
@@ -50,9 +51,13 @@ public class LogListener implements DataItemChangeListener, UserActionListener {
}
private
void
onDataChange
(
DataItemChangeMessage
dataItemChangeMessage
)
{
if
(!
dataItemChangeMessage
.
getSubject
().
getId
().
equals
(
SysConstants
.
SYS_ID
))
{
log
.
info
(
"正在记录日志:{}"
,
dataItemChangeMessage
);
SysLog
sysLog
=
new
SysLog
(
dataItemChangeMessage
);
sysLogService
.
save
(
sysLog
);
}
else
{
log
.
info
(
"检测到系统操作,忽略日志记录:{}"
,
dataItemChangeMessage
);
}
}
private
void
onUserAction
(
UserActionMessage
userActionMessage
)
{
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/AuthenticationServiceImpl.java
View file @
95817327
...
...
@@ -21,7 +21,6 @@ import cn.meteor.beyondclouds.modules.user.service.IAuthenticationService;
import
cn.meteor.beyondclouds.modules.user.service.IUserAuthAppService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserAuthLocalService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserService
;
import
cn.meteor.beyondclouds.util.JwtUtils
;
import
cn.meteor.beyondclouds.util.Md5Utils
;
import
cn.meteor.beyondclouds.util.SubjectUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -30,9 +29,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.StringUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author meteor
...
...
@@ -110,7 +107,10 @@ public class AuthenticationServiceImpl implements IAuthenticationService {
}
// 根据userId生成token并返回
return
makeAuthenticationResultAndSendLoginMessage
(
userAuthLocal
.
getUserId
());
AuthenticationResultDTO
authenticationResultDTO
=
makeAuthenticationResult
(
userAuthLocal
.
getUserId
());
sendUserLoginMessage
(
userAuthLocal
);
return
authenticationResultDTO
;
}
@Override
...
...
@@ -134,7 +134,7 @@ public class AuthenticationServiceImpl implements IAuthenticationService {
}
// 根据userId生成token并返回
return
makeAuthenticationResult
AndSendLoginMessage
(
userId
);
return
makeAuthenticationResult
(
userId
);
}
catch
(
QQAuthenticationException
e
)
{
e
.
printStackTrace
();
...
...
@@ -162,7 +162,9 @@ public class AuthenticationServiceImpl implements IAuthenticationService {
// 根据userId生成token并返回
return
makeAuthenticationResultAndSendLoginMessage
(
userAuthLocal
.
getUserId
());
AuthenticationResultDTO
authenticationResultDTO
=
makeAuthenticationResult
(
userAuthLocal
.
getUserId
());
sendUserLoginMessage
(
userAuthLocal
);
return
authenticationResultDTO
;
}
...
...
@@ -171,24 +173,23 @@ public class AuthenticationServiceImpl implements IAuthenticationService {
* @param userId
* @return
*/
private
AuthenticationResultDTO
makeAuthenticationResult
AndSendLoginMessage
(
String
userId
)
{
private
AuthenticationResultDTO
makeAuthenticationResult
(
String
userId
)
{
AuthenticationResultDTO
result
=
new
AuthenticationResultDTO
();
result
.
setUserId
(
userId
);
result
.
setAccessToken
(
tokenManager
.
generateToken
(
userId
,
60
*
30
));
sendUserLoginMessage
(
userId
);
return
result
;
}
/**
* 发送用户登录消息
* @param user
Id
* @param user
AuthLocal
*/
private
void
sendUserLoginMessage
(
String
userId
)
{
private
void
sendUserLoginMessage
(
UserAuthLocal
userAuthLocal
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
messageQueueService
.
sendUserActionMessage
(
UserActionMessage
.
loginMessage
(
Subject
.
authenticated
(
user
Id
,
subject
.
getIpAddress
())
));
messageQueueService
.
sendUserActionMessage
(
UserActionMessage
.
loginMessage
(
Subject
.
authenticated
(
user
AuthLocal
.
getUserId
(),
subject
.
getIpAddress
()),
userAuthLocal
));
}
@Override
public
List
<
UserAuthDTO
>
getAuths
(
String
userId
)
{
...
...
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