Skip to content

Commit

Permalink
Add encryption tests for existing user and customerUser, fix hibernat…
Browse files Browse the repository at this point in the history
…e4 maven plugin to not export table droppings, remove hibernate4 maven plugin from general pom file, add connection properties to hibernate4 maven plugin for all databases
  • Loading branch information
Nazjara committed Feb 10, 2017
1 parent 2a3feb4 commit f350984
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 173 deletions.
165 changes: 70 additions & 95 deletions modules/core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@
</executions>
</plugin>
<plugin>
<!-- http://mydevnotes.nicus.it/2013/03/generate-ddl-with-maven-jpa-hibernate-4.html -->
<!--http://mydevnotes.nicus.it/2013/03/generate-ddl-with-maven-jpa-hibernate-4.html-->
<!--http://stackoverflow.com/questions/28615977/how-to-use-hibernate4-maven-plugin-to-generate-multiple-dialects-schemas-->
<groupId>de.juplo</groupId>
<artifactId>hibernate4-maven-plugin</artifactId>
Expand All @@ -290,12 +290,24 @@
<!--</execution>-->
<!--</executions>-->
<!--<configuration>-->
<!--<username>postgres</username>-->
<!--<password>oe9jaacZLbR9pN</password>-->
<!--<driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>-->
<!--<hibernateDialect>org.hibernate.dialect.PostgreSQLDialect</hibernateDialect>-->
<!--<url>jdbc:oracle:thin:@//192.168.99.100:1521/XE</url>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__PostgreSQL.sql</outputFile>-->
<!--<type>create</type>-->
<!--</configuration>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>org.postgresql</groupId>-->
<!--<artifactId>postgresql</artifactId>-->
<!--<version>9.4.1212.jre7</version>-->
<!--</dependency>-->
<!--</dependencies>-->

<!-- oracle -->
<!--oracle -->
<!--<executions>-->
<!--<execution>-->
<!--<id>oracle</id>-->
Expand All @@ -305,12 +317,17 @@
<!--</execution>-->
<!--</executions>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__Oracle.sql</outputFile>-->
<!--<username>system</username>-->
<!--<password>oracle</password>-->
<!--<driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>-->
<!--<hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>-->
<!--<url>jdbc:oracle:thin:@//192.168.99.100:1521/XE</url>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__Oracle.sql</outputFile>-->
<!--<type>create</type>-->
<!--</configuration>-->

<!-- mysql -->
<!--mysql-->
<!--<executions>-->
<!--<execution>-->
<!--<id>mysql</id>-->
Expand All @@ -320,12 +337,24 @@
<!--</execution>-->
<!--</executions>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernateDialect>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__MySQL.sql</outputFile>-->
<!--<username>root</username>-->
<!--<password>password</password>-->
<!--<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>-->
<!--<hibernateDialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernateDialect>-->
<!--<url>jdbc:mysql://192.168.99.100:3306/smsc</url>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__MySQL.sql</outputFile>-->
<!--<type>create</type>-->
<!--</configuration>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>mysql</groupId>-->
<!--<artifactId>mysql-connector-java</artifactId>-->
<!--<version>6.0.5</version>-->
<!--</dependency>-->
<!--</dependencies>-->

<!--h2-->
<!--h2-->
<!--<executions>-->
<!--<execution>-->
<!--<id>h2</id>-->
Expand All @@ -335,100 +364,46 @@
<!--</execution>-->
<!--</executions>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.H2Dialect</hibernateDialect>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__H2.sql</outputFile>-->
<!--<driverClassName>org.h2.Driver</driverClassName>-->
<!--<hibernateDialect>org.hibernate.dialect.H2Dialect</hibernateDialect>-->
<!--<url>jdbc:h2:mem:smsc</url>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__H2.sql</outputFile>-->
<!--<type>create</type>-->
<!--</configuration>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>com.h2database</groupId>-->
<!--<artifactId>h2</artifactId>-->
<!--<version>1.4.193</version>-->
<!--</dependency>-->
<!--</dependencies>-->

<!--hsqldb-->
<executions>
<execution>
<id>hsqldb</id>
<goals>
<goal>export</goal>
</goals>
</execution>
</executions>
<configuration>
<driverClassName>org.hsqldb.jdbcDriver</driverClassName>
<hibernateDialect>org.hibernate.dialect.HSQLDialect</hibernateDialect>
<url>jdbc:hsqldb:mem:smsc</url>
<target>SCRIPT</target>
<outputFile>${project.build.directory}/V1_2__HSQLDB.sql</outputFile>
</configuration>
<dependencies>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.3.4</version>
</dependency>
</dependencies>
</plugin>

