1212import com .utils .application .Execute ;
1313import com .utils .application .globalExceptions .ServiceHandlerException ;
1414import jakarta .transaction .Transactional ;
15+ import lombok .Getter ;
1516import lombok .Setter ;
1617import org .slf4j .Logger ;
1718import org .slf4j .LoggerFactory ;
2122import org .springframework .security .authentication .AuthenticationManager ;
2223import org .springframework .security .authentication .UsernamePasswordAuthenticationToken ;
2324import org .springframework .security .core .AuthenticationException ;
24- import org .springframework .security .crypto .encrypt .RsaSecretEncryptor ;
2525import org .springframework .security .crypto .password .PasswordEncoder ;
2626import org .springframework .stereotype .Service ;
2727
@@ -48,27 +48,28 @@ public class UsersService implements Execute<List<UsersResponse>> {
4848 private static UsersRepository usersRepository ;
4949 private UsersRegisterRequest usersRegisterRequest ;
5050 private UpdatePasswordRequest updatePasswordRequest ;
51- private LoginRequest loginRequest ;
51+ private static LoginRequest loginRequest ;
5252 private static IdentityNoRequest identityNoRequest ;
53+ @ Getter
5354 private FindByIdRequest findByIdRequest ;
5455 private static JwtService jwtService ;
55- private static RsaSecretEncryptor rsaSecretEncryptor ;
56- private AuthenticationManager authenticationManager ;
56+
57+ private static AuthenticationManager authenticationManager ;
5758 @ Setter
5859 private static UsersMapper usersMapper ;
5960 private static PasswordEncoder passwordEncoder ;
6061 private static RedisService redisService ;
6162 private UsersFieldsDataValidator validator ;
6263
6364 @ Autowired
64- public UsersService (@ Autowired RedisTemplate redisTemplate , @ Autowired RsaSecretEncryptor rsaSecretEncryptor , PasswordEncoder passwordEncoder , @ Autowired JwtService jwtService , @ Autowired AuthenticationManager authenticationManager , @ Autowired UsersRepository usersRepository , @ Autowired UsersMapper usersMapper ) {
65+ public UsersService (@ Autowired RedisTemplate redisTemplate , PasswordEncoder passwordEncoder , @ Autowired JwtService jwtService , @ Autowired AuthenticationManager authenticationManager , @ Autowired UsersRepository usersRepository , @ Autowired UsersMapper usersMapper ) {
6566 setUsersRepository (usersRepository );
66- UsersService . rsaSecretEncryptor = rsaSecretEncryptor ;
67+
6768 UsersService .passwordEncoder = passwordEncoder ;
6869 UsersService .usersMapper = usersMapper ;
6970 UsersService .jwtService = jwtService ;
7071 UsersService .redisService = new RedisService (redisTemplate );
71- this .authenticationManager = authenticationManager ;
72+ UsersService .authenticationManager = authenticationManager ;
7273 }
7374
7475 public UsersFullNameRequest usersFullNameRequest () {
@@ -80,10 +81,6 @@ public UsersService setUsersFullNameRequest(UsersFullNameRequest usersFullNameRe
8081 return this ;
8182 }
8283
83- public FindByIdRequest getFindByIdRequest () {
84- return findByIdRequest ;
85- }
86-
8784 public void setFindByIdRequest (FindByIdRequest findByIdRequest ) {
8885 this .findByIdRequest = findByIdRequest ;
8986 }
@@ -92,9 +89,8 @@ public UsersRegisterRequest usersRegisterRequest() {
9289 return usersRegisterRequest ;
9390 }
9491
95- public UsersService setUsersRegisterRequest (UsersRegisterRequest usersRegisterRequest ) {
92+ public void setUsersRegisterRequest (UsersRegisterRequest usersRegisterRequest ) {
9693 this .usersRegisterRequest = usersRegisterRequest ;
97- return this ;
9894 }
9995
10096 public LoginRequest loginRequest () {
@@ -105,23 +101,20 @@ public IdentityNoRequest identityNoRequest() {
105101 return identityNoRequest ;
106102 }
107103
108- public UsersService setIdentityNoRequest (IdentityNoRequest identityNoRequest ) {
104+ public void setIdentityNoRequest (IdentityNoRequest identityNoRequest ) {
109105 this .identityNoRequest = identityNoRequest ;
110- return this ;
111106 }
112107
113- public UsersService setLoginRequest (LoginRequest loginRequest ) {
108+ public void setLoginRequest (LoginRequest loginRequest ) {
114109 this .loginRequest = loginRequest ;
115- return this ;
116110 }
117111
118112 public UpdatePasswordRequest updatePasswordRequest () {
119113 return updatePasswordRequest ;
120114 }
121115
122- public UsersService setUpdatePasswordRequest (UpdatePasswordRequest updatePasswordRequest ) {
116+ public void setUpdatePasswordRequest (UpdatePasswordRequest updatePasswordRequest ) {
123117 this .updatePasswordRequest = updatePasswordRequest ;
124- return this ;
125118 }
126119
127120
@@ -207,14 +200,14 @@ private List<UsersResponse> registerUsers() {
207200
208201
209202 private List <UsersResponse > findUserByUsersIdentityNo () {
210- String encrypt = rsaSecretEncryptor . encrypt ( getInstance ().validateIdentityNo (identityNoRequest .getUsersIdentityNo () ));
203+ String encrypt = getInstance ().validateIdentityNo (identityNoRequest .getUsersIdentityNo ());
211204 UsersResponse redisUserResponse = redisService .get (encrypt , UsersResponse .class );
212205
213206 if (redisUserResponse != null ) {
214207 logger .info ("User with identity no : {} successfully found from cache, data is {} " , redisUserResponse .getUsersIdentityNo (), redisUserResponse );
215208 return List .of (redisUserResponse );
216209 } else {
217- var responseList = usersRepository .findByUserIdentityNo (rsaSecretEncryptor . encrypt ( identityNoRequest .getUsersIdentityNo () )).stream ().map (usersMapper ::toDto ).toList ();
210+ var responseList = usersRepository .findByUserIdentityNo (identityNoRequest .getUsersIdentityNo ()).stream ().map (usersMapper ::toDto ).toList ();
218211
219212 if (responseList .size () == 1 ) {
220213 var jpaUserResponse = responseList .get (0 );
@@ -334,8 +327,9 @@ private List<UsersResponse> findAllUsersByName() {
334327
335328 @ Transactional
336329 private List <UsersResponse > login () {
337- var encrypt = passwordEncoder . encode ( loginRequest ().getUsersEmailAddress () );
330+ var encrypt = loginRequest ().getUsersEmailAddress ();
338331 UsersResponse redisUserResponse = redisService .get (encrypt , UsersResponse .class );
332+
339333 UsersResponse jpaUserResponse ;
340334 if (redisUserResponse != null ) {
341335 System .out .println ("redis" );
@@ -345,16 +339,35 @@ private List<UsersResponse> login() {
345339 } else {
346340 System .out .println ("Jpa" );
347341 redisStatus = false ;
348- var entity = usersMapper .toEntity (loginRequest ());
349- jwtService .generateToken (entity );
350342
351- var responseList = usersRepository .findByUserEmailAddress (entity .getUserEmailAddress ()).stream ().map (usersMapper ::toDto ).toList ();
352343
344+ var optionalEntity = usersRepository .findByUserEmailAddress (loginRequest ().getUsersEmailAddress ());
345+
346+
347+ if (optionalEntity .isPresent ()) {
348+
349+ var users = optionalEntity .get ();
350+ List <Users > list = new ArrayList <>();
351+ list .add (users );
352+ jpaUserResponse = list .stream ().map (s -> UsersResponse
353+ .builder ()
354+ .usersAge (users .getUserAge ())
355+ .id (users .getId ())
356+ .usersStatus (users .getUserStatus ())
357+ .usersEmailAddress (users .getUserEmailAddress ())
358+ .usersRegistrationDate (users .getUserRegistrationDate ())
359+ .usersModifiedDate (users .getUserModifiedDate ())
360+ .usersFullName (users .getUserFullName ())
361+ .usersIdentityNo (users .getUserIdentityNo ())
362+ .cellphoneNo (users .getUserCellphoneNo ())
363+ .privileges (users .getFk_privilege_id ())
364+ .build ()).toList ()
365+ .get (0 );
353366
354- if (responseList .size () == 1 ) {
355367 passwordStatus = true ;
356- jpaUserResponse = responseList .get (0 );
357- redisService .set (encrypt , jpaUserResponse , 6L , TimeUnit .HOURS );
368+ jwtService .generateToken (optionalEntity .get ());
369+
370+
358371 } else {
359372 jpaUserResponse = null ;
360373 passwordStatus = false ;
@@ -369,9 +382,13 @@ private List<UsersResponse> login() {
369382
370383 return List .of (redisUserResponse );
371384 } else {
372- logger .info ("user with email {} successfully logged in using jpa data : {}" , loginRequest ().getUsersEmailAddress (), jpaUserResponse );
373385
374386 authenticationManager .authenticate (new UsernamePasswordAuthenticationToken (loginRequest ().getUsersEmailAddress (), loginRequest ().getUsersPassword ()));
387+ logger .info ("user with email {} successfully logged in using jpa data : {}" , loginRequest ().getUsersEmailAddress (), jpaUserResponse );
388+ redisService .set (encrypt , jpaUserResponse , 6L , TimeUnit .HOURS );
389+
390+ logger .info ("cached login data : {}" , redisService .get (encrypt ,UsersResponse .class ));
391+
375392 return List .of (jpaUserResponse );
376393 }
377394 } catch (AuthenticationException e ) {
@@ -385,7 +402,7 @@ private List<UsersResponse> login() {
385402 var resolveIssue = "please provide correct password or update password" ;
386403 throw throwExceptionAndReport (new UsersPasswordIncorrectException (errorMessage ), errorMessage , resolveIssue );
387404 } else {
388- var errorMessage = UsersControllerAdvice .setMessage ("email address" + loginRequest ().getUsersEmailAddress () + " is not found" );
405+ var errorMessage = UsersControllerAdvice .setMessage ("email address " + loginRequest ().getUsersEmailAddress () + " not found, verify your email or register " );
389406 var resolveIssue = "please provide correct password or register with the email address" ;
390407 throw throwExceptionAndReport (new UserNotFoundException (errorMessage ), errorMessage , resolveIssue );
391408 }
0 commit comments