私はFacebookのユーザを認証し、ユーザ名を保存し、自分のアプリケーションの管理者になるユーザのサブセットにカスタム権限を与えようとしています。私の質問は、認証されたユーザーに「管理者」のようなカスタムロールを提供し、Oauth2Clientで権限を付与する方法です。Spring OAuth2クライアントでSSOから認証されたユーザの権限/ロールを変更する
@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 + "'");
}
}
};
}
}
OAuth2クライアントを使用して同様のことをしたいと思います。
おかげで、あなたが必要なもの