<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-surefire-plugin</artifactId>-->
<!--<version>2.16</version>-->
<!--<executions>-->
<!--&lt;!&ndash;postgreSQL is running first by default&ndash;&gt;-->
<!--<execution>-->
<!--<id>2</id>-->
<!--<goals>-->
<!--<goal>test</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<systemProperties>-->
<!--<property>-->
<!--<name>smsc.database.dialect</name>-->
<!--<value>mysql</value>-->
<!--</property>-->
<!--</systemProperties>-->
<!--</configuration>-->
<!--</execution>-->
<!--<execution>-->
<!--<id>3</id>-->
<!--<goals>-->
<!--<goal>test</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<systemProperties>-->
<!--<property>-->
<!--<name>smsc.database.dialect</name>-->
<!--<value>oracle</value>-->
<!--</property>-->
<!--</systemProperties>-->
<!--</configuration>-->
<!--</execution>-->
<!--<execution>-->
<!--<id>4</id>-->
<!--<id>hsqldb</id>-->
<!--<goals>-->
<!--<goal>test</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<systemProperties>-->
<!--<property>-->
<!--<name>smsc.database.dialect</name>-->
<!--<value>h2</value>-->
<!--</property>-->
<!--</systemProperties>-->
<!--</configuration>-->
<!--</execution>-->
<!--<execution>-->
<!--<id>5</id>-->
<!--<goals>-->
<!--<goal>test</goal>-->
<!--<goal>export</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<systemProperties>-->
<!--<property>-->
<!--<name>smsc.database.dialect</name>-->
<!--<value>hsqldb</value>-->
<!--</property>-->
<!--</systemProperties>-->
<!--</configuration>-->
<!--</execution>-->
<!--</executions>-->
<!--</plugin>-->
<!--<configuration>-->
<!--<driverClassName>org.hsqldb.jdbcDriver</driverClassName>-->
<!--<hibernateDialect>org.hibernate.dialect.HSQLDialect</hibernateDialect>-->
<!--<url>jdbc:hsqldb:mem:smsc</url>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/V1_2__HSQLDB.sql</outputFile>-->
<!--<type>create</type>-->
<!--</configuration>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>org.hsqldb</groupId>-->
<!--<artifactId>hsqldb</artifactId>-->
<!--<version>2.3.4</version>-->
<!--</dependency>-->
<!--</dependencies>-->
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.smsc.model.dashboard;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.smsc.model.BaseEntity;
import org.hibernate.validator.constraints.NotEmpty;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ CREATE TABLE ACL_SID (
);

CREATE TABLE CUSTOMER (
ID BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 40000),
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 40000),
LAST_MODIFIED_DATE TIMESTAMP NOT NULL,
VERSION BIGINT NOT NULL,
CITY VARCHAR(255) NOT NULL,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,44 +1,77 @@
package io.smsc.encryption;

import io.smsc.AbstractTest;
import io.smsc.model.CustomerUser;
import io.smsc.model.User;
import io.smsc.util.EncrypterUtil;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.security.crypto.keygen.KeyGenerators;

import static io.smsc.util.EncrypterUtil.removeCryptographyRestrictions;

