Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nouiWithSpringMVC
Overview
Overview
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
gechengyang
nouiWithSpringMVC
Commits
d2e57ae3
Commit
d2e57ae3
authored
Aug 05, 2020
by
胡文明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
适应人行电证登录
parent
8ff5dd8b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
82 additions
and
13 deletions
+82
-13
ErrorCode.java
...ava/org/sss/presentation/noui/api/response/ErrorCode.java
+47
-0
Constants.java
...main/java/org/sss/presentation/noui/common/Constants.java
+1
-0
LoginController.java
...org/sss/presentation/noui/controller/LoginController.java
+26
-11
TokenInterceptor.java
.../java/org/sss/presentation/noui/jwt/TokenInterceptor.java
+8
-2
No files found.
src/main/java/org/sss/presentation/noui/api/response/ErrorCode.java
0 → 100644
View file @
d2e57ae3
package
org
.
sss
.
presentation
.
noui
.
api
.
response
;
/**
* <br/>created in 2020/6/19 14:56
*
* @author huwenming_saw
*/
public
enum
ErrorCode
{
SYSTEM_ERROR
(
"R9999"
,
"系统错误,请稍后重试"
),
LOGIN_FIRST_LOGIN
(
"R9996"
,
"初次登陆需修改密码"
),
LOGIN_PWD_AME_INTERVAL
(
"R9995"
,
"已长时间未修改密码,请修改密码"
),
LOGIN_PWD_CHECK
(
"R9994"
,
"连续多次错误密码,用户已锁定,请联系管理员!"
),
LOGIN_PARAMETER_CHECK
(
"R9993"
,
"登陆信息不完整,用户名或密码为空"
),
LOGIN_NON_USR
(
"R9992"
,
"系统无此用户"
),
LOGIN_LOCK_USR
(
"R9991"
,
"用户已被锁定"
),
LOGIN_EXPRIED_USR
(
"R9990"
,
"用户已被注销"
),
LOGIN_PWD_ERROR
(
"R9989"
,
"密码错误!"
),
LOGIN_DN_ERROR
(
"R9988"
,
"DN码错误!"
),
LOGIN_STATE_ABNORMAL_ERROR
(
"R9987"
,
"无效用户"
);
private
final
String
code
;
public
String
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
private
final
String
message
;
ErrorCode
(
String
code
,
String
message
){
this
.
code
=
code
;
this
.
message
=
message
;
}
@Override
public
String
toString
()
{
return
"ErrorCode{"
+
"code='"
+
code
+
'\''
+
", message='"
+
message
+
'\''
+
'}'
;
}
}
src/main/java/org/sss/presentation/noui/common/Constants.java
View file @
d2e57ae3
...
...
@@ -8,6 +8,7 @@ public class Constants {
public
final
static
String
USERNAME
=
"username"
;
public
final
static
String
PASSWORD
=
"password"
;
public
final
static
String
DNCODE
=
"dncode"
;
public
final
static
String
DISPLAY_FILE_NAME
=
"fileName"
;
...
...
src/main/java/org/sss/presentation/noui/controller/LoginController.java
View file @
d2e57ae3
package
org
.
sss
.
presentation
.
noui
.
controller
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
...
...
@@ -23,6 +18,7 @@ import org.sss.common.model.IMenuItem;
import
org.sss.presentation.noui.api.exception.NoUiException
;
import
org.sss.presentation.noui.api.model.Menu
;
import
org.sss.presentation.noui.api.request.NoUiRequest
;
import
org.sss.presentation.noui.api.response.ErrorCode
;
import
org.sss.presentation.noui.api.response.ErrorCodes
;
import
org.sss.presentation.noui.api.response.ResultUtil
;
import
org.sss.presentation.noui.common.Constants
;
...
...
@@ -39,6 +35,7 @@ import org.sss.presentation.noui.util.StringUtil;
@Controller
public
class
LoginController
{
private
static
final
Log
log
=
LogFactory
.
getLog
(
LoginController
.
class
);
public
static
final
String
ERROR
=
"error"
;
@ResponseBody
@RequestMapping
(
value
=
"/login"
,
method
=
RequestMethod
.
POST
)
...
...
@@ -46,11 +43,13 @@ public class LoginController {
// TODO???
//System.out.println(dataMap);
NoUiRequest
noUiRequest
=
new
NoUiRequest
(
request
,
""
,
dataMap
);
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
Map
<
String
,
Object
>
map
=
new
HashMap
<
>();
//此map会存储返回错误码
String
userId
=
noUiRequest
.
getDataMap
().
get
(
Constants
.
USERNAME
).
toString
();
String
password
=
noUiRequest
.
getDataMap
().
get
(
Constants
.
PASSWORD
).
toString
();
String
dncode
=
noUiRequest
.
getDataMap
().
get
(
Constants
.
DNCODE
).
toString
();
map
.
put
(
"j_username"
,
userId
);
map
.
put
(
"j_password"
,
password
);
map
.
put
(
"j_dncode"
,
dncode
);
NoUiContext
context
=
NoUiContextManager
.
createNoUiContext
(
noUiRequest
);
try
{
if
(
context
.
getSession
().
login
(
map
))
{
...
...
@@ -82,12 +81,25 @@ public class LoginController {
RedisLoginInfo
redisLoginInfo
=
new
RedisLoginInfo
(
userId
,
token
,
NumericUtil
.
sessionTimeOut
(),
sysmodBytes
,
noUiRequest
.
getTerminalType
());
RedisUtil
.
set
(
StringUtil
.
userUniqueId
(
noUiRequest
),
redisLoginInfo
);
return
ResultUtil
.
result
(
ErrorCodes
.
SUCCESS
,
ErrorCodes
.
SUCCESS_INFO
,
retDatamap
);
//解决初次登陆,超期限登陆
final
Object
o
=
map
.
get
(
ERROR
);
if
(
Objects
.
isNull
(
o
))
{
return
ResultUtil
.
result
(
ErrorCodes
.
SUCCESS
,
ErrorCodes
.
SUCCESS_INFO
,
retDatamap
);
}
else
{
ErrorCode
errorCode
=
(
ErrorCode
)
o
;
log
.
error
(
errorCode
);
return
ResultUtil
.
result
(
errorCode
.
getCode
(),
errorCode
.
getMessage
(),
retDatamap
);
}
}
else
{
final
ErrorCode
errorCode
=
(
ErrorCode
)
map
.
get
(
ERROR
);
log
.
error
(
errorCode
);
return
ResultUtil
.
result
(
errorCode
.
getCode
(),
errorCode
.
getMessage
(),
null
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"Login command error"
,
e
);
//throw new NoUiException("Login command error", e);
return
ResultUtil
.
result
(
ErrorCodes
.
ERROR
,
"login failed with exception"
,
null
);
// return ResultUtil.result(ErrorCodes.ERROR, "login failed with exception", null);
return
ResultUtil
.
result
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
ErrorCode
.
SYSTEM_ERROR
.
getMessage
(),
null
);
}
finally
{
if
(
context
!=
null
)
...
...
@@ -96,10 +108,13 @@ public class LoginController {
context
.
dispose
();
}
}
log
.
debug
(
"Login command is finished"
);
return
ResultUtil
.
result
(
ErrorCodes
.
ERROR
,
"login failed"
,
null
);
//
log.debug("Login command is finished");
//
return ResultUtil.result(ErrorCodes.ERROR, "login failed", null);
}
/*
* private void getMenu(IMenuItem menuItem, List<Map<String, String>>
* menuList) { Iterator<IMenuItem> iterator = menuItem.iterator(); while
...
...
src/main/java/org/sss/presentation/noui/jwt/TokenInterceptor.java
View file @
d2e57ae3
...
...
@@ -47,6 +47,12 @@ public class TokenInterceptor implements HandlerInterceptor {
return
false
;
}
//如果为后台直接调用交易,则直接跳过token验证,无需redis缓存
if
(
token
.
startsWith
(
Constants
.
BACKGROUND_FLAG
))
{
return
true
;
}
JwtLogin
login
=
JWT
.
unsign
(
token
,
JwtLogin
.
class
);
if
(
login
==
null
||
(!
userId
.
equals
((
login
.
getUserId
()))))
{
Result
rt
=
new
Result
(
ErrorCodes
.
LOGIN_TOKEN_CHECKERROR
,
"用户token或ID验证不通过"
,
null
);
...
...
@@ -60,8 +66,8 @@ public class TokenInterceptor implements HandlerInterceptor {
responseMessage
(
response
,
response
.
getWriter
(),
rt
);
return
false
;
}
//验证token是否一致
如果为后台直接调用交易,则直接跳过token验证
if
(
!
token
.
startsWith
(
Constants
.
BACKGROUND_FLAG
)
&&
!
token
.
equals
(
redisLoginInfo
.
getToken
())){
//验证token是否一致
if
(!
token
.
equals
(
redisLoginInfo
.
getToken
())){
Result
rt
=
new
Result
(
ErrorCodes
.
LOGIN_TOKEN_CHECKERROR
,
"token失效,该用户被强迫下线"
,
null
);
responseMessage
(
response
,
response
.
getWriter
(),
rt
);
return
false
;
...
...
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