Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cash-loan-flow-boss
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QG
cash-loan-flow-boss
Commits
9bfb5f62
Commit
9bfb5f62
authored
Sep 18, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
权限
parent
27827bbd
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
8 deletions
+41
-8
Permission.java
...antgroup/cashloanflowboss/api/role/entity/Permission.java
+21
-3
Role.java
.../cn/quantgroup/cashloanflowboss/api/role/entity/Role.java
+11
-3
ApplicationSecurityHandler.java
...owboss/core/configuration/ApplicationSecurityHandler.java
+9
-2
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/role/entity/Permission.java
View file @
9bfb5f62
...
...
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.*
;
import
java.util.List
;
/**
...
...
@@ -13,16 +14,33 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table
(
name
=
"permission"
)
public
class
Permission
{
/**
* 主键id
*/
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
/**
* 授权ID
*/
private
String
id
;
@Column
(
name
=
"name"
)
private
String
name
;
/**
* 权限描述
*/
@Column
(
name
=
"desc"
)
private
String
desc
;
/**
* 权利
* 权利
读 写 修改 删除 暂时不用
*/
private
List
<
Authority
>
authorities
;
//@Convert(converter = PermissionListConverter.class)
//@Column(name = "permissions")
//private List<Authority> authorities;
}
src/main/java/cn/quantgroup/cashloanflowboss/api/role/entity/Role.java
View file @
9bfb5f62
...
...
@@ -5,6 +5,7 @@ import lombok.Data;
import
javax.persistence.*
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.function.UnaryOperator
;
/**
...
...
@@ -31,9 +32,16 @@ public class Role extends Primary implements UnaryOperator<Role> {
/**
* 授权列表
*/
@Convert
(
converter
=
PermissionListConverter
.
class
)
@Column
(
name
=
"permissions"
)
private
List
<
Permission
>
permissions
;
//@Convert(converter = PermissionListConverter.class)
//@Column(name = "permissions")
//private List<Permission> permissions;
/**
* 用户角色列表
*/
@OneToMany
(
fetch
=
FetchType
.
EAGER
)
@JoinTable
(
name
=
"role_permission_mapping"
,
joinColumns
=
@JoinColumn
(
name
=
"role_id"
),
inverseJoinColumns
=
@JoinColumn
(
name
=
"permission_id"
))
private
Set
<
Permission
>
permissions
;
@Override
public
Role
apply
(
Role
role
)
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/configuration/ApplicationSecurityHandler.java
View file @
9bfb5f62
...
...
@@ -8,6 +8,7 @@ import cn.quantgroup.cashloanflowboss.core.Application;
import
cn.quantgroup.cashloanflowboss.core.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
org.aopalliance.intercept.MethodInvocation
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.Objects
;
...
...
@@ -28,7 +29,13 @@ public class ApplicationSecurityHandler implements SecurityHandler {
Assert
.
isNull
(
principal
,
ApplicationStatus
.
AUTHENTICATION_FAILURE
);
// 如果是超级管理员跳过权限验证
return
principal
.
isSuperAdministrator
()
||
principal
.
getRoles
().
stream
().
anyMatch
(
role
->
Stream
.
iterate
(
role
,
Role:
:
getParent
).
anyMatch
(
_role
->
this
.
checkAuthority
(
authorityId
,
_role
)));
boolean
superAdministrator
=
principal
.
isSuperAdministrator
();
boolean
anyMatch
=
principal
.
getRoles
().
stream
().
anyMatch
(
role
->
{
Stream
<
Role
>
iterate
=
Stream
.
iterate
(
role
,
Role:
:
getParent
);
return
Objects
.
nonNull
(
iterate
)
&&
iterate
.
anyMatch
(
_role
->
this
.
checkAuthority
(
authorityId
,
_role
));
});
return
superAdministrator
||
anyMatch
;
}
...
...
@@ -40,7 +47,7 @@ public class ApplicationSecurityHandler implements SecurityHandler {
* @return
*/
private
boolean
checkAuthority
(
String
authorityId
,
Role
role
)
{
return
Objects
.
nonNull
(
role
.
getPermissions
())
&&
role
.
getPermissions
().
parallelStream
().
anyMatch
(
permission
->
permission
.
getId
().
equals
(
authorityId
));
return
Objects
.
nonNull
(
role
)
&&
CollectionUtils
.
isNotEmpty
(
role
.
getPermissions
())
&&
role
.
getPermissions
().
parallelStream
().
anyMatch
(
permission
->
permission
.
getName
().
equals
(
authorityId
));
}
}
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