Java Spring'te bir web uygulaması yazıyorum. Bazı sorun neden bu kod parçası var:IllegalArgumentException: Yetkililer listesi boş olmamalıdır
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
user.setAuthorities(authorities);
UserDetails userDetails = new MyUserDetails(user);
jdbcUserDetailsManager.setDataSource(jdbc.getDataSource());
jdbcUserDetailsManager.setJdbcTemplate(jdbc);
jdbcUserDetailsManager.createUser(userDetails);
son satır bir istisna neden olur
java.lang.IllegalArgumentException: Yetkililer liste budur
null olmamalı MyUserDetails sınıfı:
public final class MyUserDetails extends MyUser implements UserDetails {
private static final long serialVersionUID = 1L;
public MyUserDetails (MyUser user) {
super(user);
this.setPassword(user.getPassword());
this.setLogin(user.getLogin());
this.setAuthorities(user.getRoles());
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return getRoles();
}
@Override
public String getUsername() {
return getLogin();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
Bu benim sınıfım Kullanıcı:
public class MyUser {
String login;
String password;
List<GrantedAuthority> roles;
public MyUser(MyUser user) {
super();
this.login = user.getLogin();
this.password = user.getPassword();
}
public String getLogin() {
return login;
}
public String getPassword() {
return password;
}
public void setAuthorities(List<GrantedAuthority> authorities) {
this.roles = roles;
}
public void setPassword(String password) {
this.password = password;
}
public void setLogin(String login) {
this.login = login;
}
public List<GrantedAuthority> getRoles() {
return roles;
}
}
Bu konuyla ilgili herhangi bir fikir ve tavsiye çok takdir edilecektir. MyUser
sınıfında
ile değiştirin. –
Soruyu düzenledim. – Someone
Gönderinizde neyin ne olduğunu bulmayı zorlaştıran tutarsızlıklar var: _ "Bu, MyUserDetails sınıfı" _, ancak yapıcı "UserRepositoryUserDetails". Ayrıca, UserDB nedir? Listenin düşündüğünüz şekilde ayarlanmadığı oldukça açık, ancak kodu göremiyoruz. –