切换导航条
此项目
正在载入...
登录
朱兆平
/
spring cloud基础开发框架
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
1
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
shenhailong
4 years ago
提交
71323889182c210a5f72a595e47864092c859800
1 个父辈
5f7bd79a
完善卡口的统一认证
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
47 行增加
和
28 行删除
config/application.yml
src/main/java/com/tianbo/warehouse/bean/AuthSuccessResponse.java
src/main/java/com/tianbo/warehouse/controller/AnonymousController.java
src/main/java/com/tianbo/warehouse/security/handel/kakologin/MyLoginAuthenticationProcessFilter.java
src/main/java/com/tianbo/warehouse/util/KIAM/SM3EncryptUtil.java
src/main/resources/mapping/KakoUserMapper.xml
config/application.yml
查看文件 @
7132388
...
...
@@ -159,3 +159,7 @@ jwt:
info
:
version
:
2.0
description
:
"
具有公司及部门管理级别的用户管理中心"
ger
:
req-url
:
"
http://10.5.14.103:27080/sso/p3/serviceValidate?format=json&service="
res-url
:
"
http://10.50.3.73:8880/%23/ssologin"
# res-url: "http://10.50.7.70:9909/%23/ssologin"
...
...
src/main/java/com/tianbo/warehouse/bean/AuthSuccessResponse.java
查看文件 @
7132388
package
com
.
tianbo
.
warehouse
.
bean
;
import
lombok.Data
;
import
org.springframework.security.core.Authentication
;
import
java.io.Serializable
;
import
java.util.Map
;
...
...
src/main/java/com/tianbo/warehouse/controller/AnonymousController.java
查看文件 @
7132388
...
...
@@ -43,6 +43,12 @@ public class AnonymousController {
@Value
(
"${jwt.max-alive}"
)
protected
Integer
jwtMaxAlive
;
@Value
(
"${ger.req-url}"
)
private
String
requestUrl
;
@Value
(
"${ger.res-url}"
)
private
String
responseUrl
;
@Autowired
RoleService
roleService
;
...
...
@@ -131,7 +137,7 @@ public class AnonymousController {
log
.
info
(
"票据接受:{}"
,
ticket
);
if
(!
StringUtils
.
isEmpty
(
ticket
)){
log
.
info
(
"开始验证票据"
);
String
result
=
HttpClientUtil
.
httpGet
(
"http://10.5.14.103:27080/sso/p3/serviceValidate?format=json&service="
+
"http://10.50.7.70:9909/%23/ssologin"
+
"&ticket="
+
ticket
,
"UTF-8"
);
String
result
=
HttpClientUtil
.
httpGet
(
requestUrl
+
responseUrl
+
"&ticket="
+
ticket
,
"UTF-8"
);
log
.
info
(
"验证票据返回值:{}"
,
result
);
Map
<
String
,
Object
>
userInfo
=
resolveUserInfo
(
result
);
if
(
userInfo
!=
null
){
...
...
@@ -139,23 +145,26 @@ public class AnonymousController {
// KakoUser user = kakoUserMapper.findLonginName(userInfo.get("loginName").toString(), userInfo.get("userId").toString());
KakoUser
user
=
kakoUserService
.
loadByUsername
(
userInfo
.
get
(
"loginName"
).
toString
());
log
.
info
(
"查询用户信息:{}"
,
user
);
//返回前端登陆成功后的用户信息
KakoUser
loginedUser
=
new
KakoUser
();
loginedUser
.
setLoginName
(
user
.
getUsername
());
loginedUser
.
setId
(
user
.
getId
());
loginedUser
.
setName
(
user
.
getName
());
loginedUser
.
setRoles
(
user
.
getRoles
());
//设置用户的TOKEN的有效时间,时间配置在配置文件中设置
String
jwtToken
=
JwtTokenUtil
.
generateToken
(
loginedUser
.
getUsername
(),
jwtMaxAlive
);
log
.
info
(
"设置用户token:{}"
,
jwtToken
);
loginedUser
.
setToken
(
jwtToken
);
//这里将登录成功的[user]对象数据写入redis缓存,KEY为token value为user的JSON对象
String
json
=
JSON
.
toJSONString
(
user
);
boolean
set
=
redisUtils
.
set
(
jwtToken
,
json
,
3600
*
24
*
7
);
log
.
info
(
"用户信息存入redis:{}"
,
set
);
Map
<
String
,
Object
>
menuMap
=
permissionService
.
getUserMenusKako
(
user
.
getId
());
//返回用户信息和用户可访问的目录列表
return
new
AuthSuccessResponse
(
loginedUser
,
menuMap
);
if
(
user
!=
null
){
//返回前端登陆成功后的用户信息
KakoUser
loginedUser
=
new
KakoUser
();
loginedUser
.
setLoginName
(
user
.
getUsername
());
loginedUser
.
setId
(
user
.
getId
());
loginedUser
.
setName
(
user
.
getName
());
loginedUser
.
setRoles
(
user
.
getRoles
());
//设置用户的TOKEN的有效时间,时间配置在配置文件中设置
String
jwtToken
=
JwtTokenUtil
.
generateToken
(
loginedUser
.
getUsername
(),
jwtMaxAlive
);
log
.
info
(
"设置用户token:{}"
,
jwtToken
);
loginedUser
.
setToken
(
jwtToken
);
//这里将登录成功的[user]对象数据写入redis缓存,KEY为token value为user的JSON对象
String
json
=
JSON
.
toJSONString
(
user
);
boolean
set
=
redisUtils
.
set
(
jwtToken
,
json
,
3600
*
24
*
7
);
log
.
info
(
"用户信息存入redis:{}"
,
set
);
Map
<
String
,
Object
>
menuMap
=
permissionService
.
getUserMenusKako
(
user
.
getId
());
//返回用户信息和用户可访问的目录列表
return
new
AuthSuccessResponse
(
loginedUser
,
menuMap
);
}
return
null
;
}
return
null
;
}
else
{
...
...
src/main/java/com/tianbo/warehouse/security/handel/kakologin/MyLoginAuthenticationProcessFilter.java
查看文件 @
7132388
...
...
@@ -65,12 +65,16 @@ public class MyLoginAuthenticationProcessFilter extends AbstractAuthenticationPr
authRequest
=
new
UsernamePasswordAuthenticationToken
(
loginUserName
,
loginUserPass
,
null
);
authRequest
.
setDetails
(
authenticationDetailsSource
.
buildDetails
(
request
));
}
else
{
redisUtils
.
del
(
"verifyToken_"
+
verifyToken
);
throw
new
BadCredentialsException
(
"验证码错误!"
);
}
}
catch
(
BadCredentialsException
e
){
e
.
printStackTrace
();
throw
new
PreAuthenticatedCredentialsNotFoundException
(
e
.
getMessage
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
AuthenticationServiceException
(
e
.
getMessage
());
}
return
this
.
getAuthenticationManager
().
authenticate
(
authRequest
);
}
...
...
src/main/java/com/tianbo/warehouse/util/KIAM/SM3EncryptUtil.java
查看文件 @
7132388
...
...
@@ -37,15 +37,15 @@ public class SM3EncryptUtil {
return
str
.
toLowerCase
();
}
// public static void main(String[] args) {
// Security.addProvider(new BouncyCastleProvider());
// try {
// String pwdDigest = passwordSm3("vmvnv1v2VV.");
// System.out.println(pwdDigest);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public
static
void
main
(
String
[]
args
)
{
Security
.
addProvider
(
new
BouncyCastleProvider
());
try
{
String
pwdDigest
=
passwordSm3
(
"vmvnv1v2VV."
);
System
.
out
.
println
(
pwdDigest
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 密码SM3加密
...
...
src/main/resources/mapping/KakoUserMapper.xml
查看文件 @
7132388
...
...
@@ -213,6 +213,9 @@
<if
test=
"delFlag != null"
>
#{delFlag,jdbcType=CHAR},
</if>
<if
test=
"userSyncId != null"
>
#{userSyncId,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.tianbo.warehouse.model.KakoUser"
>
...
...
请
注册
或
登录
后发表评论