From 8cb50f6762d01cacfd4bdfcf2572074cee88cf7a Mon Sep 17 00:00:00 2001 From: L_DelOff <51275636+LDelOff@users.noreply.github.com> Date: Sat, 4 Mar 2023 21:47:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20?= =?UTF-8?q?=D1=8E=D0=B7=D0=B5=D1=80=D0=B0=D0=BC=D0=B8=20=D0=B2=20=D0=B1?= =?UTF-8?q?=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/UserRepository.java | 3 ++ .../hedgehogcloud/service/UserService.java | 35 ++------------ .../service/UserServiceImpl.java | 46 +++++++++++++++++++ 3 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 src/main/java/ru/ldeloff/hedgehogcloud/service/UserServiceImpl.java diff --git a/src/main/java/ru/ldeloff/hedgehogcloud/repository/UserRepository.java b/src/main/java/ru/ldeloff/hedgehogcloud/repository/UserRepository.java index 4603bcf..9aedbf1 100644 --- a/src/main/java/ru/ldeloff/hedgehogcloud/repository/UserRepository.java +++ b/src/main/java/ru/ldeloff/hedgehogcloud/repository/UserRepository.java @@ -1,8 +1,11 @@ package ru.ldeloff.hedgehogcloud.repository; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; import ru.ldeloff.hedgehogcloud.entity.UserEntity; +@Repository public interface UserRepository extends JpaRepository { UserEntity findByUsername(String username); + } diff --git a/src/main/java/ru/ldeloff/hedgehogcloud/service/UserService.java b/src/main/java/ru/ldeloff/hedgehogcloud/service/UserService.java index 17654ec..1fb3c71 100644 --- a/src/main/java/ru/ldeloff/hedgehogcloud/service/UserService.java +++ b/src/main/java/ru/ldeloff/hedgehogcloud/service/UserService.java @@ -1,38 +1,11 @@ package ru.ldeloff.hedgehogcloud.service; -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.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.stereotype.Service; import ru.ldeloff.hedgehogcloud.entity.UserEntity; -import ru.ldeloff.hedgehogcloud.repository.RoleRepository; -import ru.ldeloff.hedgehogcloud.repository.UserRepository; -import javax.persistence.Entity; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - - -@Service -public class UserService implements UserDetailsService { - UserRepository userRepository; - RoleRepository roleRepository; - - @Autowired - public UserService(UserRepository userRepository, - RoleRepository roleRepository) { - this.userRepository = userRepository; - this.roleRepository = roleRepository; - } - - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - UserEntity user = userRepository.findByUsername(username); - if (user == null) { - throw new UsernameNotFoundException("User not found"); - } - return user; - } +public interface UserService extends UserDetailsService { + UserDetails loadUserByUsername(String username); + void saveUser(UserEntity user); + UserEntity getByUserName(String name); // TODO попробовать userdetails юзать } diff --git a/src/main/java/ru/ldeloff/hedgehogcloud/service/UserServiceImpl.java b/src/main/java/ru/ldeloff/hedgehogcloud/service/UserServiceImpl.java new file mode 100644 index 0000000..9da1c73 --- /dev/null +++ b/src/main/java/ru/ldeloff/hedgehogcloud/service/UserServiceImpl.java @@ -0,0 +1,46 @@ +package ru.ldeloff.hedgehogcloud.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; +import ru.ldeloff.hedgehogcloud.entity.UserEntity; +import ru.ldeloff.hedgehogcloud.repository.RoleRepository; +import ru.ldeloff.hedgehogcloud.repository.UserRepository; + +@Service +public class UserServiceImpl implements UserService { + UserRepository userRepository; + RoleRepository roleRepository; + + @Autowired + public UserServiceImpl(UserRepository userRepository, + RoleRepository roleRepository) { + this.userRepository = userRepository; + this.roleRepository = roleRepository; + } + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + UserEntity user = userRepository.findByUsername(username); + if (user == null) { + throw new UsernameNotFoundException("User not found"); + } + return user; + } + + @Override + public void saveUser(UserEntity user) { + UserEntity userTemp = getByUserName(user.getUsername()); + if (userTemp == null) { + userRepository.save(user); + } + } + + @Override + public UserEntity getByUserName(String name) { + return userRepository.findByUsername(name); + } + + +}