From b3b7ac888c0d66601440651fd755b3dc97f37b3b Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Sat, 8 Oct 2016 11:11:20 +0300 Subject: [PATCH] update test, remove user repository implementation --- spring-security-custom-permission/derby.log | 13 -- .../baeldung/config/PersistenceConfig.java | 10 +- .../org/baeldung/config/SecurityConfig.java | 1 - .../persistence/dao/MyUserRepository.java | 146 ------------------ .../persistence/dao/UserRepository.java | 2 + .../security/MyUserDetailsService.java | 1 + .../web/CustomUserDetailsServiceTest.java | 29 ++-- 7 files changed, 19 insertions(+), 183 deletions(-) delete mode 100644 spring-security-custom-permission/derby.log delete mode 100644 spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/MyUserRepository.java diff --git a/spring-security-custom-permission/derby.log b/spring-security-custom-permission/derby.log deleted file mode 100644 index 3c0968fa9c..0000000000 --- a/spring-security-custom-permission/derby.log +++ /dev/null @@ -1,13 +0,0 @@ ----------------------------------------------------------------- -Wed Oct 05 21:59:32 EEST 2016: -Booting Derby version The Apache Software Foundation - Apache Derby - 10.12.1.1 - (1704137): instance a816c00e-0157-9637-0b63-000000c038f0 -on database directory memory:C:\Users\lore\Documents\workspace-articles\spring-security-custom-permission\spring_custom_user_service with class loader sun.misc.Launcher$AppClassLoader@6433a2 -Loaded from file:/C:/Users/lore/.m2/repository/org/apache/derby/derby/10.12.1.1/derby-10.12.1.1.jar -java.vendor=Oracle Corporation -java.runtime.version=1.8.0_77-b03 -user.dir=C:\Users\lore\Documents\workspace-articles\spring-security-custom-permission -os.name=Windows 7 -os.arch=x86 -os.version=6.1 -derby.system.home=null -Database Class Loader started - derby.database.classpath='' diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/config/PersistenceConfig.java b/spring-security-custom-permission/src/main/java/org/baeldung/config/PersistenceConfig.java index cd7caa5fd1..ad19db9e3a 100644 --- a/spring-security-custom-permission/src/main/java/org/baeldung/config/PersistenceConfig.java +++ b/spring-security-custom-permission/src/main/java/org/baeldung/config/PersistenceConfig.java @@ -5,7 +5,6 @@ import java.util.Properties; import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; -import org.baeldung.persistence.dao.MyUserRepository; import org.baeldung.persistence.dao.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -13,6 +12,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-derby.properties" }) +@EnableJpaRepositories(basePackages = "org.baeldung.persistence.dao") public class PersistenceConfig { @Autowired @@ -35,7 +36,7 @@ public class PersistenceConfig { // beans @Bean - public LocalContainerEntityManagerFactoryBean myEmf() { + public LocalContainerEntityManagerFactoryBean entityManagerFactory() { final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); em.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); @@ -79,9 +80,4 @@ public class PersistenceConfig { // hibernateProperties.setProperty("hibernate.globally_quoted_identifiers", "true"); return hibernateProperties; } - - @Bean - public UserRepository userRepository(){ - return new MyUserRepository(); - } } \ No newline at end of file diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/config/SecurityConfig.java b/spring-security-custom-permission/src/main/java/org/baeldung/config/SecurityConfig.java index 21b81741ee..463ce9a8ca 100644 --- a/spring-security-custom-permission/src/main/java/org/baeldung/config/SecurityConfig.java +++ b/spring-security-custom-permission/src/main/java/org/baeldung/config/SecurityConfig.java @@ -1,6 +1,5 @@ package org.baeldung.config; -import org.baeldung.persistence.dao.MyUserRepository; import org.baeldung.persistence.dao.UserRepository; import org.baeldung.security.MyUserDetailsService; import org.springframework.beans.factory.annotation.Autowired; diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/MyUserRepository.java b/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/MyUserRepository.java deleted file mode 100644 index ee290a0c35..0000000000 --- a/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/MyUserRepository.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.baeldung.persistence.dao; - -import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; - -import org.baeldung.persistence.model.User; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.transaction.annotation.Transactional; - -@Transactional -public class MyUserRepository implements UserRepository { - - @PersistenceContext - private EntityManager entityManager; - - @Override - public List findAll() { - // TODO Auto-generated method stub - return null; - } - - @Override - public List findAll(Sort sort) { - // TODO Auto-generated method stub - return null; - } - - @Override - public List findAll(Iterable ids) { - // TODO Auto-generated method stub - return null; - } - - @Override - public List save(Iterable entities) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void flush() { - // TODO Auto-generated method stub - - } - - @Override - public S saveAndFlush(S entity) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void deleteInBatch(Iterable entities) { - // TODO Auto-generated method stub - - } - - @Override - public void deleteAllInBatch() { - // TODO Auto-generated method stub - - } - - @Override - public User getOne(Long id) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Page findAll(Pageable arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public long count() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void delete(Long arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void delete(User arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void delete(Iterable arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void deleteAll() { - // TODO Auto-generated method stub - - } - - @Override - public boolean exists(Long arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public User findOne(Long arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public S save(S user) { - entityManager.persist(user); - return user; - } - - @Override - public User findByUsername(String username) { - Query query = entityManager.createQuery("from User where username=:username", User.class); - query.setParameter("username", username); - List result = query.getResultList(); - if (result != null && result.size() > 0) { - return result.get(0); - } else - return null; - } - - public void removeUserByUsername(String username) { - final Query query = entityManager.createQuery("delete from User where username=:username"); - query.setParameter("username", username); - query.executeUpdate(); - } - -} diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/UserRepository.java b/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/UserRepository.java index 8b4e20d146..f0c3afdf0b 100644 --- a/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/UserRepository.java +++ b/spring-security-custom-permission/src/main/java/org/baeldung/persistence/dao/UserRepository.java @@ -2,11 +2,13 @@ package org.baeldung.persistence.dao; import org.baeldung.persistence.model.User; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.transaction.annotation.Transactional; public interface UserRepository extends JpaRepository { User findByUsername(final String username); + @Transactional void removeUserByUsername(String username); } diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/security/MyUserDetailsService.java b/spring-security-custom-permission/src/main/java/org/baeldung/security/MyUserDetailsService.java index 685219728f..3c0024c4b9 100644 --- a/spring-security-custom-permission/src/main/java/org/baeldung/security/MyUserDetailsService.java +++ b/spring-security-custom-permission/src/main/java/org/baeldung/security/MyUserDetailsService.java @@ -23,6 +23,7 @@ public class MyUserDetailsService implements UserDetailsService { @Override public UserDetails loadUserByUsername(final String username) { final User user = userRepository.findByUsername(username); + System.out.println("load user from repo"+user); if (user == null) { throw new UsernameNotFoundException(username); } diff --git a/spring-security-custom-permission/src/test/java/org/baeldung/web/CustomUserDetailsServiceTest.java b/spring-security-custom-permission/src/test/java/org/baeldung/web/CustomUserDetailsServiceTest.java index 390bd7c96c..bdf9c32ca8 100644 --- a/spring-security-custom-permission/src/test/java/org/baeldung/web/CustomUserDetailsServiceTest.java +++ b/spring-security-custom-permission/src/test/java/org/baeldung/web/CustomUserDetailsServiceTest.java @@ -9,9 +9,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.core.Authentication; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; @@ -36,13 +38,16 @@ public class CustomUserDetailsServiceTest { @Autowired AuthenticationProvider authenticationProvider; + + @Autowired + PasswordEncoder passwordEncoder; @Test public void givenExistingUser_whenAuthenticate_thenRetrieveFromDb() { try { User user = new User(); user.setUsername(USERNAME); - user.setPassword(PASSWORD); + user.setPassword(passwordEncoder.encode(PASSWORD)); myUserRepository.save(user); @@ -51,31 +56,23 @@ public class CustomUserDetailsServiceTest { assertEquals(authentication.getName(), USERNAME); - } catch (Exception exc) { - LOG.log(Level.SEVERE, "Error creating account"); } finally { myUserRepository.removeUserByUsername(USERNAME); } } - - @Test (expected = BadCredentialsException.class) + + @Test(expected = BadCredentialsException.class) public void givenIncorrectUser_whenAuthenticate_thenBadCredentialsException() { try { User user = new User(); user.setUsername(USERNAME); - user.setPassword(PASSWORD); + user.setPassword(passwordEncoder.encode(PASSWORD)); + + myUserRepository.save(user); - try { - myUserRepository.save(user); - } - catch (Exception exc) { - LOG.log(Level.SEVERE, "Error creating account"); - } - UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(USERNAME2, PASSWORD); - Authentication authentication = authenticationProvider.authenticate(auth); - } - finally { + authenticationProvider.authenticate(auth); + } finally { myUserRepository.removeUserByUsername(USERNAME); } }