public class EncrypterUtilTest {
public class EncrypterUtilTest extends AbstractTest {

@Before
public void removeCryptographyRestriction() {
removeCryptographyRestrictions();
}

@Test
public void testEncryptDecryptUserPassword() {
public void testNewUserEncryptDecryptPassword() {
User user = new User();
user.setPassword("john123456");
EncrypterUtil.encrypt(user);
System.out.println("Encrypted password: " + user.getPassword());
System.out.println("Salt: " + user.getSalt());
EncrypterUtil.decrypt(user);
System.out.println("Decrypted password: " + user.getPassword());
Assert.assertEquals("john123456", user.getPassword());
}

@Test
public void testNewCustomerUserEncryptDecryptPassword() {
CustomerUser customerUser = new CustomerUser();
customerUser.setPassword("john123456");
System.out.println("Raw password: " + customerUser.getPassword());
EncrypterUtil.encrypt(customerUser);
System.out.println("Encrypted password: " + customerUser.getPassword());
System.out.println("Salt: " + customerUser.getSalt());
EncrypterUtil.decrypt(customerUser);
System.out.println("Decrypted password: " + customerUser.getPassword());
Assert.assertEquals("john123456", customerUser.getPassword());
}

@Test
public void testExistingUserEncryptDecryptPassword() {
User user = new User();
user.setPassword("john123456");
String salt = KeyGenerators.string().generateKey();
user.setSalt(salt);
System.out.println("Raw password: " + user.getPassword());
EncrypterUtil.encrypt(user);
System.out.println("Encrypted password: " + user.getPassword());
System.out.println("Salt: " + user.getSalt());
EncrypterUtil.decrypt(user);
System.out.println("Decrypted password: " + user.getPassword());
Assert.assertEquals("john123456", user.getPassword());
Assert.assertEquals(salt, user.getSalt());
}

@Test
public void testEncryptDecryptCustomerUserPassword() {
public void testExistingCustomerUserEncryptDecryptPassword() {
CustomerUser customerUser = new CustomerUser();
customerUser.setPassword("john123456");
String salt = KeyGenerators.string().generateKey();
customerUser.setSalt(salt);
System.out.println("Raw password: " + customerUser.getPassword());
EncrypterUtil.encrypt(customerUser);
System.out.println("Encrypted password: " + customerUser.getPassword());
System.out.println("Salt: " + customerUser.getSalt());
EncrypterUtil.decrypt(customerUser);
System.out.println("Decrypted password: " + customerUser.getPassword());
Assert.assertEquals("john123456", customerUser.getPassword());
Assert.assertEquals(salt, customerUser.getSalt());
}
}
73 changes: 0 additions & 73 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -242,79 +242,6 @@
<downloadSources>true</downloadSources>
</configuration>
</plugin>
<!--<plugin>-->
<!--&lt;!&ndash; http://mydevnotes.nicus.it/2013/03/generate-ddl-with-maven-jpa-hibernate-4.html &ndash;&gt;-->
<!--<groupId>de.juplo</groupId>-->
<!--<artifactId>hibernate4-maven-plugin</artifactId>-->
<!--<version>1.1.1</version>-->
<!--<executions>-->
<!--&lt;!&ndash; postgres &ndash;&gt;-->
<!--<execution>-->
<!--<id>postgres</id>-->
<!--<goals>-->
<!--<goal>export</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.PostgreSQL94Dialect</hibernateDialect>-->
<!--<delimiter>;</delimiter>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/postgresql-schema.sql</outputFile>-->
<!--</configuration>-->
<!--</execution>-->
<!--&lt;!&ndash; oracle &ndash;&gt;-->
<!--<execution>-->
<!--<id>oracle</id>-->
<!--<goals>-->
<!--<goal>export</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>-->
<!--<delimiter>;</delimiter>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/oracle-schema.sql</outputFile>-->
<!--</configuration>-->
<!--</execution>-->
<!--&lt;!&ndash; mysql &ndash;&gt;-->
<!--<execution>-->
<!--<id>mysql</id>-->
<!--<goals>-->
<!--<goal>export</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.MySQLDialect</hibernateDialect>-->
<!--<delimiter>;</delimiter>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/mysql-schema.sql</outputFile>-->
<!--</configuration>-->
<!--</execution>-->
<!--&lt;!&ndash; h2 &ndash;&gt;-->
<!--<execution>-->
<!--<id>h3</id>-->
<!--<goals>-->
<!--<goal>export</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.H2Dialect</hibernateDialect>-->
<!--<delimiter>;</delimiter>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/h2-schema.sql</outputFile>-->
<!--</configuration>-->
<!--</execution>-->
<!--&lt;!&ndash; hsqldb &ndash;&gt;-->
<!--<execution>-->
<!--<id>hsqldb</id>-->
<!--<goals>-->
<!--<goal>export</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<hibernateDialect>org.hibernate.dialect.HSQLDialect</hibernateDialect>-->
<!--<delimiter>;</delimiter>-->
<!--<target>SCRIPT</target>-->
<!--<outputFile>${project.build.directory}/hsqldb-schema.sql</outputFile>-->
<!--</configuration>-->
<!--</execution>-->
<!--</executions>-->
<!--</plugin>-->
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-checkstyle-plugin</artifactId>-->
Expand Down

0 comments on commit f350984

Please sign in to comment.