diff --git a/pom.xml b/pom.xml
index bf93b282..900e401d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -330,11 +330,7 @@
-
- com.github.ulisesbocchio
- jasypt-spring-boot-starter
- 2.0.0
-
+
org.apache.poi
diff --git a/src/main/environment/common_dev.properties b/src/main/environment/common_dev.properties
index 6f5527f8..dd232803 100644
--- a/src/main/environment/common_dev.properties
+++ b/src/main/environment/common_dev.properties
@@ -3,14 +3,14 @@
spring.jpa.database=default
## Primary db
-encDbUserName=0YaEPoKpzM3TrEAHTLYQaf+DfR4mdaeP
-encDbPass=V+g/nL6/+ely0bgD7Du0yX83xNRl1H9Y
+encDbUserName=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPass=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
spring.datasource.url=jdbc:mysql://10.208.122.32:3306/db_iemr?autoReconnect=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
## Secondary db
-encDbUserNameSec=0YaEPoKpzM3TrEAHTLYQaf+DfR4mdaeP
-encDbPassSec=V+g/nL6/+ely0bgD7Du0yX83xNRl1H9Y
+encDbUserNameSec=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPassSec=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
secondary.datasource.url=jdbc:mysql://10.208.122.32:3306/db_reporting?autoReconnect=true&useSSL=false
secondary.datasource.driver-class-name=com.mysql.jdbc.Driver
diff --git a/src/main/environment/common_local.properties b/src/main/environment/common_local.properties
index aa905ffe..8f19692b 100644
--- a/src/main/environment/common_local.properties
+++ b/src/main/environment/common_local.properties
@@ -1,8 +1,8 @@
# dev env
# DB Connections
spring.datasource.url=jdbc:mysql://localhost:3306/db_iemr?autoReconnect=true&useSSL=false
-encDbUserName=0YaEPoKpzM3TrEAHTLYQaf+DfR4mdaeP
-encDbPass=V+g/nL6/+ely0bgD7Du0yX83xNRl1H9Y
+encDbUserName=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPass=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# KM config
diff --git a/src/main/environment/common_test.properties b/src/main/environment/common_test.properties
index c846541d..f089c3fb 100644
--- a/src/main/environment/common_test.properties
+++ b/src/main/environment/common_test.properties
@@ -5,15 +5,15 @@ spring.jpa.database=default
##--------------------------------------------## Primary db-------------------------------------------------------------------
-encDbUserName=0YaEPoKpzM3TrEAHTLYQaf+DfR4mdaeP
-encDbPass=V+g/nL6/+ely0bgD7Du0yX83xNRl1H9Y
+encDbUserName=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPass=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
spring.datasource.url=jdbc:mysql://10.208.122.38:3306/db_iemr?autoReconnect=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-encDbUserNameSec=0YaEPoKpzM3TrEAHTLYQaf+DfR4mdaeP
-encDbPassSec=V+g/nL6/+ely0bgD7Du0yX83xNRl1H9Y
+encDbUserNameSec=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPassSec=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
secondary.datasource.url=jdbc:mysql://10.208.122.38:3306/db_reporting?autoReconnect=true&useSSL=false
secondary.datasource.driver-class-name=com.mysql.jdbc.Driver
##-------------------------------------------------------------# KM config--------------------------------------------------
diff --git a/src/main/environment/common_uat.properties b/src/main/environment/common_uat.properties
index 5d6c8af7..f666ef81 100644
--- a/src/main/environment/common_uat.properties
+++ b/src/main/environment/common_uat.properties
@@ -2,8 +2,8 @@
# UAT env
# DB Connections
spring.datasource.url=jdbc:mysql://172.16.19.43:3306/db_iemr?autoReconnect=true&useSSL=false
-encDbUserName=0YaEPoKpzM3TrEAHTLYQaf+DfR4mdaeP
-encDbPass=V+g/nL6/+ely0bgD7Du0yX83xNRl1H9Y
+encDbUserName=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPass=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# KM config
diff --git a/src/main/java/com/iemr/common/config/PrimaryDBConfig.java b/src/main/java/com/iemr/common/config/PrimaryDBConfig.java
index e63549cf..ef07fabb 100644
--- a/src/main/java/com/iemr/common/config/PrimaryDBConfig.java
+++ b/src/main/java/com/iemr/common/config/PrimaryDBConfig.java
@@ -5,9 +5,9 @@
import org.apache.tomcat.jdbc.pool.PoolConfiguration;
import org.apache.tomcat.jdbc.pool.PoolProperties;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
@@ -20,6 +20,7 @@
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.config.ConfigProperties;
@Configuration
@@ -27,6 +28,9 @@
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory", basePackages = { "com.iemr.common.repository",
"com.iemr.common.repo", "com.iemr.common.notification.agent", "com.iemr.common.covidVaccination" })
public class PrimaryDBConfig {
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
Logger logger = LoggerFactory.getLogger(this.getClass().getName());
@Primary
@@ -48,16 +52,10 @@ public DataSource dataSource() {
org.apache.tomcat.jdbc.pool.DataSource datasource = new org.apache.tomcat.jdbc.pool.DataSource();
datasource.setPoolProperties(p);
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
+
- encryptor.setPassword("dev-env-secret");
-
-// logger.info(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbUserName")));
-// logger.info(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbPass")));
-
- datasource.setUsername(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbUserName")));
- datasource.setPassword(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbPass")));
+ datasource.setUsername(cryptoUtil.decrypt(ConfigProperties.getPropertyByName("encDbUserName")));
+ datasource.setPassword(cryptoUtil.decrypt(ConfigProperties.getPropertyByName("encDbPass")));
return datasource;
}
diff --git a/src/main/java/com/iemr/common/config/SecondaryDBConfig.java b/src/main/java/com/iemr/common/config/SecondaryDBConfig.java
index 74008130..980da8b4 100644
--- a/src/main/java/com/iemr/common/config/SecondaryDBConfig.java
+++ b/src/main/java/com/iemr/common/config/SecondaryDBConfig.java
@@ -5,7 +5,9 @@
import org.apache.tomcat.jdbc.pool.PoolConfiguration;
import org.apache.tomcat.jdbc.pool.PoolProperties;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -18,6 +20,7 @@
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.config.ConfigProperties;
@Configuration
@@ -28,6 +31,11 @@
basePackages = { "com.iemr.common.secondary.repository.callreport" }
)
public class SecondaryDBConfig {
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
+
+ Logger logger = LoggerFactory.getLogger(this.getClass().getName());
@Bean(name = "secondaryDataSource")
@ConfigurationProperties(prefix = "secondary.datasource")
public DataSource dataSource() {
@@ -46,16 +54,9 @@ public DataSource dataSource() {
org.apache.tomcat.jdbc.pool.DataSource datasource = new org.apache.tomcat.jdbc.pool.DataSource();
datasource.setPoolProperties(p);
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
-
-// logger.info(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbUserNameSec")));
-// logger.info(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbPassSec")));
-
- datasource.setUsername(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbUserNameSec")));
- datasource.setPassword(encryptor.decrypt(ConfigProperties.getPropertyByName("encDbPassSec")));
+ datasource.setUsername(cryptoUtil.decrypt(ConfigProperties.getPropertyByName("encDbUserNameSec")));
+ datasource.setPassword(cryptoUtil.decrypt(ConfigProperties.getPropertyByName("encDbPassSec")));
return datasource;
}
diff --git a/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java b/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java
index e52ff406..a2869673 100644
--- a/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java
+++ b/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java
@@ -36,6 +36,7 @@
import com.iemr.common.model.user.LoginRequestModel;
import com.iemr.common.model.user.LoginResponseModel;
import com.iemr.common.service.users.IEMRAdminUserService;
+import com.iemr.common.utils.encryption.AESUtil;
import com.iemr.common.utils.exception.IEMRException;
import com.iemr.common.utils.mapper.InputMapper;
import com.iemr.common.utils.mapper.OutputMapper;
@@ -54,6 +55,13 @@ public class IEMRAdminController {
private InputMapper inputMapper = new InputMapper();
private IEMRAdminUserService iemrAdminUserServiceImpl;
+
+ private AESUtil aesUtil;
+
+ @Autowired
+ public void setAesUtil(AESUtil aesUtil) {
+ this.aesUtil = aesUtil;
+ }
@Autowired
public void setIemrAdminUserService(IEMRAdminUserService iemrAdminUserService) {
@@ -92,7 +100,9 @@ public String userAuthenticate(
OutputResponse response = new OutputResponse();
logger.info("userAuthenticate request - " + m_User + " " + m_User.getUserName() + " " + m_User.getPassword());
try {
- List mUser = iemrAdminUserServiceImpl.userAuthenticate(m_User.getUserName(), m_User.getPassword());
+ String decryptPassword = aesUtil.decrypt("Piramal12Piramal", m_User.getPassword());
+ logger.info("decryptPassword : " + decryptPassword);
+ List mUser = iemrAdminUserServiceImpl.userAuthenticate(m_User.getUserName(), decryptPassword);
JSONObject resMap = new JSONObject();
JSONObject serviceRoleMultiMap = new JSONObject();
JSONObject serviceRoleMap = new JSONObject();
@@ -275,7 +285,8 @@ public String superUserAuthenticate(
if (!m_User.getUserName().equalsIgnoreCase("SuperAdmin")) {
throw new IEMRException("Please log with admin credentials");
}
- User mUser = iemrAdminUserServiceImpl.superUserAuthenticate(m_User.getUserName(), m_User.getPassword());
+ String decryptPassword = aesUtil.decrypt("Piramal12Piramal", m_User.getPassword());
+ User mUser = iemrAdminUserServiceImpl.superUserAuthenticate(m_User.getUserName(), decryptPassword);
JSONObject resMap = new JSONObject();
JSONObject previlegeObj = new JSONObject();
//condition added to check for concurrent login
@@ -429,8 +440,9 @@ public String setPassword(
}
User mUser = mUsers.get(0);
String setStatus;
- noOfRowModified = iemrAdminUserServiceImpl.setForgetPassword(mUser, m_user.getPassword(),
- m_user.getTransactionId(),m_user.getIsAdmin());
+ String decryptPassword = aesUtil.decrypt("Piramal12Piramal", m_user.getPassword());
+ noOfRowModified = iemrAdminUserServiceImpl.setForgetPassword(mUser, decryptPassword,
+ m_user.getTransactionId(), m_user.getIsAdmin());
if (noOfRowModified > 0) {
setStatus = "Password Changed";
} else {
diff --git a/src/main/java/com/iemr/common/service/door_to_door_app/DoorToDoorServiceImpl.java b/src/main/java/com/iemr/common/service/door_to_door_app/DoorToDoorServiceImpl.java
index cb3a9df1..5e73b3ec 100644
--- a/src/main/java/com/iemr/common/service/door_to_door_app/DoorToDoorServiceImpl.java
+++ b/src/main/java/com/iemr/common/service/door_to_door_app/DoorToDoorServiceImpl.java
@@ -8,7 +8,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,11 +30,15 @@
import com.iemr.common.data.door_to_door_app.V_doortodooruserdetails;
import com.iemr.common.model.user.LoginRequestModel;
import com.iemr.common.repo.door_to_door_app.V_doortodooruserdetailsRepo;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.mapper.InputMapper;
@Service
@PropertySource("classpath:application.properties")
public class DoorToDoorServiceImpl implements DoorToDoorService {
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
@Value("${avniRegistrationLimit}")
private String avniRegistrationLimit;
@@ -264,11 +268,13 @@ public void scheduleJobForRegisterAvniBeneficiary() throws Exception {
public String amritUserAuthenticate() {
String authorization = "";
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
- String amritUser = encryptor.decrypt(amritUserName);
- String amritPass = encryptor.decrypt(amritPassword);
+ /*
+ * StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
+ * encryptor.setAlgorithm("PBEWithMD5AndDES");
+ * encryptor.setPassword("dev-env-secret");
+ */
+ String amritUser = cryptoUtil.decrypt(amritUserName);
+ String amritPass = cryptoUtil.decrypt(amritPassword);
LoginRequestModel loginCredentials = new LoginRequestModel(amritUser, amritPass);
loginCredentials.setDoLogout(true);
MultiValueMap headersLogin = new LinkedMultiValueMap();
diff --git a/src/main/java/com/iemr/common/service/email/EmailServiceImpl.java b/src/main/java/com/iemr/common/service/email/EmailServiceImpl.java
index a0e3d7c8..830e5ef4 100644
--- a/src/main/java/com/iemr/common/service/email/EmailServiceImpl.java
+++ b/src/main/java/com/iemr/common/service/email/EmailServiceImpl.java
@@ -11,7 +11,6 @@
import javax.mail.internet.MimeMessage;
import javax.mail.util.ByteArrayDataSource;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,13 +35,17 @@
import com.iemr.common.repository.email.StockAlertDataRepo;
import com.iemr.common.repository.feedback.FeedbackRepository;
import com.iemr.common.service.beneficiary.IEMRSearchUserService;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.config.ConfigProperties;
import com.iemr.common.utils.http.HttpUtils;
import com.iemr.common.utils.mapper.InputMapper;
@Service
public class EmailServiceImpl implements EmailService {
-
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
+
private InputMapper inputMapper = new InputMapper();
@Autowired
private JavaMailSender javaMailSender;
@@ -485,11 +488,9 @@ int sendEmailWithAttachment(String recipient, ByteArrayDataSource attachment) th
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(host);
mailSender.setPort(Integer.parseInt(port));
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
- String decryptSender = encryptor.decrypt(sender);
- String decryptPass = encryptor.decrypt(password);
+
+ String decryptSender = cryptoUtil.decrypt(sender);
+ String decryptPass = cryptoUtil.decrypt(password);
mailSender.setUsername(decryptSender);
mailSender.setPassword(decryptPass);
diff --git a/src/main/java/com/iemr/common/service/everwell/EverwellRegistrationServiceImpl.java b/src/main/java/com/iemr/common/service/everwell/EverwellRegistrationServiceImpl.java
index 76753140..7acb7342 100644
--- a/src/main/java/com/iemr/common/service/everwell/EverwellRegistrationServiceImpl.java
+++ b/src/main/java/com/iemr/common/service/everwell/EverwellRegistrationServiceImpl.java
@@ -8,7 +8,6 @@
import java.util.Date;
import java.util.List;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,12 +35,15 @@
import com.iemr.common.repository.everwell.EverwellFetchAndSync;
import com.iemr.common.repository.location.LocationDistrictRepository;
import com.iemr.common.repository.location.LocationStateRepository;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.mapper.InputMapper;
import com.iemr.common.utils.response.OutputResponse;
@Service
@PropertySource("classpath:application.properties")
public class EverwellRegistrationServiceImpl implements EverwellRegistrationService {
+ @Autowired
+ private CryptoUtil cryptoUtil;
private InputMapper inputMapper = new InputMapper();
@@ -124,11 +126,9 @@ public void registerBeneficiary() {
try {
// 1097 user authentication
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
- String amritUser = encryptor.decrypt(amritUserName);
- String amritPass = encryptor.decrypt(amritPassword);
+
+ String amritUser = cryptoUtil.decrypt(amritUserName);
+ String amritPass = cryptoUtil.decrypt(amritPassword);
LoginRequestModel loginCredentials1097 = new LoginRequestModel(amritUser, amritPass);
MultiValueMap headersLogin = new LinkedMultiValueMap();
diff --git a/src/main/java/com/iemr/common/service/otp/OTPHandlerImpl.java b/src/main/java/com/iemr/common/service/otp/OTPHandlerImpl.java
index c8fd9151..6cad3416 100644
--- a/src/main/java/com/iemr/common/service/otp/OTPHandlerImpl.java
+++ b/src/main/java/com/iemr/common/service/otp/OTPHandlerImpl.java
@@ -5,7 +5,6 @@
import java.util.Random;
import java.util.concurrent.TimeUnit;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,6 +18,7 @@
import com.google.common.primitives.Ints;
import com.iemr.common.data.otp.OTPRequestParsor;
import com.iemr.common.service.users.IEMRAdminUserServiceImpl;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.config.ConfigProperties;
import com.iemr.common.utils.http.HttpUtils;
@@ -32,7 +32,10 @@
@Service
public class OTPHandlerImpl implements OTPHandler {
-
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
+
@Autowired
HttpUtils httpUtils;
@Autowired
@@ -135,13 +138,11 @@ private String getEncryptedOTP(int otp) throws Exception {
// send SMS to user
private void sendSMS(int otp, String phoneNo, String msgText) throws Exception {
// Boolean doSendSMS = ConfigProperties.getBoolean("send-sms");
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
+
String sendSMSURL = ConfigProperties.getPropertyByName("send-message-url");
String sendSMSAPI = OTPHandlerImpl.SMS_GATEWAY_URL + "/" + sendSMSURL;
- String senderName = encryptor.decrypt(ConfigProperties.getPropertyByName("sms-username"));
- String senderPassword = encryptor.decrypt(ConfigProperties.getPropertyByName("sms-password"));
+ String senderName = cryptoUtil.decrypt(ConfigProperties.getPropertyByName("sms-username"));
+ String senderPassword = cryptoUtil.decrypt(ConfigProperties.getPropertyByName("sms-password"));
String senderNumber = ConfigProperties.getPropertyByName("sms-sender-number");
sendSMSAPI = sendSMSAPI.replace("USERNAME", senderName).replace("PASSWORD", senderPassword)
diff --git a/src/main/java/com/iemr/common/service/sms/SMSServiceImpl.java b/src/main/java/com/iemr/common/service/sms/SMSServiceImpl.java
index 609f063b..3b7400d5 100644
--- a/src/main/java/com/iemr/common/service/sms/SMSServiceImpl.java
+++ b/src/main/java/com/iemr/common/service/sms/SMSServiceImpl.java
@@ -13,7 +13,6 @@
import java.util.Set;
import java.util.stream.Collectors;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -74,6 +73,7 @@
import com.iemr.common.repository.sms.SMSTypeRepository;
import com.iemr.common.repository.users.IEMRUserRepositoryCustom;
import com.iemr.common.service.beneficiary.IEMRSearchUserService;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.config.ConfigProperties;
import com.iemr.common.utils.http.HttpUtils;
import com.iemr.common.utils.mapper.OutputMapper;
@@ -86,7 +86,10 @@ public class SMSServiceImpl implements SMSService {
private String prescription;
@Autowired
SMSMapper smsMapper;
-
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
+
@Autowired
SMSTemplateRepository smsTemplateRepository;
@@ -873,15 +876,13 @@ private String getInstituteData(String className, String methodName, SMSRequest
public void publishSMS() {
if (!SMSServiceImpl.publishingSMS) {
try {
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
+
SMSServiceImpl.publishingSMS = true;
Boolean doSendSMS = ConfigProperties.getBoolean("send-sms");
String sendSMSURL = ConfigProperties.getPropertyByName("send-message-url");
String sendSMSAPI = SMSServiceImpl.SMS_GATEWAY_URL + "/" + sendSMSURL;
- String senderName = encryptor.decrypt(ConfigProperties.getPropertyByName("sms-username"));
- String senderPassword = encryptor.decrypt(ConfigProperties.getPropertyByName("sms-password"));
+ String senderName = cryptoUtil.decrypt(ConfigProperties.getPropertyByName("sms-username"));
+ String senderPassword = cryptoUtil.decrypt(ConfigProperties.getPropertyByName("sms-password"));
String senderNumber = ConfigProperties.getPropertyByName("sms-sender-number");
sendSMSAPI = sendSMSAPI.replace("USERNAME", senderName).replace("PASSWORD", senderPassword)
.replace("SENDER_NUMBER", senderNumber);
diff --git a/src/main/java/com/iemr/common/service/swaasa/SwassaServiceImpl.java b/src/main/java/com/iemr/common/service/swaasa/SwassaServiceImpl.java
index f6d6fa5c..4b84453f 100644
--- a/src/main/java/com/iemr/common/service/swaasa/SwassaServiceImpl.java
+++ b/src/main/java/com/iemr/common/service/swaasa/SwassaServiceImpl.java
@@ -7,7 +7,6 @@
import javax.xml.ws.http.HTTPException;
-import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +31,7 @@
import com.iemr.common.data.swaasa.SwaasaAuthenticateResponse;
import com.iemr.common.data.swaasa.SwaasaValidateCoughReponseDTO;
import com.iemr.common.repo.swaasa.SwaasaRepository;
+import com.iemr.common.utils.CryptoUtil;
import com.iemr.common.utils.http.HttpUtils;
import com.iemr.common.utils.mapper.InputMapper;
@@ -43,6 +43,9 @@ public class SwassaServiceImpl implements SwaasaService {
private static long authCreatedAt;
private static HttpUtils httpUtils = new HttpUtils();
+
+ @Autowired
+ private CryptoUtil cryptoUtil;
private final Logger logger = LoggerFactory.getLogger(this.getClass().getName());
@@ -134,11 +137,9 @@ public Boolean verifyCough(MultipartFile file, String authToken, Long patientId)
throw new Exception("file is missing,please pass a cough recording file");
long currTime = System.currentTimeMillis();
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
- String decryptswaasaEmail = encryptor.decrypt(swassaEmail);
- String decryptswaasaPassword = encryptor.decrypt(swaasaPassword);
+
+ String decryptswaasaEmail = cryptoUtil.decrypt(swassaEmail);
+ String decryptswaasaPassword = cryptoUtil.decrypt(swaasaPassword);
if (swaasaToken == null || (((currTime - authCreatedAt) / (60 * 1000))) > 110)
swaasaToken = getSwaasaAdminLogin(decryptswaasaEmail, decryptswaasaPassword);
@@ -219,11 +220,8 @@ public String initiateAssesment(String request, MultipartFile file) throws Excep
// check if swaasa session is active
long currTime = System.currentTimeMillis();
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
- String decryptswaasaEmail = encryptor.decrypt(swassaEmail);
- String decryptswaasaPassword = encryptor.decrypt(swaasaPassword);
+ String decryptswaasaEmail = cryptoUtil.decrypt(swassaEmail);
+ String decryptswaasaPassword = cryptoUtil.decrypt(swaasaPassword);
if (swaasaToken == null || (((currTime - authCreatedAt) / (60 * 1000))) > 110)
swaasaToken = getSwaasaAdminLogin(decryptswaasaEmail, decryptswaasaPassword);
@@ -322,11 +320,9 @@ public String getAssesment(String assessmentId) throws Exception {
return new Gson().toJson(swaasaEntity);
} else {
long currTime = System.currentTimeMillis();
- StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
- encryptor.setAlgorithm("PBEWithMD5AndDES");
- encryptor.setPassword("dev-env-secret");
- String decryptswaasaEmail = encryptor.decrypt(swassaEmail);
- String decryptswaasaPassword = encryptor.decrypt(swaasaPassword);
+
+ String decryptswaasaEmail = cryptoUtil.decrypt(swassaEmail);
+ String decryptswaasaPassword = cryptoUtil.decrypt(swaasaPassword);
if (swaasaToken == null || (((currTime - authCreatedAt) / (60 * 1000))) > 110)
swaasaToken = getSwaasaAdminLogin(decryptswaasaEmail, decryptswaasaPassword);
diff --git a/src/main/java/com/iemr/common/utils/CryptoUtil.java b/src/main/java/com/iemr/common/utils/CryptoUtil.java
new file mode 100644
index 00000000..bdfbcfcd
--- /dev/null
+++ b/src/main/java/com/iemr/common/utils/CryptoUtil.java
@@ -0,0 +1,55 @@
+package com.iemr.common.utils;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CryptoUtil {
+
+ private static final Logger logger = LoggerFactory.getLogger(CryptoUtil.class);
+ private static final String ALGORITHM = "AES";
+ private static final String SECRET_KEY = "dev-envro-secret";
+
+ public String encrypt(String value) throws Exception {
+ SecretKey secretKey = new SecretKeySpec(SECRET_KEY.getBytes(StandardCharsets.UTF_8), ALGORITHM);
+ Cipher cipher = Cipher.getInstance(ALGORITHM + "/ECB/PKCS5Padding");
+ cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+ byte[] encryptedBytes = cipher.doFinal(addPadding(value).getBytes(StandardCharsets.UTF_8));
+ return Base64.getEncoder().encodeToString(encryptedBytes);
+ }
+
+ public String decrypt(String encryptedValue) {
+ try {
+ SecretKey secretKey = new SecretKeySpec(SECRET_KEY.getBytes(StandardCharsets.UTF_8), ALGORITHM);
+ Cipher cipher = Cipher.getInstance(ALGORITHM + "/ECB/PKCS5Padding");
+ cipher.init(Cipher.DECRYPT_MODE, secretKey);
+ byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedValue));
+ return removePadding(new String(decryptedBytes, StandardCharsets.UTF_8));
+ } catch (Exception e) {
+ logger.error("Exception while decrypting string. Intentionally throwing null pointer", e);
+ return null;
+ }
+ }
+
+ private String addPadding(String value) {
+ int paddingLength = 16 - (value.length() % 16);
+ StringBuilder paddedValue = new StringBuilder(value);
+ for (int i = 0; i < paddingLength; i++) {
+ paddedValue.append((char) paddingLength);
+ }
+ return paddedValue.toString();
+ }
+
+ private String removePadding(String value) {
+ int paddingLength = value.charAt(value.length() - 1);
+ return value.substring(0, value.length() - paddingLength);
+ }
+}
diff --git a/src/main/java/com/iemr/common/utils/encryption/AESUtil.java b/src/main/java/com/iemr/common/utils/encryption/AESUtil.java
new file mode 100644
index 00000000..534a25ac
--- /dev/null
+++ b/src/main/java/com/iemr/common/utils/encryption/AESUtil.java
@@ -0,0 +1,141 @@
+package com.iemr.common.utils.encryption;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.KeySpec;
+import java.util.Objects;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SecretKey;
+import javax.crypto.SecretKeyFactory;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.PBEKeySpec;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.bind.DatatypeConverter;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class AESUtil {
+ public enum DataType {
+ HEX,
+ BASE64
+ }
+
+ private static final Logger logger = LoggerFactory.getLogger(AESUtil.class);
+ private static final String CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";
+ private static final String SECRET_KEY_ALGORITHM = "PBKDF2WithHmacSHA1";
+ private static final String KEY_ALGORITHM = "AES";
+
+ private final int IV_SIZE = 128;
+
+ private int iterationCount = 1989;
+ private int keySize = 256;
+
+ private int saltLength;
+
+ private final DataType dataType = DataType.BASE64;
+
+ private Cipher cipher;
+
+ public AESUtil() {
+ try {
+ cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+ saltLength = this.keySize / 4;
+ } catch (NoSuchPaddingException | NoSuchAlgorithmException e) {
+ logger.info(e.getMessage());
+ }
+ }
+
+ public AESUtil(int keySize, int iterationCount) {
+ this.keySize = keySize;
+ this.iterationCount = iterationCount;
+ try {
+ cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+ saltLength = this.keySize / 4;
+ } catch (NoSuchPaddingException | NoSuchAlgorithmException e) {
+ logger.info(e.getMessage());
+ }
+ }
+
+ public String decrypt(String salt, String iv, String passPhrase, String cipherText) {
+ try {
+ SecretKey key = generateKey(salt, passPhrase);
+ byte[] encrypted;
+ if (dataType.equals(DataType.HEX)) {
+ encrypted = fromHex(cipherText);
+ } else {
+ encrypted = fromBase64(cipherText);
+ }
+ byte[] decrypted = doFinal(Cipher.DECRYPT_MODE, key, iv, encrypted);
+ return new String(Objects.requireNonNull(decrypted), StandardCharsets.UTF_8);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ public String decrypt(String passPhrase, String cipherText) {
+ try {
+ String salt = cipherText.substring(0, saltLength);
+ int ivLength = IV_SIZE / 4;
+ String iv = cipherText.substring(saltLength, saltLength + ivLength);
+ String ct = cipherText.substring(saltLength + ivLength);
+ return decrypt(salt, iv, passPhrase, ct);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ private SecretKey generateKey(String salt, String passPhrase) {
+ try {
+ SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(SECRET_KEY_ALGORITHM);
+ KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), fromHex(salt), iterationCount, keySize);
+ return new SecretKeySpec(secretKeyFactory.generateSecret(keySpec).getEncoded(), KEY_ALGORITHM);
+ } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
+ logger.info(e.getMessage());
+ }
+ return null;
+ }
+
+ private static byte[] fromBase64(String str) {
+ return DatatypeConverter.parseBase64Binary(str.trim());
+ }
+
+ private static String toBase64(byte[] ba) {
+ return DatatypeConverter.printBase64Binary(ba);
+ }
+
+ private static byte[] fromHex(String str) {
+ return DatatypeConverter.parseHexBinary(str);
+ }
+
+ private static String toHex(byte[] ba) {
+ return DatatypeConverter.printHexBinary(ba);
+ }
+
+ private byte[] doFinal(int mode, SecretKey secretKey, String iv, byte[] bytes) throws IllegalBlockSizeException, BadPaddingException {
+ try {
+ cipher.init(mode, secretKey, new IvParameterSpec(fromHex(iv)));
+ return cipher.doFinal(bytes);
+ } catch (InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException
+ | InvalidKeyException e) {
+ logger.info(e.getMessage());
+ }
+ return cipher.doFinal(bytes);
+ }
+
+ private static byte[] generateRandom(int length) {
+ SecureRandom random = new SecureRandom();
+ byte[] randomBytes = new byte[length];
+ random.nextBytes(randomBytes);
+ return randomBytes;
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 44f44555..8e026dfc 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -108,8 +108,8 @@ cron-scheduler-unblock=0 0 0 * * ? *
spring.mail.host=smtp.gmail.com
spring.mail.port=587
-spring.mail.username=NkYpYVHF66V2gHnu40pahZtnmGrOZdc0Q0gS5lF0rCYPQK093LSEyw==
-spring.mail.password=KJIyYWFoNBKAKhCsNt+8AgqfQNupI6x0OqIak8V2Ywg=
+spring.mail.username=aaHXGrs9rQvATAgeH/7GDf7sXkJqElxGvEHYCxA25iLwWtMPFRrP9brLluxLBhd5
+spring.mail.password=K9QfHpyJYHkY5UruzThjhvBa0w8VGs/1usuW7EsGF3nwWtMPFRrP9brLluxLBhd5
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
mail-subject=Inventory alert!!
@@ -161,8 +161,8 @@ logging.logback.rollingpolicy.max-history=1
### SMS Gateway URL details
sms-gateway-url=http://sms.smsjosh.com
-sms-username=uS4PUpKAh7L6TL+6ayM4lg==
-sms-password=OaroRlV1Re7tpuKq5p/7rDfOH9lxnef7
+sms-username=cQXj/cvwruBg24NQd8Bv0/Ba0w8VGs/1usuW7EsGF3k=
+sms-password=5o4ctqHfM1DNYxG3+WNYVvBa0w8VGs/1usuW7EsGF3k=
send-message-url=api/mt/SendSMS?user=USERNAME&password=PASSWORD&senderid=iAMRIT&channel=Trans&DCS=0&flashsms=0&number=91RECEIVER_NUMBER&text=SMS_TEXT&route=9
sms-sender-number=DOCTOR
@@ -187,8 +187,8 @@ queue-capacity=500
## everwell variables
everwellUserName = Demo_API_SVA
everwellPassword = Demo_API_SVA
-amritUserName = tYjQj6MgoSuJfGpXZURmU8/nYk+PNSfx
-amritPassword = JsIMz4z+J4fMTlZrSkGSa2gvuvddV03y
+amritUserName = oLRC5amRa12f2l4um4BXQfBa0w8VGs/1usuW7EsGF3k=
+amritPassword = qLr/xepKic9bbwXt8atLjfBa0w8VGs/1usuW7EsGF3k=
everwellVanID = 1
everwellProviderServiceMapID = 1761
everwellgovtIdentityNo = 2
@@ -208,8 +208,8 @@ everwelluserAuthenticate = https://beta-hub.everwell.org/token
everwellRegisterBenficiary = http://10.208.122.38:8080/commonapi-v1.0/beneficiary/create
## SWAASA credentials
-swaasaEmail = js10kCVIVQoVo271vP6Ll62wclSSABj4fsEP9i03Ptkx6moas9xghA==
-swaasaPassword = EcPvUbEmDVxZEaxhGb42SPzprZCSjYT1
+swaasaEmail = nbfJjsrz8Uz1+AbBpX4fOFiJiNXbfZ98WCsKjvCFvk/wWtMPFRrP9brLluxLBhd5
+swaasaPassword = 4HOXNVjATlzYZuQObN36svBa0w8VGs/1usuW7EsGF3k=
## SWASSA APIs
swaasaAdminLogin = http://swaasa.sandbox.swaasa.ai/api/adminLogin
@@ -224,20 +224,25 @@ failedLoginAttempt=5
# always press enter after last line
+
+
+
# Test env
# DB Connections
spring.jpa.database=default
##--------------------------------------------## Primary db-------------------------------------------------------------------
-spring.datasource.username=piramaldev
-spring.datasource.password=Piramal@2017
+
+encDbUserName=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPass=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
spring.datasource.url=jdbc:mysql://10.208.122.38:3306/db_iemr?autoReconnect=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-secondary.datasource.username=piramaldev
-secondary.datasource.password=Piramal@2017
+
+encDbUserNameSec=zFlYsp9Z0s+lRvLM15A3g/Ba0w8VGs/1usuW7EsGF3k=
+encDbPassSec=JGGAGn5wTlrbTLUHY+5BzfBa0w8VGs/1usuW7EsGF3k=
secondary.datasource.url=jdbc:mysql://10.208.122.38:3306/db_reporting?autoReconnect=true&useSSL=false
secondary.datasource.driver-class-name=com.mysql.jdbc.Driver
##-------------------------------------------------------------# KM config--------------------------------------------------
@@ -261,14 +266,14 @@ genben-api=http://10.208.122.38:8080/bengenapi-v1.0
send-sms=false
###SMS Scheduler configurations
-start-sms-scheduler=true
+start-sms-scheduler=false
cron-scheduler-sms=0 0/1 * * * ? *
##----------------------------------------------#### Email Configuration-----------------------------------------------------------------
send-email=false
###Email Scheduler configurations
-start-email-scheduler=true
+start-email-scheduler=false
cron-scheduler-email=0 0/1 * * * ? *
##-------------------------------###cti data sync Scheduler configurations------------------------------------------------------
@@ -327,4 +332,3 @@ avniRegistrationLimit=7
-