7 Commits

Author SHA1 Message Date
85c181a433 fixed typo 2024-02-16 00:12:49 +01:00
e0fde434df Merge branch 'develop' into feature/jakrtaee10
# Conflicts:
#	configuration/pom.xml
#	db/pom.xml
#	jeeutil/pom.xml
#	network/pom.xml
#	poi-util/pom.xml
#	pom.xml
#	util/pom.xml
2024-02-16 00:05:01 +01:00
db1d81bcd9 change to jakarta.mail 2024-02-15 23:45:13 +01:00
31aea194df [maven-release-plugin] prepare for next development iteration 2023-12-10 22:29:25 +01:00
782a736cdc [maven-release-plugin] prepare release v2.0.0 2023-12-10 22:29:22 +01:00
c4a5f12511 feature/jakrtaee10 (#1)
Co-authored-by: Joern Muehlencord <joern.muehlencord@vitroconnect.com>
Reviewed-on: https://jomu.timelord.de/git/jomu/shared/pulls/1
2023-12-10 21:24:45 +00:00
b9482de3b1 switched distribution management to gitea 2023-04-02 10:49:32 +02:00
16 changed files with 281 additions and 312 deletions

View File

@ -1,5 +0,0 @@
@ECHO OFF
setlocal
set BASEPATH=%~dp0%
cd %BASEPATH%\..
mvn release:clean release:prepare -Dmaven.test.skip=true -Darguments="-Dmaven.test.skip=true -DskipTests"

View File

@ -1,4 +1,3 @@
<!--
Copyright 2019 Joern Muehlencord (joern@muehlencord.de).
@ -14,36 +13,37 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.muehlencord.shared</groupId>
<artifactId>shared-configuration</artifactId>
<packaging>jar</packaging>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<groupId>de.muehlencord.shared</groupId>
<artifactId>shared-configuration</artifactId>
<packaging>jar</packaging>
<name>shared-configuration</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.1-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<name>shared-configuration</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -21,12 +21,12 @@ limitations under the License.
<groupId>de.muehlencord.shared</groupId>
<artifactId>shared-db</artifactId>
<packaging>ejb</packaging>
<packaging>jar</packaging>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.0-SNAPSHOT</version>
<version>2.0.1-SNAPSHOT</version>
</parent>
<name>shared-db</name>
@ -61,7 +61,7 @@ limitations under the License.
<!-- Testing -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>

View File

@ -15,18 +15,17 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.0-SNAPSHOT</version>
<version>2.0.1-SNAPSHOT</version>
</parent>
<groupId>de.muehlencord.shared</groupId>
<artifactId>shared-jeeutil</artifactId>
<packaging>ejb</packaging>
<packaging>jar</packaging>
<name>shared-jeeutil</name>

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2019 Joern Muehlencord (joern@muehlencord.de).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<netbeans.compile.on.save>all</netbeans.compile.on.save>
</properties>
</project-shared-configuration>

View File

@ -16,34 +16,40 @@ limitations under the License.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<artifactId>shared-network</artifactId>
<build>
<finalName>${project.artifactId}</finalName>
</build>
<groupId>de.muehlencord.shared</groupId>
<modelVersion>4.0.0</modelVersion>
<name>shared-network</name>
<packaging>jar</packaging>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.1-SNAPSHOT</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<artifactId>junit-jupiter-engine</artifactId>
<groupId>org.junit.jupiter</groupId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
<scope>provided</scope>
</dependency>
<dependency>
<artifactId>slf4j-jdk14</artifactId>
<groupId>org.slf4j</groupId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>shared-util</artifactId>
<groupId>de.muehlencord.shared</groupId>
<type>jar</type>
</dependency>
<dependency>
<artifactId>javax.mail</artifactId>
<groupId>com.sun.mail</groupId>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
</dependency>
<dependency>
<artifactId>ews-java-api</artifactId>
@ -56,29 +62,17 @@ limitations under the License.
<scope>compile</scope>
</dependency>
<!-- Test -->
<dependency>
<artifactId>jaxws-api</artifactId>
<groupId>javax.xml.ws</groupId>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>slf4j-jdk14</artifactId>
<groupId>org.slf4j</groupId>
<scope>test</scope>
<version>2.3.1</version>
</dependency>
</dependencies>
<groupId>de.muehlencord.shared</groupId>
<modelVersion>4.0.0</modelVersion>
<name>shared-network</name>
<packaging>jar</packaging>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<url>http://maven.apache.org</url>
<version>2.0.0-SNAPSHOT</version>
</project>

View File

@ -16,20 +16,20 @@
package de.muehlencord.shared.network.mail;
import de.muehlencord.shared.util.StringUtil;
import jakarta.mail.Flags;
import jakarta.mail.Folder;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.Session;
import jakarta.mail.Store;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.search.MessageIDTerm;
import jakarta.mail.search.SearchTerm;
import jakarta.mail.util.SharedByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;
import javax.mail.search.MessageIDTerm;
import javax.mail.search.SearchTerm;
import javax.mail.util.SharedByteArrayInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -15,12 +15,12 @@
*/
package de.muehlencord.shared.network.mail;
import jakarta.mail.Address;
import jakarta.mail.internet.InternetAddress;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import javax.mail.Address;
import javax.mail.internet.InternetAddress;
/**
* A mail message

View File

@ -16,18 +16,19 @@
package de.muehlencord.shared.network.mail;
import static de.muehlencord.shared.util.StringUtil.getStackTraceString;
import jakarta.mail.BodyPart;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.Multipart;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeMultipart;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;
import java.util.Locale;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -19,7 +19,7 @@ import de.muehlencord.shared.network.mail.DefaultMailReader;
import de.muehlencord.shared.network.mail.MailProtocol;
import de.muehlencord.shared.network.mail.MailReaderConfiguration;
import de.muehlencord.shared.network.mail.MailReaderConnectionException;
import javax.mail.Session;
import jakarta.mail.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,4 +1,4 @@
/*
/*
* Copyright 2019 Joern Muehlencord (joern@muehlencord.de).
*
* Licensed under the Apache License, Version 2.0 (the "License");
@ -25,74 +25,73 @@ import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
/**
*
* @author Joern Muehlencord (joern@muehlencord.de)
*/
public class HttpLayerTest extends BaseTest {
class HttpLayerTest extends BaseTest {
@Test
@Disabled
public void testPostByMap() throws Exception {
System.out.println("testPostByMap");
Map<String, String[]> map = new HashMap<>();
String[] value = {"Hello World!", "Hello World again"};
map.put("message", value);
@Test
@Disabled
void testPostByMap() throws Exception {
System.out.println("testPostByMap");
Map<String, String[]> map = new HashMap<>();
String[] value = { "Hello World!", "Hello World again" };
map.put("message", value);
HttpLayer httpLayer = new HttpLayer("http://localhost:8080/HttpPostListener/HttpPostListener");
httpLayer.post(map);
}
HttpLayer httpLayer = new HttpLayer("http://localhost:8080/HttpPostListener/HttpPostListener");
httpLayer.post(map);
}
@Test
@Disabled
public void testPostByMapList() throws Exception {
System.out.println("testPostByMapList");
List<Map<String, String[]>> list = new LinkedList<>();
Map<String, String[]> map = new HashMap<>();
String[] value = {"Hello World!", "Hello World again"};
map.put("message", value);
list.add(map);
map = new HashMap<>();
String[] urlValue = {"http://localhost:8080/testurl"};
map.put("url", urlValue);
list.add(map);
@Test
@Disabled
void testPostByMapList() throws Exception {
System.out.println("testPostByMapList");
List<Map<String, String[]>> list = new LinkedList<>();
Map<String, String[]> map = new HashMap<>();
String[] value = { "Hello World!", "Hello World again" };
map.put("message", value);
list.add(map);
map = new HashMap<>();
String[] urlValue = { "http://localhost:8080/testurl" };
map.put("url", urlValue);
list.add(map);
HttpLayer httpLayer = new HttpLayer("http://localhost:8080/HttpPostListener/HttpPostListener");
httpLayer.post(list);
}
HttpLayer httpLayer = new HttpLayer("http://localhost:8080/HttpPostListener/HttpPostListener");
httpLayer.post(list);
}
@Test
@Disabled
public void testByValue() throws Exception {
System.out.println("testByValue");
HttpLayer httpLayer = new HttpLayer("http://localhost:8080/HttpPostListener/HttpPostListener");
httpLayer.post("message", "Hello World by single parameter");
}
@Test
@Disabled
void testByValue() throws Exception {
System.out.println("testByValue");
HttpLayer httpLayer = new HttpLayer("http://localhost:8080/HttpPostListener/HttpPostListener");
httpLayer.post("message", "Hello World by single parameter");
}
@Test
public void testWithUnknownURL() throws MessageNotSendException {
System.out.println("testWithUnknownURL");
HttpLayer httpLayer = new HttpLayer("http://localhost/thisURLDoesNotExist");
Assertions.assertThrows(MessageNotSendException.class, () -> {
httpLayer.post("message", "Hello World by single parameter");
});
@Test
void testWithUnknownURL() throws MessageNotSendException {
System.out.println("testWithUnknownURL");
HttpLayer httpLayer = new HttpLayer("http://localhost/thisURLDoesNotExist");
Assertions.assertThrows(MessageNotSendException.class, () -> {
httpLayer.post("message", "Hello World by single parameter");
});
}
}
@Test
public void testInvalidURL() throws MessageNotSendException {
System.out.println("testInvalidURL");
HttpLayer httpLayer = new HttpLayer("joern@muehlencord.de");
Assertions.assertThrows(MessageNotSendException.class, () -> {
httpLayer.post("message", "Hello World by single parameter");
});
}
@Test
void testInvalidURL() throws MessageNotSendException {
System.out.println("testInvalidURL");
HttpLayer httpLayer = new HttpLayer("joern@muehlencord.de");
Assertions.assertThrows(MessageNotSendException.class, () -> {
httpLayer.post("message", "Hello World by single parameter");
});
}
@Test
public void testUnsupportedURL() throws MessageNotSendException {
System.out.println("testUnsupportedURL");
HttpLayer httpLayer = new HttpLayer("ftp://localhost");
Assertions.assertThrows(MessageNotSendException.class, () -> {
httpLayer.post("message", "Hello World by single parameter");
});
}
@Test
void testUnsupportedURL() throws MessageNotSendException {
System.out.println("testUnsupportedURL");
HttpLayer httpLayer = new HttpLayer("ftp://localhost");
Assertions.assertThrows(MessageNotSendException.class, () -> {
httpLayer.post("message", "Hello World by single parameter");
});
}
}

View File

@ -15,6 +15,19 @@
*/
package de.muehlencord.shared.network.mail;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.Multipart;
import jakarta.mail.PasswordAuthentication;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.AddressException;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeBodyPart;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeMultipart;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@ -22,18 +35,6 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -63,7 +64,7 @@ public class TestSendMail {
props.put("mail.smtp.port", "587");
props.put("mail.debug", "true");
Session mailSession = Session.getInstance(props, new javax.mail.Authenticator() {
Session mailSession = Session.getInstance(props, new jakarta.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(RECEIVER, PASSWORD);

View File

@ -47,9 +47,9 @@ limitations under the License.
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.0-SNAPSHOT</version>
<version>2.0.1-SNAPSHOT</version>
</parent>
<version>2.0.0-SNAPSHOT</version>
<version>2.0.1-SNAPSHOT</version>
</project>

89
pom.xml
View File

@ -18,8 +18,9 @@ limitations under the License.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.muehlencord</groupId>
<artifactId>shared</artifactId>
<version>2.0.0-SNAPSHOT</version>
<version>2.0.1-SNAPSHOT</version>
<name>shared</name>
<packaging>pom</packaging>
@ -54,17 +55,24 @@ limitations under the License.
<url>https://jomu.timelord.de/git/jomu/shared/</url>
</scm>
<repositories>
<repository>
<id>gitea</id>
<url>https://jomu.timelord.de/git/api/packages/jomu/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
<id>jomu-gitea</id>
<url>https://jomu.timelord.de/git/api/packages/jomu/maven</url>
</repository>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<id>jomu-gitea</id>
<url>https://jomu.timelord.de/git/api/packages/jomu/maven</url>
</snapshotRepository>
</distributionManagement>
<groupId>de.muehlencord</groupId>
<issueManagement>
<system>Gitea</system>
@ -79,24 +87,36 @@ limitations under the License.
<maven.compiler.release>17</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>2.0.9</slf4j.version>
<jackson.version>2.15.0</jackson.version>
<slf4j.version>2.0.12</slf4j.version>
<jackson.version>2.16.1</jackson.version>
<lombok.version>1.18.30</lombok.version>
<junit.version>5.10.0</junit.version>
<junit.version>5.10.2</junit.version>
<poi.version>5.2.4</poi.version>
<poi.version>5.2.5</poi.version>
<commons-net.version>3.10.0</commons-net.version>
<commons-lang.version>3.13.0</commons-lang.version>
<commons-lang.version>3.14.0</commons-lang.version>
<gson.version>2.10.1</gson.version>
<fusionauth.version>5.3.0</fusionauth.version>
<fusionauth.version>5.3.1</fusionauth.version>
<bouncycastle.version>1.70</bouncycastle.version>
<hibernate.version>6.2.13.Final</hibernate.version>
<com-sun-mail.version>1.6.2</com-sun-mail.version>
<hibernate.version>6.1.7.Final</hibernate.version>
<jakarta.mail-api.version>2.1.2</jakarta.mail-api.version>
<ews-java-api.version>2.0</ews-java-api.version>
<scrypt.version>1.4.0</scrypt.version>
<jakarta-faces.version>4.0.4</jakarta-faces.version>
<joinfaces.version>5.1.5</joinfaces.version>
<jakarta-faces.version>4.0.5</jakarta-faces.version>
<joinfaces.version>5.1.8</joinfaces.version>
<jakarta.interceptor-api.version>2.1.0</jakarta.interceptor-api.version>
<jakarta-inject-api.version>2.0.0</jakarta-inject-api.version>
<jakarta-inject-api.version>2.0.1</jakarta-inject-api.version>
<maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<maven-dependency-plugin.version>3.6.1</maven-dependency-plugin.version>
<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
<license-maven-plugin.version>1.14</license-maven-plugin.version>
</properties>
<dependencyManagement>
@ -156,14 +176,15 @@ limitations under the License.
<!-- mail -->
<dependency>
<artifactId>javax.mail</artifactId>
<groupId>com.sun.mail</groupId>
<version>${com-sun-mail.version}</version>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>${jakarta.mail-api.version}</version>
</dependency>
<dependency>
<artifactId>ews-java-api</artifactId>
<groupId>com.microsoft.ews-java-api</groupId>
<version>2.0</version>
<version>${ews-java-api.version}</version>
</dependency>
<!-- Faces -->
@ -210,7 +231,7 @@ limitations under the License.
<dependency>
<artifactId>scrypt</artifactId>
<groupId>com.lambdaworks</groupId>
<version>1.4.0</version>
<version>${scrypt.version}</version>
</dependency>
<dependency>
<artifactId>bcprov-jdk15on</artifactId>
@ -267,7 +288,7 @@ limitations under the License.
</configuration>
<extensions>true</extensions>
<groupId>org.sonatype.plugins</groupId>
<version>1.6.8</version>
<version>${nexus-staging-maven-plugin.version}</version>
</plugin>
<!-- ensure sources are build so they are also uploaded -->
@ -297,7 +318,7 @@ limitations under the License.
</execution>
</executions>
<groupId>org.apache.maven.plugins</groupId>
<version>3.1.1</version>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<!-- create license file -->
@ -321,7 +342,7 @@ limitations under the License.
</execution>
</executions>
<groupId>org.codehaus.mojo</groupId>
<version>1.14</version>
<version>${license-maven-plugin.version}</version>
</plugin>
<!-- sign jar archives -->
@ -340,7 +361,7 @@ limitations under the License.
</execution>
</executions>
<groupId>org.apache.maven.plugins</groupId>
<version>1.6</version>
<version>${maven-gpg-plugin.version}</version>
</plugin>
</plugins>
</build>
@ -360,27 +381,20 @@ limitations under the License.
<target>${maven.compiler.target}</target>
</configuration>
<groupId>org.apache.maven.plugins</groupId>
<version>3.8.1</version>
</plugin>
<!-- build maven ejb artifacts -->
<plugin>
<artifactId>maven-ejb-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>3.0.1</version>
<version>${maven-compiler-plugin.version}</version>
</plugin>
<!-- create new releases -->
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<version>${maven-release-plugin.version}</version>
</plugin>
<!-- control junit tests from maven build -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>2.22.2</version>
<version>${maven-surefire-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
@ -397,7 +411,6 @@ limitations under the License.
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
<version>2.5.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@ -407,7 +420,7 @@ limitations under the License.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.6.1</version>
<version>${maven-dependency-plugin.version}</version>
</plugin>
</plugins>
</build>

View File

@ -1,4 +1,3 @@
<!--
Copyright 2019 Joern Muehlencord (joern@muehlencord.de).
@ -14,41 +13,42 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.muehlencord.shared</groupId>
<artifactId>shared-util</artifactId>
<packaging>jar</packaging>
<name>shared-util</name>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<groupId>de.muehlencord.shared</groupId>
<artifactId>shared-util</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
</dependencies>
<name>shared-util</name>
<parent>
<artifactId>shared</artifactId>
<groupId>de.muehlencord</groupId>
<version>2.0.1-SNAPSHOT</version>
</parent>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,4 +1,4 @@
/*
/*
* Copyright 2019 Joern Muehlencord (joern@muehlencord.de).
*
* Licensed under the Apache License, Version 2.0 (the "License");
@ -15,45 +15,46 @@
*/
package de.muehlencord.shared.util;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.security.SecureRandom;
import org.bouncycastle.util.encoders.Base64;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
/**
*
* @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PasswordUtilTest {
private static SecureRandom secureRandom;
private static String systemSalt64Coded;
private static byte[] systemSaltBytes;
@BeforeAll
public static void init() {
secureRandom = new SecureRandom();
systemSaltBytes = new byte[32];
secureRandom.nextBytes (systemSaltBytes);
systemSalt64Coded = new String(Base64.encode (systemSaltBytes));
}
class PasswordUtilTest {
@Test
public void testGetHash() {
PasswordUtil pwUtil = new PasswordUtil(systemSalt64Coded);
String password1 = pwUtil.getHash("password");
String password2 = pwUtil.getHash("password");
assertFalse (password1.equals(password2));
assertTrue (pwUtil.matches ("password", password1));
assertFalse (pwUtil.matches ("wrongpassword", password1));
private static SecureRandom secureRandom;
private static String systemSalt64Coded;
private static byte[] systemSaltBytes;
@BeforeAll
public static void init() {
secureRandom = new SecureRandom();
systemSaltBytes = new byte[32];
secureRandom.nextBytes(systemSaltBytes);
systemSalt64Coded = new String(Base64.encode(systemSaltBytes));
}
@Test
void testGetHash() {
PasswordUtil pwUtil = new PasswordUtil(systemSalt64Coded);
String password1 = pwUtil.getHash("password");
String password2 = pwUtil.getHash("password");
assertNotEquals(password1, password2);
assertTrue(pwUtil.matches("password", password1));
assertFalse(pwUtil.matches("wrongpassword", password1));
}
}
}