From 7fbefa9a1cce3e1afc8a5a2050708e2c0cda04da Mon Sep 17 00:00:00 2001 From: zhengjie Date: Fri, 1 Mar 2019 10:12:28 +0800 Subject: [PATCH] Remove the ROLE_ prefix --- .../modules/security/config/SecurityConfig.java | 8 +++++++- .../modules/security/security/JwtUser.java | 14 ++------------ .../security/service/JwtUserDetailsService.java | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/SecurityConfig.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/SecurityConfig.java index 4fe33fa1..a4ac1547 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/SecurityConfig.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/SecurityConfig.java @@ -12,9 +12,9 @@ import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.core.GrantedAuthorityDefaults; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; @@ -50,6 +50,12 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .passwordEncoder(passwordEncoderBean()); } + @Bean + GrantedAuthorityDefaults grantedAuthorityDefaults() { + // Remove the ROLE_ prefix + return new GrantedAuthorityDefaults(""); + } + @Bean public PasswordEncoder passwordEncoderBean() { return new BCryptPasswordEncoder(); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/security/JwtUser.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/security/JwtUser.java index 47994619..ca6d3ae6 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/security/JwtUser.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/security/JwtUser.java @@ -5,12 +5,10 @@ import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; - import java.sql.Timestamp; import java.util.Collection; import java.util.Date; -import java.util.LinkedHashSet; -import java.util.Set; +import java.util.stream.Collectors; /** * @author jie @@ -71,15 +69,7 @@ public class JwtUser implements UserDetails { return enabled; } - /** - * 在我们保存权限的时候加上了前缀ROLE_,因此在这里需要处理下数据 - * @return - */ public Collection getRoles() { - Set roles = new LinkedHashSet<>(); - for (GrantedAuthority authority : authorities) { - roles.add(authority.getAuthority().substring(5)); - } - return roles; + return authorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet()); } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/JwtUserDetailsService.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/JwtUserDetailsService.java index aa9d5fde..bf67194d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/JwtUserDetailsService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/JwtUserDetailsService.java @@ -80,7 +80,7 @@ public class JwtUserDetailsService implements UserDetailsService { } return permissions.stream() - .map(permission -> new SimpleGrantedAuthority("ROLE_"+permission.getName())) + .map(permission -> new SimpleGrantedAuthority(permission.getName())) .collect(Collectors.toList()); } }