package ik.am.jpetstore.domain.service.user;
import java.util.List;
import ik.am.jpetstore.domain.model.Account;
import ik.am.jpetstore.domain.model.Product;
import ik.am.jpetstore.domain.service.account.AccountService;
import ik.am.jpetstore.domain.service.catalog.CatalogService;
import javax.inject.Inject;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
@Service("userDetailsService")
public class UserDetailsServiceImpl implements UserDetailsService {
@Inject
protected AccountService accountService;
@Inject
protected CatalogService catalogService;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Account account = accountService.getAccount(username);
if (account == null) {
throw new UsernameNotFoundException(username + " is not found.");
}
List<Product> myList = catalogService.getProductListByCategory(account
.getFavouriteCategoryId());
return new ik.am.jpetstore.domain.model.UserDetails(account, myList);
}
}