Ich versuche, einen Benutzer von Facebook zu authentifizieren und speichern Sie seinen Benutzernamen und bieten benutzerdefinierte Berechtigung für eine Teilmenge von Benutzern, die Administrator für meine Anwendung werden. Meine Frage ist, wie ich benutzerdefinierte authentifizierte Rollen wie "Admin" zur Verfügung stelle und sie in Oauth2Client autorisiere.Change Authorities/Rollen des authentifizierten Benutzers von SSO im Frühjahr OAuth2-Client
@Configuration
class WebSecurityConfiguration extends GlobalAuthenticationConfigurerAdapter {
@Autowired
UserRepository userRepository;
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService());
}
@Bean
UserDetailsService userDetailsService() {
return new UserDetailsService() {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User account = userRepository.findOne(username);
if (account != null) {
List<String> rolesList = userRepository.getRoles(username);
String[] roles = new String[rolesList.size()];
// userRepository.findRoles List<String> roles =
//account.getUserroles().;
User user = new User(account.getUserssoid(), account.getSecretKey(), true, true, true, true,
AuthorityUtils.createAuthorityList(rolesList.toArray(roles)));
return user;
} else {
throw new UsernameNotFoundException("could not find the user '" + username + "'");
}
}
};
}
}
Ich möchte ähnliche Dinge mit OAuth2 Client tun.
Dank