Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
springBoot
Project
Project
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
WitCloud
springBoot
Commits
24b00248
Commit
24b00248
authored
Jan 19, 2017
by
杨伊博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
83265aa2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
47 deletions
+13
-47
SysUser.java
...security/src/main/java/com/us/example/domain/SysUser.java
+1
-45
CustomUserService.java
.../main/java/com/us/example/security/CustomUserService.java
+12
-2
No files found.
springboot-security/src/main/java/com/us/example/domain/SysUser.java
View file @
24b00248
package
com
.
us
.
example
.
domain
;
import
java.util.*
;
import
javax.persistence.*
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.authority.SimpleGrantedAuthority
;
import
org.springframework.security.core.userdetails.UserDetails
;
/**
* Created by yangyibo on 17/1/17.
*/
@Entity
@Table
(
name
=
"Sys_User"
)
public
class
SysUser
implements
UserDetails
{
//用户实体实现UserDetails接口,我门的用户实体即位 security 所使用的用户
public
class
SysUser
{
//用户实体实现UserDetails接口,我门的用户实体即位 security 所使用的用户
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
private
Long
id
;
private
String
username
;
private
String
password
;
private
Integer
role_id
;
@Transient
//此字段不映射到数据库
private
String
authority
;
@Override
public
Collection
<?
extends
GrantedAuthority
>
getAuthorities
()
{
//重写getAuthorities方法,将用户角色作为权限
List
<
GrantedAuthority
>
auths
=
new
ArrayList
<>();
auths
.
add
(
new
SimpleGrantedAuthority
(
this
.
authority
));
return
auths
;
}
@Override
public
boolean
isAccountNonExpired
()
{
return
true
;
}
@Override
public
boolean
isAccountNonLocked
()
{
return
true
;
}
@Override
public
boolean
isCredentialsNonExpired
()
{
return
true
;
}
@Override
public
boolean
isEnabled
()
{
return
true
;
}
public
Long
getId
()
{
return
id
;
...
...
@@ -87,12 +51,4 @@ public class SysUser implements UserDetails { //用户实体实现UserDetails接
this
.
role_id
=
role_id
;
}
public
String
getAuthority
()
{
return
authority
;
}
public
void
setAuthority
(
String
authority
)
{
this
.
authority
=
authority
;
}
}
springboot-security/src/main/java/com/us/example/security/CustomUserService.java
View file @
24b00248
...
...
@@ -4,11 +4,15 @@ import com.us.example.dao.SysRoleRepositiory;
import
com.us.example.dao.SysUserRepository
;
import
com.us.example.domain.SysUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.authority.SimpleGrantedAuthority
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.security.core.userdetails.UserDetailsService
;
import
org.springframework.security.core.userdetails.UsernameNotFoundException
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by yangyibo on 17/1/18.
*/
...
...
@@ -23,11 +27,17 @@ public class CustomUserService implements UserDetailsService { //1
public
UserDetails
loadUserByUsername
(
String
username
)
{
//2
SysUser
user
=
userRepository
.
findByUsername
(
username
);
user
.
setAuthority
(
sysRoleRepositiory
.
findById
(
user
.
getRole_id
()).
getName
());
if
(
user
==
null
){
throw
new
UsernameNotFoundException
(
"用户名不存在"
);
}
return
user
;
//3
List
<
SimpleGrantedAuthority
>
authorities
=
new
ArrayList
<>();
//用于添加用户的权限。只要把用户权限添加到authorities 就万事大吉。
authorities
.
add
(
new
SimpleGrantedAuthority
(
sysRoleRepositiory
.
findById
(
user
.
getRole_id
()).
getName
()));
return
new
org
.
springframework
.
security
.
core
.
userdetails
.
User
(
user
.
getUsername
(),
user
.
getPassword
(),
authorities
);
}
}
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