Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
aserver
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
15所TongWeb
aserver
Commits
4f8c9a93
Commit
4f8c9a93
authored
Nov 27, 2020
by
成亚卿
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/SZDAS_V2.0' into SZDAS_V2.0
parents
6f38b7c6
2bfe1e9d
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
233 additions
and
19 deletions
+233
-19
IndexController.java
.../java/com/archser/aserver/controller/IndexController.java
+20
-17
InfoSystem.java
src/main/java/com/archser/aserver/util/redis/InfoSystem.java
+41
-0
InfoUser.java
src/main/java/com/archser/aserver/util/redis/InfoUser.java
+41
-0
RedisConvert.java
...ain/java/com/archser/aserver/util/redis/RedisConvert.java
+64
-0
config-pro.properties
src/main/resources/config-pro.properties
+1
-1
oracle.sql
src/main/resources/oracle.sql
+1
-1
PublicDataSource.java
src/test/com/archser/PublicDataSource.java
+33
-0
RedisDataFormat.java
src/test/com/archser/redis/RedisDataFormat.java
+32
-0
No files found.
src/main/java/com/archser/aserver/controller/IndexController.java
View file @
4f8c9a93
package
com
.
archser
.
aserver
.
controller
;
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.util.redis.InfoSystem
;
import
com.archser.aserver.util.redis.InfoUser
;
import
com.archser.aserver.util.redis.RedisConvert
;
import
com.jfinal.kit.JsonKit
;
import
java.math.BigInteger
;
import
java.math.BigInteger
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -41,7 +45,7 @@ import io.jsonwebtoken.SignatureAlgorithm;
...
@@ -41,7 +45,7 @@ import io.jsonwebtoken.SignatureAlgorithm;
/**
/**
* IndexController 指向系统访问首页
* IndexController 指向系统访问首页
*
*
* @author jbolt.cn
* @author jbolt.cn
* @email 909854136@qq.com
* @email 909854136@qq.com
* @date 2018年11月4日 下午9:02:52
* @date 2018年11月4日 下午9:02:52
...
@@ -118,7 +122,7 @@ public class IndexController extends Controller {
...
@@ -118,7 +122,7 @@ public class IndexController extends Controller {
//校验密码是否符合强度设置
//校验密码是否符合强度设置
String
verify
=
password
;
String
verify
=
password
;
password
=
HashKit
.
sha256
(
password
);
password
=
HashKit
.
sha256
(
password
);
User
user
=
User
.
dao
.
template
(
"getUser"
,
username
).
findFirst
(
);
User
user
=
InfoUser
.
getUser
(
username
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"用户名或密码不存在: "
+
username
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"用户名或密码不存在: "
+
username
));
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"该用户非本系统用户正在非法登录"
,
app
);
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"该用户非本系统用户正在非法登录"
,
app
);
...
@@ -148,14 +152,14 @@ public class IndexController extends Controller {
...
@@ -148,14 +152,14 @@ public class IndexController extends Controller {
// 一旦开启三员 admin用户不能使用
// 一旦开启三员 admin用户不能使用
if
(
"admin"
.
equals
(
user
.
getUsername
()))
{
if
(
"admin"
.
equals
(
user
.
getUsername
()))
{
Integer
userCount
=
Db
.
queryInt
(
Db
.
getSql
(
"hasThreeMemberUsersCount"
));
Integer
userCount
=
Db
.
queryInt
(
Db
.
getSql
(
"hasThreeMemberUsersCount"
));
boolean
isExistThreeMemberUsers
=
userCount
==
null
?
false
:
(
userCount
>
0
?
true
:
false
);
boolean
isExistThreeMemberUsers
=
userCount
!=
null
&&
(
userCount
>
0
);
if
(
isExistThreeMemberUsers
)
{
if
(
isExistThreeMemberUsers
)
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"已开启三员管理,admin失效了。"
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"已开启三员管理,admin失效了。"
));
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:已开启三员管理"
,
app
);
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:已开启三员管理"
,
app
);
return
;
return
;
}
}
}
}
if
(
Integer
.
valueOf
(
user
.
getLocked
())
==
1
)
{
if
(
user
.
getLocked
()
!=
null
&&
Integer
.
parseInt
(
user
.
getLocked
())
==
1
)
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"当前账户已被锁定"
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"当前账户已被锁定"
));
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:该用户已被锁定"
,
app
);
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:该用户已被锁定"
,
app
);
return
;
return
;
...
@@ -163,19 +167,17 @@ public class IndexController extends Controller {
...
@@ -163,19 +167,17 @@ public class IndexController extends Controller {
if
(!
password
.
equals
(
user
.
getPassword
()))
{
if
(!
password
.
equals
(
user
.
getPassword
()))
{
if
(
this
.
checkErrorCount
(
user
))
{
if
(
this
.
checkErrorCount
(
user
))
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"您的错误次数已达5次以上,请稍后再试!"
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"您的错误次数已达5次以上,请稍后再试!"
));
return
;
}
else
{
}
else
{
int
errorCount
=
permitLoginTimes
-
(
user
.
getErrorcount
()
==
null
?
0
:
user
.
getErrorcount
())
-
1
;
int
errorCount
=
permitLoginTimes
-
(
user
.
getErrorcount
()
==
null
?
0
:
user
.
getErrorcount
())
-
1
;
if
(
user
.
getErrorcount
()
==
4
)
{
if
(
user
.
getErrorcount
()
!=
null
&&
user
.
getErrorcount
()
==
4
)
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"用户名或密码验证失败,您的账户于两小时后才可登录!"
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"用户名或密码验证失败,您的账户于两小时后才可登录!"
));
return
;
}
else
{
}
else
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"用户名或密码验证失败,您还有"
+
errorCount
+
"次机会!"
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"用户名或密码验证失败,您还有"
+
errorCount
+
"次机会!"
));
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:密码验证错误"
,
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:密码验证错误"
,
app
);
app
);
return
;
}
}
}
}
return
;
}
}
Integer
errorcount
=
user
.
getErrorcount
();
Integer
errorcount
=
user
.
getErrorcount
();
if
(
errorcount
!=
null
&&
errorcount
!=
0
)
{
if
(
errorcount
!=
null
&&
errorcount
!=
0
)
{
...
@@ -197,7 +199,7 @@ public class IndexController extends Controller {
...
@@ -197,7 +199,7 @@ public class IndexController extends Controller {
if
(!
"admin"
.
equals
(
user
.
getUsername
()))
{
if
(!
"admin"
.
equals
(
user
.
getUsername
()))
{
Integer
noLockedRolesCount
=
Db
.
queryInt
(
Db
.
getSql
(
"hasNoLockedRolesCount"
),
user
.
getUsername
());
Integer
noLockedRolesCount
=
Db
.
queryInt
(
Db
.
getSql
(
"hasNoLockedRolesCount"
),
user
.
getUsername
());
boolean
noLockedRolesFlag
=
noLockedRolesCount
==
null
?
false
:
(
noLockedRolesCount
.
intValue
()
>
0
?
true
:
false
);
boolean
noLockedRolesFlag
=
noLockedRolesCount
!=
null
&&
(
noLockedRolesCount
>
0
);
if
(!
noLockedRolesFlag
)
{
if
(!
noLockedRolesFlag
)
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"拥有的角色全部被锁定,不能登录系统了。"
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"拥有的角色全部被锁定,不能登录系统了。"
));
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:该用户拥有的角色全部被锁定"
,
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:该用户拥有的角色全部被锁定"
,
...
@@ -205,7 +207,7 @@ public class IndexController extends Controller {
...
@@ -205,7 +207,7 @@ public class IndexController extends Controller {
return
;
return
;
}
}
}
}
System
system
=
System
.
dao
.
template
(
"getSystemPrivatekey"
,
app
).
findFirst
(
);
System
system
=
InfoSystem
.
getSystem
(
app
);
if
(
system
==
null
)
{
if
(
system
==
null
)
{
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"没有找到应用:"
+
app
));
this
.
renderJson
(
Ret
.
fail
(
"msg"
,
"没有找到应用:"
+
app
));
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:没有找到应用"
+
app
,
logService
.
saveAsLog
(
"login"
,
username
,
JwtInterceptor
.
getIpAddr
(
getRequest
()),
"登录失败,原因:没有找到应用"
+
app
,
...
@@ -273,7 +275,7 @@ public class IndexController extends Controller {
...
@@ -273,7 +275,7 @@ public class IndexController extends Controller {
while
(
userIterator
.
hasNext
())
{
while
(
userIterator
.
hasNext
())
{
nextAttr
=
userIterator
.
next
();
nextAttr
=
userIterator
.
next
();
userInfo
.
put
(
nextAttr
.
getKey
().
trim
().
toLowerCase
(),
nextAttr
.
getValue
());
userInfo
.
put
(
nextAttr
.
getKey
().
trim
().
toLowerCase
(),
nextAttr
.
getValue
());
}
}
try
{
try
{
Redis
.
use
().
hmset
(
username
+
"_INFO"
,
userInfo
);
Redis
.
use
().
hmset
(
username
+
"_INFO"
,
userInfo
);
// 设置过期时间
// 设置过期时间
...
@@ -294,6 +296,7 @@ public class IndexController extends Controller {
...
@@ -294,6 +296,7 @@ public class IndexController extends Controller {
}
}
}
}
/**
/**
* @Description: 验证密码强度
* @Description: 验证密码强度
* @authorAndDate: ChengYaqing create on 2020/10/30 10:38
* @authorAndDate: ChengYaqing create on 2020/10/30 10:38
...
@@ -365,7 +368,7 @@ public class IndexController extends Controller {
...
@@ -365,7 +368,7 @@ public class IndexController extends Controller {
/**
/**
* 通过门户系统单点登录
* 通过门户系统单点登录
*
*
* @author Guo XJ
* @author Guo XJ
* @date 2019-12-13 15:08:00
* @date 2019-12-13 15:08:00
*/
*/
...
@@ -421,7 +424,7 @@ public class IndexController extends Controller {
...
@@ -421,7 +424,7 @@ public class IndexController extends Controller {
/**
/**
* 根据邮政门户传回的code 获取用户信息
* 根据邮政门户传回的code 获取用户信息
*
*
* @Title: getUserInfoForH5
* @Title: getUserInfoForH5
* @author LDC
* @author LDC
* @date 2019-11-19 03:22:34
* @date 2019-11-19 03:22:34
...
@@ -512,10 +515,10 @@ public class IndexController extends Controller {
...
@@ -512,10 +515,10 @@ public class IndexController extends Controller {
}
}
/**
/**
* 退出系统,清空Redis 中的用户信息
* 退出系统,清空Redis 中的用户信息
* @Time:2020年7月6日 - 下午5:19:58
* @Time:2020年7月6日 - 下午5:19:58
* @author:李德才
* @author:李德才
* @param:
* @param:
* @return: void
* @return: void
* @throws
* @throws
*/
*/
...
...
src/main/java/com/archser/aserver/util/redis/InfoSystem.java
0 → 100644
View file @
4f8c9a93
package
com
.
archser
.
aserver
.
util
.
redis
;
import
com.alibaba.fastjson.JSONObject
;
import
com.archser.aserver.model.System
;
/**
* 获取系统信息 20201126 lidecai
*/
public
class
InfoSystem
{
private
static
final
String
_INFO
=
"_INFO"
;
private
static
final
String
SYSTEM
=
"SYSTEM_"
;
/**
* 根据名称获取系统信息
*
* @param systemName
* @return
*/
public
static
System
getSystem
(
String
systemName
)
{
Object
object
=
RedisConvert
.
getObject
(
SYSTEM
+
systemName
+
_INFO
);
System
system
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
object
),
System
.
class
);
if
(
system
==
null
||
system
.
getKeyid
()
==
null
)
{
return
getSystemByDatabase
(
systemName
);
}
return
system
;
}
/**
* 备用方案,从数据库获取
*
* @param systemName
* @return
*/
public
static
System
getSystemByDatabase
(
String
systemName
)
{
System
system
=
System
.
dao
.
template
(
"getSystemPrivatekey"
,
systemName
).
findFirst
();
RedisConvert
.
saveObject
(
SYSTEM
+
systemName
+
_INFO
,
system
);
return
system
;
}
}
src/main/java/com/archser/aserver/util/redis/InfoUser.java
0 → 100644
View file @
4f8c9a93
package
com
.
archser
.
aserver
.
util
.
redis
;
import
com.alibaba.fastjson.JSONObject
;
import
com.archser.aserver.model.User
;
import
java.io.Serializable
;
public
class
InfoUser
implements
Serializable
{
private
static
final
String
_INFO
=
"_INFO"
;
private
static
final
String
USER
=
"USER_"
;
/**
* 获取用户信息
*
* @param userName
* @return
*/
public
static
User
getUser
(
String
userName
)
{
Object
object
=
RedisConvert
.
getObject
(
USER
+
userName
+
_INFO
);
User
user
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
object
),
User
.
class
);
if
(
user
.
getId
()
==
null
)
{
return
getUserByDataBase
(
userName
);
}
return
user
;
}
/**
* 备用方案,从数据库获取用户信息
*
* @param userName
* @return
*/
private
static
User
getUserByDataBase
(
String
userName
)
{
User
user
=
User
.
dao
.
template
(
"getUser"
,
userName
).
findFirst
();
RedisConvert
.
saveObject
(
USER
+
userName
+
_INFO
,
user
);
return
user
;
}
}
src/main/java/com/archser/aserver/util/redis/RedisConvert.java
0 → 100644
View file @
4f8c9a93
package
com
.
archser
.
aserver
.
util
.
redis
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jfinal.plugin.redis.Redis
;
import
java.util.Map
;
/**
* Redis常用工具类 20201126 lidecai
*/
public
class
RedisConvert
{
/**
* 单独存储对象属性
*
* @param key
* @param attribute
* @param value
*/
public
static
void
saveObjectAttr
(
String
key
,
String
attribute
,
String
value
)
{
Redis
.
use
().
hset
(
key
,
attribute
,
value
);
}
/**
* 单独获取对象属性
*
* @param key
* @param attribute
* @return
*/
public
static
Object
getObjectAttr
(
String
key
,
String
attribute
)
{
return
Redis
.
use
().
hget
(
key
,
attribute
);
}
/**
* 存储整个对象
*
* @param key
* @param object
*/
public
static
void
saveObject
(
String
key
,
Object
object
)
{
Redis
.
use
().
hmset
(
key
,
objectToMap
(
object
));
}
/**
* 获取整个对象
*
* @param key
* @return
*/
public
static
Object
getObject
(
String
key
)
{
return
Redis
.
use
().
hgetAll
(
key
);
}
/**
* 反射获取对象全部属性
*
* @param obj
* @return
*/
public
static
Map
objectToMap
(
Object
obj
)
{
return
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
obj
),
Map
.
class
);
}
}
src/main/resources/config-pro.properties
View file @
4f8c9a93
...
@@ -4,7 +4,7 @@ jdbcUrl=jdbc:dm://39.104.21.218:5236
...
@@ -4,7 +4,7 @@ jdbcUrl=jdbc:dm://39.104.21.218:5236
jdbc.driver
=
dm.jdbc.driver.DmDriver
jdbc.driver
=
dm.jdbc.driver.DmDriver
user
=
archser_hywdtest
user
=
archser_hywdtest
password
=
archser_hywdtest
password
=
archser_hywdtest
basic.url
=
http://39.104.
174.12
:11028
basic.url
=
http://39.104.
21.218
:11028
devMode
=
true
devMode
=
true
engineDevMode
=
true
engineDevMode
=
true
...
...
src/main/resources/oracle.sql
View file @
4f8c9a93
...
@@ -87,7 +87,7 @@ select * from AS_USER where "USERNAME"=#para(0)
...
@@ -87,7 +87,7 @@ select * from AS_USER where "USERNAME"=#para(0)
###
获取指定系统私钥
###
获取指定系统私钥
#
sql
(
"getSystemPrivatekey"
)
#
sql
(
"getSystemPrivatekey"
)
select
"TYPE"
,
KEYID
,
PRIVATEKEY
,
URL
,
TITLE
from
AS_SYSTEM
where
"NAME"
=#
para
(
0
)
and
rownum
=
1
select
*
from
AS_SYSTEM
where
"NAME"
=#
para
(
0
)
and
rownum
=
1
#
end
#
end
###
获取所有菜单
###
获取所有菜单
...
...
src/test/com/archser/PublicDataSource.java
0 → 100644
View file @
4f8c9a93
package
com
.
archser
;
import
com.archser.aserver.model._MappingKit
;
import
com.jfinal.kit.Prop
;
import
com.jfinal.kit.PropKit
;
import
com.jfinal.plugin.activerecord.ActiveRecordPlugin
;
import
com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory
;
import
com.jfinal.plugin.activerecord.dialect.OracleDialect
;
import
com.jfinal.plugin.druid.DruidPlugin
;
import
com.jfinal.plugin.redis.RedisPlugin
;
public
class
PublicDataSource
{
static
{
// 初始化配置文件
Prop
use
=
PropKit
.
use
(
"config-pro.properties"
);
// 初始化数据库
DruidPlugin
dbPlugin
=
new
DruidPlugin
(
use
.
get
(
"jdbcUrl"
),
use
.
get
(
"user"
),
use
.
get
(
"password"
),
use
.
get
(
"jdbc.driver"
));
dbPlugin
.
start
();
// 初始化 ActiveRecord
ActiveRecordPlugin
arp
=
new
ActiveRecordPlugin
(
dbPlugin
);
arp
.
setShowSql
(
use
.
getBoolean
(
"devMode"
));
arp
.
setContainerFactory
(
new
CaseInsensitiveContainerFactory
(
true
));
arp
.
setDialect
(
new
OracleDialect
());
// 添加映射
_MappingKit
.
mapping
(
arp
);
// 初始化Redis
RedisPlugin
redis
=
new
RedisPlugin
(
"redis"
,
use
.
get
(
"redis.url"
),
use
.
get
(
"redis.password"
));
redis
.
start
();
}
}
src/test/com/archser/redis/RedisDataFormat.java
0 → 100644
View file @
4f8c9a93
package
com
.
archser
.
redis
;
import
com.alibaba.fastjson.JSONObject
;
import
com.archser.PublicDataSource
;
import
com.archser.aserver.model.User
;
import
com.jfinal.plugin.redis.Redis
;
import
java.util.Map
;
public
class
RedisDataFormat
{
static
{
new
PublicDataSource
();
}
public
static
void
main
(
String
[]
args
)
{
Redis
.
use
().
hset
(
"USER_INFO"
,
"ID"
,
"1"
);
Redis
.
use
().
hset
(
"USER_INFO"
,
"USERNAME"
,
"DAGLY"
);
Redis
.
use
().
hset
(
"USER_INFO"
,
"PASSWORD"
,
"Admin@123456"
);
Redis
.
use
().
hset
(
"USER_INFO"
,
"NAME"
,
"档案管理员"
);
// 测试正常获取
System
.
err
.
println
(
Redis
.
use
().
hget
(
"USER_INFO"
,
"USERNAME"
).
toString
());
// 测试中文乱码
System
.
err
.
println
(
Redis
.
use
().
hget
(
"USER_INFO"
,
"NAME"
).
toString
());
// 测试获取整个对象
Map
user_info
=
Redis
.
use
().
hgetAll
(
"USER_INFO"
);
User
user
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
user_info
),
User
.
class
);
System
.
err
.
println
(
user
.
toString
());
}
}
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