summaryrefslogtreecommitdiff
path: root/spring-framework/07-user-jdbc-ds-transaction/src/main/java/com/example/fp/UserManagerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'spring-framework/07-user-jdbc-ds-transaction/src/main/java/com/example/fp/UserManagerImpl.java')
-rw-r--r--spring-framework/07-user-jdbc-ds-transaction/src/main/java/com/example/fp/UserManagerImpl.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/spring-framework/07-user-jdbc-ds-transaction/src/main/java/com/example/fp/UserManagerImpl.java b/spring-framework/07-user-jdbc-ds-transaction/src/main/java/com/example/fp/UserManagerImpl.java
new file mode 100644
index 0000000..ad2a58d
--- /dev/null
+++ b/spring-framework/07-user-jdbc-ds-transaction/src/main/java/com/example/fp/UserManagerImpl.java
@@ -0,0 +1,78 @@
+package com.example.fp;
+
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
+
+import com.example.fp.dao.UserDAO;
+
+public class UserManagerImpl implements UserManager {
+
+ private UserDAO userDAO;
+
+ public void setUserDAO(UserDAO userDAO) {
+ this.userDAO = userDAO;
+ }
+
+ @Override
+ public void create(User user) {
+ user.setPassword(calculatePasswordHash(user.getPassword()));
+ userDAO.create(user);
+ }
+
+ @Override
+ public User find(int uid) {
+ return userDAO.find(uid);
+ }
+
+ @Override
+ public List<User> findAll() {
+ return userDAO.findAll();
+ }
+
+ @Override
+ public void delete(int uid) {
+ userDAO.delete(uid);
+ }
+
+ @Override
+ public void update(User user) {
+ userDAO.update(user);
+ }
+
+ @Override
+ public void setPassword(int uid, String plainTextPassword) {
+ User user = userDAO.find(uid);
+
+ user.setPassword(calculatePasswordHash(plainTextPassword));
+
+ userDAO.update(user);
+ }
+
+ public static String calculatePasswordHash(String plainText) {
+
+ try {
+ // Static getInstance method is called with hashing MD5
+ MessageDigest md = MessageDigest.getInstance("MD5");
+
+ // digest() method is called to calculate message digest
+ // of an input digest() return array of byte
+ byte[] messageDigest = md.digest(plainText.getBytes());
+
+ // Convert byte array into signum representation
+ BigInteger no = new BigInteger(1, messageDigest);
+
+ // Convert message digest into hex value
+ String hashtext = no.toString(16);
+ while (hashtext.length() < 32) {
+ hashtext = "0" + hashtext;
+ }
+
+ return hashtext;
+ } catch (NoSuchAlgorithmException e) {
+ // For specifying wrong message digest algorithms
+ throw new RuntimeException(e);
+ }
+ }
+} \ No newline at end of file