public class MyAuthServiceProvider implements UserDetailsService {
...
...
public static List< GrantedAuthority > getGrantedAuthorities(List< String > roles) {
List< GrantedAuthority > authorities = new ArrayList< GrantedAuthority >();
for( String role:roles ) {
authorities.add(new SimpleGrantedAuthority(role));
}
return authorities;
}
}
As mention in the title, SimpleGrantedAuthority couldn't be resolve. There are 2 solutions on this, the first one is to replace SimpleGrantedAuthority with GrantedAuthorityImpl as shown below: ...
authorities.add(new GrantedAuthorityImpl(role));
...
The second one is to replace SimpleGrantedAuthority with SwitchUserGrantedAuthority, but I need to implements AuthenticationProvider. I refuse this solution because I feel that (correct me if I'm wrong) this doesn't sound right for MyAuthServiceProvider to implement AuthenticationProvider and UserDetailsService at the same time.I'm sure I have include spring-security-core library in MAVEN. May I know what else was missing causing this error on SimpleGrantedAuthority? It has been confusing me for a long time, now I got the answer. SimpleGrantedAuthortiy is a replacement of GrantedAuthorityImpl, and this class will be deprecated in Spring Security 3.1. In addition, both of this class are implementing GrantedAuthority, have a look here for SimpleGrantedAuthority and GrantedAuthorityImpl. Thus it has no issue since both of them implementing the same function.
To conclude this, since I'm using version 3.0, then I am safe to use GrantedAuthorityImpl class.

No comments:
Post a Comment