Saya mengikuti tuto hebat ini: https://developer.okta.com/blog/2020/01/06/crud-angular-9-spring-boot-2#spring-boot-as-an-oauth-2-0-resource-server
Saya ingin menambahkan Peran ke bagian pegas. Saya tidak ingin menggunakan klaim seperti di tuto ini https://developer.okta.com/blog/2018/09/26/build-a-spring-boot-webapp tetapi saya ingin menambahkan peran bea cukai saya (dari db saya sendiri).
Saya mencoba mengganti userDetailsService() dari WebSecurityConfigurerAdapter untuk menggunakan UserDetailService khusus saya. Tapi sepertinya cara ini tidak pernah dipanggil… (lihat println), benarkah?
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private UserRepository userRepository;
@Override
protected void configure(HttpSecurity http) throws Exception {
//@formatter:off
http
.authorizeRequests()
.antMatchers("/home/**").permitAll()
.antMatchers("/admin/**").hasAuthority("ADMIN")
.anyRequest().authenticated()
.and()
.oauth2Login()
.and()
.oauth2ResourceServer().jwt();
//@formatter:on
}
@Override
protected UserDetailsService userDetailsService() {
return username -> {
System.out.println("yo");
Optional<co.simplon.blog.model.User> user = userRepository.findByName(username);
return User
.withUsername(username)
.password(user.get().getPassword())
.authorities(Arrays.asList(user.get().getRole()))
.accountExpired(false)
.accountLocked(false)
.credentialsExpired(false)
.disabled(false)
.build();
};
}
}