1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.portal.business.user;
35
36 import java.security.SecureRandom;
37 import java.util.Date;
38
39 import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
40 import org.springframework.context.ApplicationContext;
41
42 import fr.paris.lutece.portal.business.user.authentication.LuteceDefaultAdminAuthentication;
43 import fr.paris.lutece.portal.business.user.authentication.LuteceDefaultAdminUser;
44 import fr.paris.lutece.portal.service.spring.SpringContextService;
45 import fr.paris.lutece.test.LuteceTestCase;
46 import fr.paris.lutece.util.password.IPassword;
47 import fr.paris.lutece.util.password.IPasswordFactory;
48
49 public class AdminUserHomeTest extends LuteceTestCase
50 {
51
52 private static final String LEGACY_PASSWORD = "legacyPassword";
53 private LuteceDefaultAdminUser user;
54
55 @Override
56 public void setUp( ) throws Exception
57 {
58 super.setUp( );
59
60 AdminUserDAO adminUserDAO = getAdminUserDAO( );
61 String randomUsername = "user" + new SecureRandom( ).nextLong( );
62
63 user = new LuteceDefaultAdminUser( randomUsername, new LuteceDefaultAdminAuthentication( ) );
64 user.setPassword( new IPassword( )
65 {
66
67 @Override
68 public boolean isLegacy( )
69 {
70 return false;
71 }
72
73 @Override
74 public String getStorableRepresentation( )
75 {
76 return "PLAINTEXT:" + LEGACY_PASSWORD;
77 }
78
79 @Override
80 public boolean check( String strCleartextPassword )
81 {
82 return LEGACY_PASSWORD.equals( strCleartextPassword );
83 }
84 } );
85 user.setFirstName( randomUsername );
86 user.setLastName( randomUsername );
87 user.setEmail( randomUsername + "@lutece.fr" );
88 adminUserDAO.insert( user );
89 }
90
91 @Override
92 public void tearDown( ) throws Exception
93 {
94 AdminUserHome.remove( user.getUserId( ) );
95 AdminUserHome.removeAllPasswordHistoryForUser( user.getUserId( ) );
96 super.tearDown( );
97 }
98
99 private AdminUserDAO getAdminUserDAO( )
100 {
101 AdminUserDAO adminUserDAO = new AdminUserDAO( );
102 ApplicationContext context = SpringContextService.getContext( );
103 AutowireCapableBeanFactory beanFactory = context.getAutowireCapableBeanFactory( );
104 beanFactory.autowireBean( adminUserDAO );
105 return adminUserDAO;
106 }
107
108 public void testGetUserPasswordResetTokenLegacyPassword( )
109 {
110 Date timestamp = new Date( );
111 String strToken = AdminUserHome.getUserPasswordResetToken( user.getUserId( ), timestamp, null );
112 assertNotNull( strToken );
113 IPasswordFactory passwordFactory = SpringContextService.getBean( IPasswordFactory.BEAN_NAME );
114 user.setPassword( passwordFactory.getPasswordFromCleartext( LEGACY_PASSWORD ) );
115 getAdminUserDAO( ).store( user, PasswordUpdateMode.UPDATE );
116 String strTokenUpdatedPassword = AdminUserHome.getUserPasswordResetToken( user.getUserId( ), timestamp, null );
117 assertNotNull( strTokenUpdatedPassword );
118 assertFalse( strToken.equals( strTokenUpdatedPassword ) );
119 }
120
121 }