Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
wangzhen
/
shiro-test
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 11612ff4
authored
Aug 28, 2024
by
wangzhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor the classes of the RBAC to PermissionService.
1 parent
ef63ef1b
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
71 additions
and
64 deletions
src/main/java/com/myxrk/rbac/aspect/DataGridMaskAspect.java
src/main/java/com/myxrk/rbac/controller/ShiroController.java
src/main/java/com/myxrk/rbac/service/PermissionService.java
src/main/java/com/myxrk/rbac/service/SysUserService.java
src/main/java/com/myxrk/rbac/aspect/DataGridMaskAspect.java
View file @
11612ff
package
com
.
myxrk
.
rbac
.
aspect
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.base.CaseFormat
;
import
com.myxrk.rbac.annotation.DataGrid
;
import
com.myxrk.rbac.dao.SysDataGridMapper
;
import
com.myxrk.rbac.dao.SysRoleDataGridMapper
;
import
com.myxrk.rbac.dao.SysUserMapper
;
import
com.myxrk.rbac.dao.SysUserRoleMapper
;
import
com.myxrk.rbac.po.SysDataGrid
;
import
com.myxrk.rbac.po.SysRoleDataGrid
;
import
com.myxrk.rbac.po.SysUser
;
import
com.myxrk.rbac.po.SysUserRole
;
import
com.myxrk.rbac.result.Result
;
import
com.myxrk.rbac.service.PermissionService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
...
...
@@ -29,8 +21,6 @@ import java.util.ArrayList;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
@Slf4j
...
...
@@ -41,16 +31,10 @@ public class DataGridMaskAspect {
private
static
final
String
MASK_STR
=
"---"
;
private
static
final
String
COLUMNS_ID
=
"id"
;
private
final
SysUserMapper
sysUserMapper
;
private
final
SysUserRoleMapper
sysUserRoleMapper
;
private
final
SysRoleDataGridMapper
sysRoleDataGridMapper
;
private
final
SysDataGridMapper
sysDataGridMapper
;
private
final
PermissionService
permissionService
;
public
DataGridMaskAspect
(
SysUserMapper
sysUserMapper
,
SysUserRoleMapper
sysUserRoleMapper
,
SysRoleDataGridMapper
sysRoleDataGridMapper
,
SysDataGridMapper
sysDataGridMapper
)
{
this
.
sysUserMapper
=
sysUserMapper
;
this
.
sysUserRoleMapper
=
sysUserRoleMapper
;
this
.
sysRoleDataGridMapper
=
sysRoleDataGridMapper
;
this
.
sysDataGridMapper
=
sysDataGridMapper
;
public
DataGridMaskAspect
(
PermissionService
permissionService
)
{
this
.
permissionService
=
permissionService
;
}
@Around
(
"@annotation(org.springframework.web.bind.annotation.GetMapping)"
)
...
...
@@ -82,13 +66,13 @@ public class DataGridMaskAspect {
String
dgKey
=
dg
.
value
();
// 获取当前用户
SysUser
sysUser
=
getSysUser
();
SysUser
sysUser
=
permissionService
.
getSysUser
();
// 获取当前激活角色,激活的角色只能有一个
Long
role
=
getActiveRole
(
sysUser
);
Long
role
=
permissionService
.
getActiveRole
(
);
// 获取当前激活角色所关联的数据表格列
List
<
String
>
columns
=
getColunm
sByRoleAndDataGridKey
(
dgKey
,
role
);
List
<
String
>
columns
=
permissionService
.
getColumn
sByRoleAndDataGridKey
(
dgKey
,
role
);
maskData
(
data
,
columns
,
genericType
);
...
...
@@ -138,24 +122,6 @@ public class DataGridMaskAspect {
return
masks
;
}
private
List
<
String
>
getColunmsByRoleAndDataGridKey
(
String
dgKey
,
Long
role
)
{
SysDataGrid
sysDataGrid
=
sysDataGridMapper
.
selectOne
(
Wrappers
.
query
(
SysDataGrid
.
class
).
eq
(
"dg_key"
,
dgKey
));
List
<
SysRoleDataGrid
>
sysRoleDataGrids
=
sysRoleDataGridMapper
.
selectList
(
Wrappers
.
query
(
SysRoleDataGrid
.
class
).
eq
(
"role_id"
,
role
).
eq
(
"dg_id"
,
sysDataGrid
.
getId
()));
return
sysRoleDataGrids
.
stream
()
.
flatMap
(
dataGrid
->
Stream
.
of
(
dataGrid
.
getColumns
().
split
(
","
))).
toList
();
}
private
Long
getActiveRole
(
SysUser
sysUser
)
{
List
<
SysUserRole
>
sysUserRole
=
sysUserRoleMapper
.
selectList
(
Wrappers
.
query
(
SysUserRole
.
class
).
eq
(
"user_id"
,
sysUser
.
getUserId
()));
Set
<
Long
>
roles
=
sysUserRole
.
stream
().
map
(
SysUserRole:
:
getRoleId
).
collect
(
Collectors
.
toSet
());
return
roles
.
iterator
().
next
();
}
private
SysUser
getSysUser
()
{
// 获取当前用户
String
username
=
(
String
)
SecurityUtils
.
getSubject
().
getPrincipal
();
return
sysUserMapper
.
selectOne
(
Wrappers
.
query
(
SysUser
.
class
).
eq
(
"username"
,
username
));
}
private
static
Set
<
String
>
getTableHeader
(
Class
<?>
genericType
)
{
Set
<
String
>
fields
=
new
HashSet
<>();
...
...
src/main/java/com/myxrk/rbac/controller/ShiroController.java
View file @
11612ff
package
com
.
myxrk
.
rbac
.
controller
;
import
com.myxrk.rbac.annotation.DataGrid
;
import
com.myxrk.rbac.dao.SysUserMapper
;
import
com.myxrk.rbac.po.Employee
;
import
com.myxrk.rbac.po.SysUser
;
import
com.myxrk.rbac.result.Result
;
import
com.myxrk.rbac.service.EmployeeService
;
import
com.myxrk.rbac.service.
SysUser
Service
;
import
com.myxrk.rbac.service.
Permission
Service
;
import
jakarta.annotation.Resource
;
import
org.apache.shiro.SecurityUtils
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
...
...
@@ -24,7 +23,7 @@ public class ShiroController {
private
EmployeeService
employeeService
;
@Resource
private
SysUserService
sysUser
Service
;
private
PermissionService
permission
Service
;
@GetMapping
(
"/anon"
)
public
Result
<
String
>
anon
()
{
...
...
@@ -83,6 +82,6 @@ public class ShiroController {
@DataGrid
(
"dg_sys_user_list_001"
)
@GetMapping
(
"/users"
)
public
Result
<
SysUser
>
getUsers
()
{
return
Result
.
success
(
sysUser
Service
.
getAllUsers
());
return
Result
.
success
(
permission
Service
.
getAllUsers
());
}
}
src/main/java/com/myxrk/rbac/service/PermissionService.java
0 → 100644
View file @
11612ff
package
com
.
myxrk
.
rbac
.
service
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.myxrk.rbac.dao.SysDataGridMapper
;
import
com.myxrk.rbac.dao.SysRoleDataGridMapper
;
import
com.myxrk.rbac.dao.SysUserMapper
;
import
com.myxrk.rbac.dao.SysUserRoleMapper
;
import
com.myxrk.rbac.po.SysDataGrid
;
import
com.myxrk.rbac.po.SysRoleDataGrid
;
import
com.myxrk.rbac.po.SysUser
;
import
com.myxrk.rbac.po.SysUserRole
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
@Slf4j
@Service
public
class
PermissionService
{
private
final
SysUserMapper
sysUserMapper
;
private
final
SysUserRoleMapper
sysUserRoleMapper
;
private
final
SysRoleDataGridMapper
sysRoleDataGridMapper
;
private
final
SysDataGridMapper
sysDataGridMapper
;
public
PermissionService
(
SysUserMapper
sysUserMapper
,
SysUserRoleMapper
sysUserRoleMapper
,
SysRoleDataGridMapper
sysRoleDataGridMapper
,
SysDataGridMapper
sysDataGridMapper
)
{
this
.
sysUserMapper
=
sysUserMapper
;
this
.
sysUserRoleMapper
=
sysUserRoleMapper
;
this
.
sysRoleDataGridMapper
=
sysRoleDataGridMapper
;
this
.
sysDataGridMapper
=
sysDataGridMapper
;
}
public
SysUser
getSysUser
()
{
// 获取当前用户
String
username
=
(
String
)
SecurityUtils
.
getSubject
().
getPrincipal
();
return
sysUserMapper
.
selectOne
(
Wrappers
.
query
(
SysUser
.
class
).
eq
(
"username"
,
username
));
}
public
List
<
SysUser
>
getAllUsers
()
{
return
sysUserMapper
.
selectList
(
null
);
}
public
Long
getActiveRole
()
{
List
<
SysUserRole
>
sysUserRole
=
sysUserRoleMapper
.
selectList
(
Wrappers
.
query
(
SysUserRole
.
class
).
eq
(
"user_id"
,
getSysUser
().
getUserId
()));
Set
<
Long
>
roles
=
sysUserRole
.
stream
().
map
(
SysUserRole:
:
getRoleId
).
collect
(
Collectors
.
toSet
());
return
roles
.
iterator
().
next
();
}
public
List
<
String
>
getColumnsByRoleAndDataGridKey
(
String
dgKey
,
Long
role
)
{
SysDataGrid
sysDataGrid
=
sysDataGridMapper
.
selectOne
(
Wrappers
.
query
(
SysDataGrid
.
class
).
eq
(
"dg_key"
,
dgKey
));
List
<
SysRoleDataGrid
>
sysRoleDataGrids
=
sysRoleDataGridMapper
.
selectList
(
Wrappers
.
query
(
SysRoleDataGrid
.
class
).
eq
(
"role_id"
,
role
).
eq
(
"dg_id"
,
sysDataGrid
.
getId
()));
return
sysRoleDataGrids
.
stream
()
.
flatMap
(
dataGrid
->
Stream
.
of
(
dataGrid
.
getColumns
().
split
(
","
))).
toList
();
}
}
src/main/java/com/myxrk/rbac/service/SysUserService.java
deleted
100644 → 0
View file @
ef63ef1
package
com
.
myxrk
.
rbac
.
service
;
import
com.myxrk.rbac.dao.SysUserMapper
;
import
com.myxrk.rbac.po.SysUser
;
import
jakarta.annotation.Resource
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
public
class
SysUserService
{
@Resource
private
SysUserMapper
sysUserMapper
;
public
List
<
SysUser
>
getAllUsers
()
{
return
sysUserMapper
.
selectList
(
null
);
}
}
Write
Preview
Markdown
is supported
Attach a file
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 post a comment