Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
290ef66d
提交
290ef66d
authored
1月 05, 2024
作者:
obcy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加用户校验和获取用户列表接口
上级
28edefa4
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
155 行增加
和
14 行删除
+155
-14
KbAuthorizedUserController.java
.../zzsn/knowbase/controller/KbAuthorizedUserController.java
+17
-0
KbAuthorizedUser.java
src/main/java/com/zzsn/knowbase/entity/KbAuthorizedUser.java
+6
-0
KbRole.java
src/main/java/com/zzsn/knowbase/entity/KbRole.java
+8
-6
KbAuthorizedUserMapper.java
...java/com/zzsn/knowbase/mapper/KbAuthorizedUserMapper.java
+11
-1
KbAuthorizedUserService.java
...va/com/zzsn/knowbase/service/KbAuthorizedUserService.java
+4
-0
KbAuthorizedUserServiceImpl.java
...sn/knowbase/service/impl/KbAuthorizedUserServiceImpl.java
+83
-7
UserInfoVo.java
src/main/java/com/zzsn/knowbase/vo/UserInfoVo.java
+21
-0
application.yml
src/main/resources/application.yml
+5
-0
没有找到文件。
src/main/java/com/zzsn/knowbase/controller/KbAuthorizedUserController.java
浏览文件 @
290ef66d
...
@@ -7,6 +7,8 @@ import com.zzsn.knowbase.vo.Result;
...
@@ -7,6 +7,8 @@ import com.zzsn.knowbase.vo.Result;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
/**
/**
* <p>
* <p>
* 前端控制器
* 前端控制器
...
@@ -63,4 +65,19 @@ public class KbAuthorizedUserController {
...
@@ -63,4 +65,19 @@ public class KbAuthorizedUserController {
return
authorizedUserService
.
lists
(
roleId
,
username
,
name
,
orgId
,
orgName
,
pageNum
,
PageSize
);
return
authorizedUserService
.
lists
(
roleId
,
username
,
name
,
orgId
,
orgName
,
pageNum
,
PageSize
);
}
}
/**校验用户是否可用,并查询用户信息*/
@GetMapping
(
"/userPermission"
)
public
Result
<?>
userPermission
(
HttpServletRequest
httpServletRequest
){
String
token
=
httpServletRequest
.
getHeader
(
"X-Access-Token"
);
return
authorizedUserService
.
userPermission
(
token
);
}
/**校验用户是否可用,并查询用户信息*/
@GetMapping
(
"/thirdpartyUsers"
)
public
Result
<?>
thirdpartyUsers
(
HttpServletRequest
httpServletRequest
){
String
token
=
httpServletRequest
.
getHeader
(
"X-Access-Token"
);
return
authorizedUserService
.
thirdpartyUsers
(
token
);
}
}
}
src/main/java/com/zzsn/knowbase/entity/KbAuthorizedUser.java
浏览文件 @
290ef66d
...
@@ -100,5 +100,11 @@ public class KbAuthorizedUser extends Model<KbAuthorizedUser> {
...
@@ -100,5 +100,11 @@ public class KbAuthorizedUser extends Model<KbAuthorizedUser> {
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
private
String
roleId
;
private
String
roleId
;
/**
* 角色名称
*/
@TableField
(
exist
=
false
)
private
String
roleName
;
}
}
src/main/java/com/zzsn/knowbase/entity/KbRole.java
浏览文件 @
290ef66d
package
com
.
zzsn
.
knowbase
.
entity
;
package
com
.
zzsn
.
knowbase
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* <p>
* <p>
*
*
...
@@ -70,6 +71,7 @@ public class KbRole extends Model<KbRole> {
...
@@ -70,6 +71,7 @@ public class KbRole extends Model<KbRole> {
@TableField
(
"update_time"
)
@TableField
(
"update_time"
)
private
Date
updateTime
;
private
Date
updateTime
;
@TableField
(
exist
=
false
)
private
List
<
KbPermissions
>
permissions
;
}
}
src/main/java/com/zzsn/knowbase/mapper/KbAuthorizedUserMapper.java
浏览文件 @
290ef66d
...
@@ -21,11 +21,21 @@ import org.apache.ibatis.annotations.Select;
...
@@ -21,11 +21,21 @@ import org.apache.ibatis.annotations.Select;
@Mapper
@Mapper
public
interface
KbAuthorizedUserMapper
extends
BaseMapper
<
KbAuthorizedUser
>
{
public
interface
KbAuthorizedUserMapper
extends
BaseMapper
<
KbAuthorizedUser
>
{
@Select
(
"SELECT a.*,GROUP_CONCAT(b.role_id SEPARATOR ',') as roleId FROM kb_authorized_user a "
+
@Select
(
"SELECT a.*,GROUP_CONCAT(b.role_id SEPARATOR ',') as roleId
,GROUP_CONCAT(c.role_name SEPARATOR ',') as roleName
FROM kb_authorized_user a "
+
"LEFT JOIN kb_user_role_map b ON a.id = b.user_id "
+
"LEFT JOIN kb_user_role_map b ON a.id = b.user_id "
+
"LEFT JOIN kb_role c ON c.id = b.role_id "
+
"${sql}"
+
"${sql}"
+
"${ew.customSqlSegment}"
+
"${ew.customSqlSegment}"
+
"GROUP BY a.id"
"GROUP BY a.id"
)
)
IPage
<
KbAuthorizedUser
>
page
(
Page
<
KbAuthorizedUser
>
page
,
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
KbAuthorizedUser
>
query
,
String
sql
);
IPage
<
KbAuthorizedUser
>
page
(
Page
<
KbAuthorizedUser
>
page
,
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
KbAuthorizedUser
>
query
,
String
sql
);
@Select
(
"SELECT a.*,GROUP_CONCAT(b.role_id SEPARATOR ',') as roleId,GROUP_CONCAT(c.role_name SEPARATOR ',') as roleName FROM kb_authorized_user a "
+
"LEFT JOIN kb_user_role_map b ON a.id = b.user_id "
+
"LEFT JOIN kb_role c ON c.id = b.role_id "
+
"${ew.customSqlSegment}"
+
"GROUP BY a.id"
)
KbAuthorizedUser
getOne
(
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
KbAuthorizedUser
>
query
);
}
}
src/main/java/com/zzsn/knowbase/service/KbAuthorizedUserService.java
浏览文件 @
290ef66d
...
@@ -19,4 +19,8 @@ public interface KbAuthorizedUserService extends IService<KbAuthorizedUser> {
...
@@ -19,4 +19,8 @@ public interface KbAuthorizedUserService extends IService<KbAuthorizedUser> {
Result
<?>
edit
(
KbAuthorizedUser
authorizedUser
);
Result
<?>
edit
(
KbAuthorizedUser
authorizedUser
);
Result
<?>
lists
(
String
roleId
,
String
username
,
String
name
,
String
orgId
,
String
orgName
,
Integer
pageNum
,
Integer
pageSize
);
Result
<?>
lists
(
String
roleId
,
String
username
,
String
name
,
String
orgId
,
String
orgName
,
Integer
pageNum
,
Integer
pageSize
);
Result
<?>
userPermission
(
String
token
);
Result
<?>
thirdpartyUsers
(
String
token
);
}
}
src/main/java/com/zzsn/knowbase/service/impl/KbAuthorizedUserServiceImpl.java
浏览文件 @
290ef66d
package
com
.
zzsn
.
knowbase
.
service
.
impl
;
package
com
.
zzsn
.
knowbase
.
service
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.zzsn.knowbase.entity.KbAuthorizedUser
;
import
com.zzsn.knowbase.entity.*
;
import
com.zzsn.knowbase.entity.KbUserRoleMap
;
import
com.zzsn.knowbase.mapper.KbAuthorizedUserMapper
;
import
com.zzsn.knowbase.mapper.KbAuthorizedUserMapper
;
import
com.zzsn.knowbase.service.KbAuthorizedUserService
;
import
com.zzsn.knowbase.service.*
;
import
com.zzsn.knowbase.service.KbUserRoleMapService
;
import
com.zzsn.knowbase.vo.Result
;
import
com.zzsn.knowbase.vo.Result
;
import
com.zzsn.knowbase.vo.UserInfoVo
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Arrays
;
import
java.util.stream.Collectors
;
import
java.util.List
;
/**
/**
* <p>
* <p>
...
@@ -36,12 +38,31 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
...
@@ -36,12 +38,31 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
KbUserRoleMapService
kbUserRoleMapService
;
KbUserRoleMapService
kbUserRoleMapService
;
@Autowired
@Autowired
KbAuthorizedUserMapper
authorizedUserMapper
;
KbAuthorizedUserMapper
authorizedUserMapper
;
@Autowired
KbRoleService
roleService
;
@Autowired
KbPermissionsService
permissionsService
;
@Autowired
KbRolePermissionMapService
rolePermissionMapService
;
/**
* 校验第三方用户接口地址
*/
@Value
(
"${know.thirdpartyurl.checkuserurl:}"
)
private
String
checkuserurl
;
/**
* 获取第三方用户接口
*/
@Value
(
"${know.thirdpartyurl.getusersurl:}"
)
private
String
getusersurl
;
@Override
@Override
@Transactional
@Transactional
public
Result
<?>
add
(
KbAuthorizedUser
authorizedUser
)
{
public
Result
<?>
add
(
KbAuthorizedUser
authorizedUser
)
{
/**保存授权用户*/
/**保存授权用户*/
authorizedUser
.
setStatus
(
"0"
);
authorizedUser
.
setStatus
(
"0"
);
authorizedUser
.
setCreateTime
(
new
Date
());
super
.
save
(
authorizedUser
);
super
.
save
(
authorizedUser
);
/**插入用户角色关系表*/
/**插入用户角色关系表*/
...
@@ -64,6 +85,7 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
...
@@ -64,6 +85,7 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
@Transactional
@Transactional
public
Result
<?>
edit
(
KbAuthorizedUser
authorizedUser
)
{
public
Result
<?>
edit
(
KbAuthorizedUser
authorizedUser
)
{
String
newRole
=
authorizedUser
.
getRoleId
();
String
newRole
=
authorizedUser
.
getRoleId
();
authorizedUser
.
setUpdateTime
(
new
Date
());
super
.
updateById
(
authorizedUser
);
super
.
updateById
(
authorizedUser
);
/**修改用户角色关系表*/
/**修改用户角色关系表*/
if
(
StringUtils
.
isNotBlank
(
newRole
)){
if
(
StringUtils
.
isNotBlank
(
newRole
)){
...
@@ -99,4 +121,58 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
...
@@ -99,4 +121,58 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
IPage
<
KbAuthorizedUser
>
res
=
authorizedUserMapper
.
page
(
page
,
query
,
sql
);
IPage
<
KbAuthorizedUser
>
res
=
authorizedUserMapper
.
page
(
page
,
query
,
sql
);
return
Result
.
OK
(
res
);
return
Result
.
OK
(
res
);
}
}
@Override
public
Result
<?>
userPermission
(
String
token
)
{
/**调用第三方系统校验接口*/
Result
res
=
doCheck
(
token
);
boolean
success
=
res
.
isSuccess
();
if
(
200
==
res
.
getCode
()
&&
success
){
/**校验成功,获取到第三方用户信息*/
KbAuthorizedUser
bean
=
JSONUtil
.
toBean
(
JSONUtil
.
toJsonStr
(
res
.
getResult
()),
KbAuthorizedUser
.
class
);
/**校验第三方用户是否进行了授权*/
List
<
KbAuthorizedUser
>
list
=
super
.
list
(
Wrappers
.<
KbAuthorizedUser
>
lambdaQuery
().
eq
(
KbAuthorizedUser:
:
getUserId
,
bean
.
getUserId
()));
if
(
CollectionUtil
.
isEmpty
(
list
)){
return
Result
.
error
(
"该用户还未进行授权访问,请联系管理员进行授权"
);
}
/**查询授权用户的角色和权限*/
UserInfoVo
userInfoVo
=
new
UserInfoVo
();
QueryWrapper
<
KbAuthorizedUser
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"a.user_id"
,
bean
.
getUserId
());
KbAuthorizedUser
one
=
authorizedUserMapper
.
getOne
(
query
);
List
<
KbRole
>
kbRoles
=
roleService
.
listByIds
(
Arrays
.
asList
(
one
.
getRoleId
().
split
(
","
)));
List
<
KbRolePermissionMap
>
permissionMaps
=
rolePermissionMapService
.
list
(
Wrappers
.<
KbRolePermissionMap
>
lambdaQuery
().
in
(
KbRolePermissionMap:
:
getRoleId
,
Arrays
.
asList
(
one
.
getRoleId
().
split
(
","
))));
Map
<
Long
,
List
<
KbRolePermissionMap
>>
collect
=
permissionMaps
.
stream
().
collect
(
Collectors
.
groupingBy
(
KbRolePermissionMap:
:
getRoleId
));
kbRoles
.
forEach
(
e
->{
List
<
Long
>
longs
=
CollectionUtil
.
isEmpty
(
collect
.
get
(
e
.
getId
()))
?
null
:
collect
.
get
(
e
.
getId
()).
stream
().
map
(
KbRolePermissionMap:
:
getPermissionId
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtil
.
isNotEmpty
(
longs
))
{
e
.
setPermissions
(
permissionsService
.
list
(
Wrappers
.<
KbPermissions
>
lambdaQuery
().
in
(
KbPermissions:
:
getId
,
longs
)));
}
});
userInfoVo
.
setRoles
(
kbRoles
);
userInfoVo
.
setAuthorizedUser
(
one
);
return
Result
.
OK
(
userInfoVo
);
}
else
{
return
Result
.
error
(
"第三方系统未通过用户校验"
);
}
}
@Override
public
Result
<?>
thirdpartyUsers
(
String
token
)
{
String
body
=
HttpRequest
.
get
(
getusersurl
).
header
(
"X-Access-Token"
,
token
).
execute
().
body
();
Result
bean
=
JSONUtil
.
toBean
(
body
,
Result
.
class
);
List
<
KbAuthorizedUser
>
list
=
JSONUtil
.
toList
(
JSONUtil
.
parseArray
(
JSONUtil
.
toJsonStr
(
bean
.
getResult
())),
KbAuthorizedUser
.
class
);
return
Result
.
OK
(
list
);
}
private
Result
<?>
doCheck
(
String
token
)
{
String
body
=
HttpRequest
.
post
(
checkuserurl
).
header
(
"X-Access-Token"
,
token
).
execute
().
body
();
Result
bean
=
JSONUtil
.
toBean
(
body
,
Result
.
class
);
return
bean
;
}
}
}
src/main/java/com/zzsn/knowbase/vo/UserInfoVo.java
0 → 100644
浏览文件 @
290ef66d
package
com
.
zzsn
.
knowbase
.
vo
;
import
com.zzsn.knowbase.entity.KbAuthorizedUser
;
import
com.zzsn.knowbase.entity.KbRole
;
import
lombok.Data
;
import
java.util.List
;
/**
* Description:
*
* @author: EDY
* @since: 2024/1/5
*/
@Data
public
class
UserInfoVo
{
private
KbAuthorizedUser
authorizedUser
;
private
List
<
KbRole
>
roles
;
}
src/main/resources/application.yml
浏览文件 @
290ef66d
...
@@ -31,3 +31,8 @@ mybatis-plus:
...
@@ -31,3 +31,8 @@ mybatis-plus:
configuration
:
configuration
:
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case
:
true
map-underscore-to-camel-case
:
true
know
:
thirdpartyurl
:
checkuserurl
:
http://127.0.0.1:9988/sys/checkToken
getusersurl
:
http://127.0.0.1:9988/sys/user/thirdparty
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论