Я новичок в Spring Security и я создаю приложение AuthSystems с использованием Spring-Security и Msql использую метод запроса extera в JpaRepository, и что методы не возвращают результат, и показывают IncorrectResultSizeDataAccessException.
вот мой код
UserRepository
package com.ganesh.repository;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import com.ganesh.model.User;
public interface UserRepository extends JpaRepository<User, Integer> {
User findByUsername(String username);
}
CustomUserDetailsService
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Autowired
private UserRepository userRepo;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userRepo.findByUsername(username);
CustomeUserDetail userdetails = null;
if(user != null) {
userdetails = new CustomeUserDetail();
userdetails.setUser(user);
}else {
throw new UsernameNotFoundException("User not fond this username"+ username);
}
return userdetails;
}
}
CustomeUserDetail
@Getter
@Setter
public class CustomeUserDetail implements UserDetails {
/**
*
*/
private static final long serialVersionUID = -8354447536649796292L;
@Autowired
private User user;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return user.getRoles().stream().map(role -> new SimpleGrantedAuthority("ROLE_"+ role)).collect(Collectors.toList());
}
@Override
public String getPassword() {
return user.getPassword();
}
@Override
public String getUsername() {
return user.getUsername();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
#properties
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/spring_auth
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.propertirs.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.format_sql=true
Пожалуйста, помогите мне ...