Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cash-loan-flow-boss
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
胡慧
cash-loan-flow-boss
Commits
753e145f
Commit
753e145f
authored
Jan 03, 2020
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
日志
parent
cf1d130c
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
5 deletions
+55
-5
Application.java
...java/cn/quantgroup/cashloanflowboss/core/Application.java
+5
-4
ApplicationSecurityHandler.java
...owboss/core/configuration/ApplicationSecurityHandler.java
+10
-1
IpUtil.java
...ain/java/cn/quantgroup/cashloanflowboss/utils/IpUtil.java
+40
-0
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/core/Application.java
View file @
753e145f
...
@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.core;
...
@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.core;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary
;
import
cn.quantgroup.cashloanflowboss.utils.IpUtil
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.BeansException
;
...
@@ -174,8 +175,9 @@ public class Application implements ApplicationContextAware, ServletContextAware
...
@@ -174,8 +175,9 @@ public class Application implements ApplicationContextAware, ServletContextAware
public
static
Principal
getPrincipal
()
{
public
static
Principal
getPrincipal
()
{
HttpSession
session
=
getSession
();
HttpSession
session
=
getSession
();
if
(
Objects
.
nonNull
(
session
))
{
if
(
Objects
.
nonNull
(
session
))
{
log
.
info
(
"后来访问获取sessionId={},PRINCIPAL={}"
,
session
.
getId
(),
JSONTools
.
serialize
(
session
.
getAttribute
(
ApplicationDictionary
.
PRINCIPAL
)));
Principal
principal
=
JSONTools
.
deserialize
(
String
.
valueOf
(
session
.
getAttribute
(
ApplicationDictionary
.
PRINCIPAL
)),
Principal
.
class
);
return
JSONTools
.
deserialize
(
String
.
valueOf
(
session
.
getAttribute
(
ApplicationDictionary
.
PRINCIPAL
)),
Principal
.
class
);
log
.
info
(
"后来访问获取sessionId={},userName={}"
,
session
.
getId
(),
principal
!=
null
?
principal
.
getUserInfo
().
getUsername
()
:
"null"
);
return
principal
;
}
else
{
}
else
{
log
.
info
(
"后来访问获取session为空"
);
log
.
info
(
"后来访问获取session为空"
);
return
null
;
return
null
;
...
@@ -189,11 +191,10 @@ public class Application implements ApplicationContextAware, ServletContextAware
...
@@ -189,11 +191,10 @@ public class Application implements ApplicationContextAware, ServletContextAware
public
static
HttpSession
getSession
()
{
public
static
HttpSession
getSession
()
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
if
(
Objects
.
nonNull
(
request
))
{
if
(
Objects
.
nonNull
(
request
))
{
HttpSession
session
=
request
.
getSession
();
HttpSession
session
=
request
.
getSession
();
if
(
Objects
.
nonNull
(
session
))
{
if
(
Objects
.
nonNull
(
session
))
{
log
.
info
(
"后来访问获取sessionId={},requestIp={}"
,
session
.
getId
(),
IpUtil
.
getRemoteIP
(
request
));
return
session
;
return
session
;
}
}
}
}
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/configuration/ApplicationSecurityHandler.java
View file @
753e145f
...
@@ -11,6 +11,7 @@ import cn.quantgroup.cashloanflowboss.core.asserts.Assert;
...
@@ -11,6 +11,7 @@ import cn.quantgroup.cashloanflowboss.core.asserts.Assert;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.core.exception.ApplicationException
;
import
cn.quantgroup.cashloanflowboss.core.exception.ApplicationException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aopalliance.intercept.MethodInvocation
;
import
org.aopalliance.intercept.MethodInvocation
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
...
@@ -24,6 +25,7 @@ import java.util.List;
...
@@ -24,6 +25,7 @@ import java.util.List;
/**
/**
* Created by WeiWei on 2019/7/26.
* Created by WeiWei on 2019/7/26.
*/
*/
@Slf4j
@Configuration
@Configuration
public
class
ApplicationSecurityHandler
implements
SecurityHandler
{
public
class
ApplicationSecurityHandler
implements
SecurityHandler
{
...
@@ -37,12 +39,14 @@ public class ApplicationSecurityHandler implements SecurityHandler {
...
@@ -37,12 +39,14 @@ public class ApplicationSecurityHandler implements SecurityHandler {
// 检查是否已登录
// 检查是否已登录
if
(
principal
==
null
)
{
if
(
principal
==
null
)
{
log
.
info
(
"未曾登陆,需要重新登陆"
);
return
new
Tuple
<>(
Boolean
.
FALSE
,
ApplicationStatus
.
AUTHENTICATION_LOGIN
);
return
new
Tuple
<>(
Boolean
.
FALSE
,
ApplicationStatus
.
AUTHENTICATION_LOGIN
);
}
}
// 是否 被挤下线
// 是否 被挤下线
Boolean
isLogin
=
Assert
.
isLastLogin
(
loginService
.
getConcurrentHashMapLoginInfo
());
Boolean
isLogin
=
Assert
.
isLastLogin
(
loginService
.
getConcurrentHashMapLoginInfo
());
if
(
BooleanUtils
.
isTrue
(
isLogin
))
{
if
(
BooleanUtils
.
isTrue
(
isLogin
))
{
log
.
info
(
"已在其他地方登陆,需要重新登陆,userName="
+
principal
.
getUserInfo
().
getUsername
());
// 退出登陆
// 退出登陆
loginService
.
logout
();
loginService
.
logout
();
// 返回 信息
// 返回 信息
...
@@ -58,7 +62,12 @@ public class ApplicationSecurityHandler implements SecurityHandler {
...
@@ -58,7 +62,12 @@ public class ApplicationSecurityHandler implements SecurityHandler {
}
}
return
roleList
.
stream
().
anyMatch
(
roleItem
->
this
.
checkAuthority
(
authorityId
,
roleItem
));
return
roleList
.
stream
().
anyMatch
(
roleItem
->
this
.
checkAuthority
(
authorityId
,
roleItem
));
});
});
return
new
Tuple
<>(
hasPrivilege
,
hasPrivilege
?
null
:
ApplicationStatus
.
INVALID_AUTHORITY
);
if
(
hasPrivilege
)
{
return
new
Tuple
<>(
Boolean
.
TRUE
,
null
);
}
else
{
log
.
info
(
"权限不足,userName={},authorityId={}"
+
principal
.
getUserInfo
().
getUsername
(),
authorityId
);
return
new
Tuple
<>(
Boolean
.
FALSE
,
ApplicationStatus
.
INVALID_AUTHORITY
);
}
}
}
...
...
src/main/java/cn/quantgroup/cashloanflowboss/utils/IpUtil.java
0 → 100644
View file @
753e145f
package
cn
.
quantgroup
.
cashloanflowboss
.
utils
;
import
org.apache.commons.lang3.StringUtils
;
import
javax.servlet.http.HttpServletRequest
;
/**
* IP地址工具类
* @author mengfan.feng
* @time 2015-10-27 11:41
*/
public
class
IpUtil
{
/**
* 通过指定请求获得对应的远程ip地址
* @param request
* @return
*/
public
static
String
getRemoteIP
(
HttpServletRequest
request
)
{
String
ip
=
request
.
getHeader
(
"x-real-ip"
);
if
(
StringUtils
.
isEmpty
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
}
//过滤反向代理的ip
String
[]
stemps
=
ip
.
split
(
","
);
if
(
stemps
!=
null
&&
stemps
.
length
>=
1
)
{
//得到第一个IP,即客户端真实IP
ip
=
stemps
[
0
];
}
ip
=
ip
.
trim
();
int
length
=
23
;
if
(
ip
.
length
()
>
length
)
{
ip
=
ip
.
substring
(
0
,
23
);
}
return
ip
;
}
}
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