методы для работы с юзерами в бд

pull/2/head
L_DelOff 2023-03-04 21:47:36 +03:00
parent d2257d4323
commit 8cb50f6762
3 changed files with 53 additions and 31 deletions

View File

@ -1,8 +1,11 @@
package ru.ldeloff.hedgehogcloud.repository; package ru.ldeloff.hedgehogcloud.repository;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import ru.ldeloff.hedgehogcloud.entity.UserEntity; import ru.ldeloff.hedgehogcloud.entity.UserEntity;
@Repository
public interface UserRepository extends JpaRepository<UserEntity, String> { public interface UserRepository extends JpaRepository<UserEntity, String> {
UserEntity findByUsername(String username); UserEntity findByUsername(String username);
} }

View File

@ -1,38 +1,11 @@
package ru.ldeloff.hedgehogcloud.service; 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.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; 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.entity.UserEntity;
import ru.ldeloff.hedgehogcloud.repository.RoleRepository;
import ru.ldeloff.hedgehogcloud.repository.UserRepository;
import javax.persistence.Entity; public interface UserService extends UserDetailsService {
import javax.persistence.EntityManager; UserDetails loadUserByUsername(String username);
import javax.persistence.PersistenceContext; void saveUser(UserEntity user);
UserEntity getByUserName(String name); // TODO попробовать userdetails юзать
@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;
}
} }

View File

@ -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);
}
}