zwzw1219 2017-10-15 19:57:57 +08:00
parent 0a4d352ae7
commit d7900d885b
2 changed files with 14 additions and 20 deletions

View File

@ -1,34 +1,34 @@
package com.boot.security.server.dto; package com.boot.security.server.dto;
import java.util.Collection; import java.util.Collection;
import java.util.Set; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.util.StringUtils;
import com.boot.security.server.model.Permission;
import com.boot.security.server.model.SysUser; import com.boot.security.server.model.SysUser;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
public class LoginUser extends SysUser implements UserDetails { public class LoginUser extends SysUser implements UserDetails {
private static final long serialVersionUID = 1422037805178348848L; private static final long serialVersionUID = 5847622956044304250L;
private Set<String> permissions; @Getter
@Setter
public Set<String> getPermissions() { private List<Permission> permissions;
return permissions;
}
public void setPermissions(Set<String> permissions) {
this.permissions = permissions;
}
@Override @Override
@JsonIgnore @JsonIgnore
public Collection<? extends GrantedAuthority> getAuthorities() { public Collection<? extends GrantedAuthority> getAuthorities() {
return permissions.parallelStream().map(a -> new SimpleGrantedAuthority(a)).collect(Collectors.toSet()); return permissions.parallelStream().filter(p -> !StringUtils.isEmpty(p.getPermission()))
.map(p -> new SimpleGrantedAuthority(p.getPermission())).collect(Collectors.toSet());
} }
// 账户是否未过期 // 账户是否未过期

View File

@ -1,8 +1,6 @@
package com.boot.security.server.service.impl; package com.boot.security.server.service.impl;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -13,7 +11,6 @@ import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.boot.security.server.dao.PermissionDao; import com.boot.security.server.dao.PermissionDao;
import com.boot.security.server.dto.LoginUser; import com.boot.security.server.dto.LoginUser;
@ -41,13 +38,10 @@ public class UserDetailsServiceImpl implements UserDetailsService {
throw new DisabledException("用户已作废"); throw new DisabledException("用户已作废");
} }
// 查询权限
List<Permission> permissionList = permissionDao.listByUserId(sysUser.getId());
Set<String> permissions = permissionList.parallelStream().filter(p -> !StringUtils.isEmpty(p.getPermission()))
.map(Permission::getPermission).collect(Collectors.toSet());
LoginUser loginUser = new LoginUser(); LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(sysUser, loginUser); BeanUtils.copyProperties(sysUser, loginUser);
List<Permission> permissions = permissionDao.listByUserId(sysUser.getId());
loginUser.setPermissions(permissions); loginUser.setPermissions(permissions);
return loginUser; return loginUser;