From 3524112e8eded4d55c27426d9eaccedea2035a14 Mon Sep 17 00:00:00 2001 From: kabi239 Date: Sun, 12 Jan 2025 01:09:55 +0530 Subject: [PATCH] Implementing UserDetailsServiceImpl and creating UserRepository --- .../sb_ecom/repository/UserRepository.java | 11 ++++++++ .../services/UserDetailsServiceImpl.java | 25 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/main/java/com/ecommerce/sb_ecom/repository/UserRepository.java create mode 100644 src/main/java/com/ecommerce/sb_ecom/security/services/UserDetailsServiceImpl.java diff --git a/src/main/java/com/ecommerce/sb_ecom/repository/UserRepository.java b/src/main/java/com/ecommerce/sb_ecom/repository/UserRepository.java new file mode 100644 index 0000000..edd35ca --- /dev/null +++ b/src/main/java/com/ecommerce/sb_ecom/repository/UserRepository.java @@ -0,0 +1,11 @@ +package com.ecommerce.sb_ecom.repository; + +import com.ecommerce.sb_ecom.model.User; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface UserRepository extends JpaRepository { + + Optional findByUsername(String username); +} diff --git a/src/main/java/com/ecommerce/sb_ecom/security/services/UserDetailsServiceImpl.java b/src/main/java/com/ecommerce/sb_ecom/security/services/UserDetailsServiceImpl.java new file mode 100644 index 0000000..f6166b5 --- /dev/null +++ b/src/main/java/com/ecommerce/sb_ecom/security/services/UserDetailsServiceImpl.java @@ -0,0 +1,25 @@ +package com.ecommerce.sb_ecom.security.services; + +import com.ecommerce.sb_ecom.model.User; +import com.ecommerce.sb_ecom.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +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; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class UserDetailsServiceImpl implements UserDetailsService { + + @Autowired + UserRepository userRepository; + + @Override + @Transactional + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + User user = userRepository.findByUsername(username) + .orElseThrow(()->new UsernameNotFoundException("User Not Found With Username : "+ username)); + return UserDetailsImpl.build(user); + } +}