diff --git a/.gitignore b/.gitignore
index 3298416..53f619e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,183 @@
-/**/.settings/
-**/target/
-.classpath
-.project
-**/nbproject/
-*.dump
-**/_dump
+# ---> NetBeans
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+nbactions.xml
**/nb-configuration.xml
+.nb-gradle/
+
+# ---> Eclipse
+.project
+.settings/
+.classpath
+
+# ---> Maven
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+
+# ---> Java
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+# ---> TeX
+## Core latex/pdflatex auxiliary files:
+*.aux
+*.lof
+*.log
+*.lot
+*.fls
+*.out
+*.toc
+
+## Intermediate documents:
+*.dvi
+*-converted-to.*
+# these rules might exclude image files for figures etc.
+# *.ps
+# *.eps
+# *.pdf
+
+## Bibliography auxiliary files (bibtex/biblatex/biber):
+*.bbl
+*.bcf
+*.blg
+*-blx.aux
+*-blx.bib
+*.brf
+*.run.xml
+
+## Build tool auxiliary files:
+*.fdb_latexmk
+*.synctex
+*.synctex.gz
+*.synctex.gz(busy)
+*.pdfsync
+
+## Auxiliary and intermediate files from other packages:
+
+
+# algorithms
+*.alg
+*.loa
+
+# achemso
+acs-*.bib
+
+# amsthm
+*.thm
+
+# beamer
+*.nav
+*.snm
+*.vrb
+
+#(e)ledmac/(e)ledpar
+*.end
+*.[1-9]
+*.[1-9][0-9]
+*.[1-9][0-9][0-9]
+*.[1-9]R
+*.[1-9][0-9]R
+*.[1-9][0-9][0-9]R
+*.eledsec[1-9]
+*.eledsec[1-9]R
+*.eledsec[1-9][0-9]
+*.eledsec[1-9][0-9]R
+*.eledsec[1-9][0-9][0-9]
+*.eledsec[1-9][0-9][0-9]R
+
+# glossaries
+*.acn
+*.acr
+*.glg
+*.glo
+*.gls
+
+# gnuplottex
+*-gnuplottex-*
+
+# hyperref
+*.brf
+
+# knitr
+*-concordance.tex
+*.tikz
+*-tikzDictionary
+
+# listings
+*.lol
+
+# makeidx
+*.idx
+*.ilg
+*.ind
+*.ist
+
+# minitoc
+*.maf
+*.mtc
+*.mtc[0-9]
+*.mtc[1-9][0-9]
+
+# minted
+_minted*
+*.pyg
+
+# morewrites
+*.mw
+
+# mylatexformat
+*.fmt
+
+# nomencl
+*.nlo
+
+# sagetex
+*.sagetex.sage
+*.sagetex.py
+*.sagetex.scmd
+
+# sympy
+*.sout
+*.sympy
+sympy-plots-for-*.tex/
+
+# TikZ & PGF
+*.dpth
+*.md5
+*.auxlock
+
+# todonotes
+*.tdo
+
+# xindy
+*.xdy
+
+# WinEdt
+*.bak
+*.sav
+
+# localized versions of JBOSS command line interface
+*.local.cli
+/source/office-parent/office-web/faces-config.NavData
+/source/vvh-access-import/src/main/resources/hibernate.cfg.xml
+/source/office-parent/office-entities/src/main/resources/META-INF/persistence.xml
diff --git a/account-dao/pom.xml b/account-dao/pom.xml
deleted file mode 100644
index 0cced5a..0000000
--- a/account-dao/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
- 4.0.0
-
- de.muehlencord
- shared
- 1.2-SNAPSHOT
-
-
- de.muehlencord.shared
- shared-account-dao
- jar
-
- shared-account-dao
-
-
-
-
- com.google.code.gson
- gson
-
-
- com.fasterxml.jackson.core
- jackson-annotations
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
- de.muehlencord.shared
- shared-util
-
-
- org.junit.jupiter
- junit-jupiter-api
- 5.3.1
- test
-
-
- org.junit.jupiter
- junit-jupiter-params
- 5.3.1
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- 5.3.1
- test
-
-
-
\ No newline at end of file
diff --git a/account-dao/src/main/java/de/muehlencord/shared/account/dao/ApiKeyObject.java b/account-dao/src/main/java/de/muehlencord/shared/account/dao/ApiKeyObject.java
deleted file mode 100644
index 9089648..0000000
--- a/account-dao/src/main/java/de/muehlencord/shared/account/dao/ApiKeyObject.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright 2018 joern.muehlencord.
- *
- * 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.
- */
-package de.muehlencord.shared.account.dao;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-import java.util.Date;
-import java.util.Objects;
-
-/**
- *
- * @author Joern Muehlencord
- */
-public class ApiKeyObject implements Serializable {
-
- @Expose
- private String userName;
- @Expose
- @JsonFormat(shape = JsonFormat.Shape.STRING, locale = "en_US", timezone = "UTC", pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'")
- private Date issuedOn;
- @Expose
- @JsonFormat(shape = JsonFormat.Shape.STRING, locale = "en_US", timezone = "UTC", pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'")
- private Date expiresOn;
- @Expose
- private String authToken;
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- public Date getIssuedOn() {
- return issuedOn;
- }
-
- public void setIssuedOn(Date issuedOn) {
- this.issuedOn = issuedOn;
- }
-
- public Date getExpiresOn() {
- return expiresOn;
- }
-
- public void setExpiresOn(Date expiresOn) {
- this.expiresOn = expiresOn;
- }
-
- public String getAuthToken() {
- return authToken;
- }
-
- public void setAuthToken(String authToken) {
- this.authToken = authToken;
- }
-
- @Override
- public int hashCode() {
- int hash = 3;
- hash = 53 * hash + Objects.hashCode(this.userName);
- hash = 53 * hash + Objects.hashCode(this.issuedOn);
- hash = 53 * hash + Objects.hashCode(this.expiresOn);
- hash = 53 * hash + Objects.hashCode(this.authToken);
- return hash;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final ApiKeyObject other = (ApiKeyObject) obj;
- if (!Objects.equals(this.userName, other.userName)) {
- return false;
- }
- if (!Objects.equals(this.authToken, other.authToken)) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/account-dao/src/main/java/de/muehlencord/shared/account/dao/ApiKeyUtil.java b/account-dao/src/main/java/de/muehlencord/shared/account/dao/ApiKeyUtil.java
deleted file mode 100644
index e33dbac..0000000
--- a/account-dao/src/main/java/de/muehlencord/shared/account/dao/ApiKeyUtil.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2019 Joern Muehlencord .
- *
- * 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.
- */
-package de.muehlencord.shared.account.dao;
-
-import de.muehlencord.shared.util.DateUtil;
-import java.util.Date;
-
-/**
- *
- * @author Joern Muehlencord
- */
-public abstract class ApiKeyUtil {
-
- private ApiKeyUtil() {
- // hide constructor for abstract class - only static methods are used
- }
-
- public static boolean isValid(ApiKeyObject apiKeyObject) {
- if (apiKeyObject == null) {
- return false;
- }
- Date validToDate = apiKeyObject.getExpiresOn();
- if (validToDate == null) {
- return false;
- }
- Date now = DateUtil.getCurrentTimeInUTC();
- return validToDate.after(now);
- }
-
-}
diff --git a/account-dao/src/main/java/de/muehlencord/shared/account/dao/JacksonConfig.java b/account-dao/src/main/java/de/muehlencord/shared/account/dao/JacksonConfig.java
deleted file mode 100644
index 4e70682..0000000
--- a/account-dao/src/main/java/de/muehlencord/shared/account/dao/JacksonConfig.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package de.muehlencord.shared.account.dao;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import java.text.SimpleDateFormat;
-
-/**
- *
- * @author joern.muehlencord
- */
-public abstract class JacksonConfig {
-
- private static ObjectMapper objectMapper = null;
-
- private JacksonConfig() {
- // hide public constructor for static only class
- }
-
- public static ObjectMapper getInstance() {
- if (objectMapper == null) {
- objectMapper = new ObjectMapper();
- objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"));
- objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
- objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
- objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
- }
- return objectMapper;
- }
-
-}
diff --git a/account-dao/src/test/java/de/muehlencord/shared/account/dao/ApiKeyObjectTest.java b/account-dao/src/test/java/de/muehlencord/shared/account/dao/ApiKeyObjectTest.java
deleted file mode 100644
index 2756c5d..0000000
--- a/account-dao/src/test/java/de/muehlencord/shared/account/dao/ApiKeyObjectTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package de.muehlencord.shared.account.dao;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.IOException;
-import java.util.Date;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import org.junit.jupiter.api.Test;
-
-/**
- *
- * @author Joern Muehlencord
- */
-public class ApiKeyObjectTest {
-
-
-
- @Test
- public void testJackson() throws JsonProcessingException, IOException {
- ApiKeyObject apiKeyObject = new ApiKeyObject();
- apiKeyObject.setUserName("web");
- apiKeyObject.setIssuedOn(new Date());
- apiKeyObject.setExpiresOn(new Date());
-
- ObjectMapper mapper = new ObjectMapper();
- String json = mapper.writeValueAsString(apiKeyObject);
-
- System.out.println(json);
-
-
- ApiKeyObject apiKeyObject2 = mapper.readValue (json, ApiKeyObject.class);
- assertTrue (apiKeyObject.equals(apiKeyObject2));
-
- }
-
-}
diff --git a/account-ui/faces-config.NavData b/account-ui/faces-config.NavData
deleted file mode 100644
index 298bfc5..0000000
--- a/account-ui/faces-config.NavData
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/account-ui/nb-configuration.xml b/account-ui/nb-configuration.xml
deleted file mode 100644
index 5402a7c..0000000
--- a/account-ui/nb-configuration.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
- Facelets
- WildFly
- apache20
- js/libs
-
-
diff --git a/account-ui/pom.xml b/account-ui/pom.xml
deleted file mode 100644
index ed320df..0000000
--- a/account-ui/pom.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
- 4.0.0
-
- shared
- de.muehlencord
- 1.2-SNAPSHOT
-
-
- de.muehlencord.shared
- shared-account-ui
- war
-
- shared-account-ui
-
-
- UTF-8
- ${maven.build.timestamp}
-
- 143a2bd3-7e0b-4162-a76e-3031331c7dfe
- development
-
-
-
-
- org.primefaces
- primefaces
-
-
-
- com.github.adminfaces
- admin-template
-
-
-
- org.omnifaces
- omnifaces
-
-
-
- org.apache.shiro
- shiro-core
-
-
- org.slf4j
- slf4j-api
-
-
- commons-collections
- commons-collections
-
-
-
-
- org.apache.shiro
- shiro-web
-
-
- de.muehlencord.shared
- shared-shiro-faces
-
-
- de.muehlencord.shared
- shared-account
- ejb
-
-
- de.muehlencord.shared
- shared-util
-
-
- de.muehlencord.shared
- shared-jeeutil
-
-
- de.muehlencord.sf
- filter
-
-
- javax
- javaee-web-api
- provided
-
-
- org.slf4j
- slf4j-api
- provided
-
-
-
-
-
- ${basedir}/src/main/filters/${filter.name}.properties
-
-
-
-
-
- src/main/resources
- true
-
- **/*.properties
- **/*.xml
-
-
-
-
- account
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- org.apache.maven.plugins
- maven-war-plugin
- 3.2.2
-
- false
-
-
- ${basedir}/src/main/webapp
- true
-
- WEB-INF/web.xml
- WEB-INF/jboss-web.xml
- WEB-INF/shiro.ini
-
-
-
-
-
-
-
-
-
-
- development
-
- development
-
-
-
-
- production
-
- production
-
-
-
-
diff --git a/account-ui/src/main/filters/development.properties b/account-ui/src/main/filters/development.properties
deleted file mode 100644
index ef4d834..0000000
--- a/account-ui/src/main/filters/development.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-jsf.projectStage=Development
-context.root=account
-
-shiro.contextFactory = # not defined
-shiro.passwordMatcher= passwordMatcher = org.apache.shiro.authc.credential.PasswordMatcher${line.separator}passwordMatcher.passwordService = $passwordService
-shiro.ldapRealm = # not defined
-shiro.authcStrategy = org.apache.shiro.authc.pam.AllSuccessfulStrategy
-shiro.realms = $jdbcRealm
diff --git a/account-ui/src/main/filters/production.properties b/account-ui/src/main/filters/production.properties
deleted file mode 100644
index ec870b7..0000000
--- a/account-ui/src/main/filters/production.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-jsf.projectStage=Production
-context.root=account
-
-ldap.url = ldaps://host:port
-## we will use provided username / password from webapplication
-ldap.user = user
-ldap.password = secret
-ldap.principalSuffix = @primarySuffix
-ldap.fallbackPrincipalSuffixes = @fallback1, @fallback2
-ldap.searchBase = dc=domain,dc=com
-ldap.searchFilter = (&(objectClass=*)(mail={0}))
-
-## NO CHANGES BEHIND THIS LINE REQUIRED
-shiro.contextFactory = contextFactory = org.apache.shiro.realm.ldap.JndiLdapContextFactory${line.separator}contextFactory.url = ${ldap.url}${line.separator}contextFactory.systemUsername = ${ldap.user}${line.separator}contextFactory.systemPassword = ${ldap.password}${line.separator}contextFactory.environment[java.naming.security.protocol] = ssl
-shiro.passwordMatcher= passwordMatcher=org.apache.shiro.authc.credential.AllowAllCredentialsMatcher
-shiro.ldapRealm = ldapRealm = de.muehlencord.shared.account.shiro.realm.UserNameActiveDirectoryRealm${line.separator}ldapRealm.principalSuffix = ${ldap.principalSuffix}${line.separator}ldapRealm.fallbackPrincipalSuffixes = ${ldap.fallbackPrincipalSuffixes}${line.separator}ldapRealm.ldapContextFactory = $contextFactory${line.separator}ldapRealm.searchBase = ${ldap.searchBase}${line.separator}ldapRealm.searchFilter = ${ldap.searchFilter}${line.separator}ldapRealm.permissionsLookupEnabled=false
-shiro.authcStrategy = org.apache.shiro.authc.pam.AllSuccessfulStrategy
-shiro.realms=$jdbcRealm,$ldapRealm
diff --git a/account-ui/src/main/java/de/muehlencord/shared/account/web/EnsurePermissionsBean.java b/account-ui/src/main/java/de/muehlencord/shared/account/web/EnsurePermissionsBean.java
deleted file mode 100644
index c87bad2..0000000
--- a/account-ui/src/main/java/de/muehlencord/shared/account/web/EnsurePermissionsBean.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2018 Joern Muehlencord .
- *
- * 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.
- */
-package de.muehlencord.shared.account.web;
-
-import de.muehlencord.shared.account.business.account.boundary.AccountPermissions;
-import de.muehlencord.shared.account.business.account.entity.AccountException;
-import de.muehlencord.shared.account.business.application.control.ApplicationPermissionControl;
-import de.muehlencord.shared.account.business.application.control.ApplicationRoleControl;
-import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
-import de.muehlencord.shared.account.business.instance.boundary.ApplicationPermissions;
-import java.util.Arrays;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.context.Initialized;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- * @author Joern Muehlencord
- */
-@ApplicationScoped
-public class EnsurePermissionsBean {
-
- @Inject
- ApplicationEntity application;
-
- @Inject
- ApplicationPermissionControl applicationPermissionControl;
-
- @Inject
- ApplicationRoleControl applicationRoleControl;
-
- private static final Logger LOGGER = LoggerFactory.getLogger(EnsurePermissionsBean.class);
-
- public void init(@Observes @Initialized(ApplicationScoped.class) Object init) {
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Ensure all permissions for {} are available", application.getApplicationName());
- }
- applicationPermissionControl.setupPermissions(Arrays.asList(ApplicationPermissions.values()));
- applicationPermissionControl.setupPermissions(Arrays.asList(AccountPermissions.values()));
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("All permissions added to application", application.getApplicationName());
- }
-
- // all permissions available - ensure permission is assigned to Admin role
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Ensuring Admin role for {} has all permissions", application.getApplicationName());
- }
- try {
- applicationRoleControl.setupRolePermission(Arrays.asList(ApplicationPermissions.values()), "Admin"); // NOI18N
- applicationRoleControl.setupRolePermission(Arrays.asList(AccountPermissions.values()), "Admin"); // NOI18N
- } catch (AccountException ex) {
- LOGGER.error("Error adding permission to Admin role. Reason={}", ex.getMessage());
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Detailed stacktrace", new Object[]{ex});
- }
-
- }
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("All permissions added to Admin role of {}", application.getApplicationName());
- }
-
- }
-
-}
diff --git a/account-ui/src/main/java/de/muehlencord/shared/account/web/FacesContextProducer.java b/account-ui/src/main/java/de/muehlencord/shared/account/web/FacesContextProducer.java
deleted file mode 100644
index 5a2b950..0000000
--- a/account-ui/src/main/java/de/muehlencord/shared/account/web/FacesContextProducer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2017 Joern Muehlencord .
- *
- * 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.
- */
-package de.muehlencord.shared.account.web;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.context.ContextNotActiveException;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.inject.Produces;
-import javax.faces.context.FacesContext;
-
-/**
- *
- * @author Joern Muehlencord
- */
-@ApplicationScoped
-public class FacesContextProducer {
-
- @Produces
- @RequestScoped
- public FacesContext getFacesContext() {
- FacesContext ctx = FacesContext.getCurrentInstance();
- if (ctx == null) {
- throw new ContextNotActiveException("FacesContext is not active");
- }
- return ctx;
- }
-}
diff --git a/account-ui/src/main/java/de/muehlencord/shared/account/web/PermissionConstants.java b/account-ui/src/main/java/de/muehlencord/shared/account/web/PermissionConstants.java
deleted file mode 100644
index ad22306..0000000
--- a/account-ui/src/main/java/de/muehlencord/shared/account/web/PermissionConstants.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2018 Joern Muehlencord .
- *
- * 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.
- */
-package de.muehlencord.shared.account.web;
-
-import de.muehlencord.shared.account.business.instance.boundary.ApplicationPermissions;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
-
-/**
- * TODO replace with omnifaces:importConstants currently problems with Netbeans
- * to import omnifaces taglib
- *
- * @author Joern Muehlencord
- */
-@Named(value = "permissionConstants")
-@ApplicationScoped
-public class PermissionConstants {
-
- public String getApplicationListAll() {
- return ApplicationPermissions.APP_LIST.getName();
- }
-
- public String getPermissionsCombined() {
- return ApplicationPermissions.PERMISSION_ADD.getName() + ","
- + ApplicationPermissions.PERMISSION_EDIT.getName() + ","
- + ApplicationPermissions.PERMISSION_DELETE.getName();
- }
-
- public String getRolesCombined() {
- return ApplicationPermissions.ROLE_ADD.getName() + ","
- + ApplicationPermissions.ROLE_EDIT.getName() + ","
- + ApplicationPermissions.ROLE_DELETE.getName();
- }
-
- public String getAccountsCombined() {
- return ApplicationPermissions.ACCOUNT_ADD.getName() + ","
- + ApplicationPermissions.ACCOUNT_DELETE.getName() + ","
- + ApplicationPermissions.ACCOUNT_EDIT.getName() + ","
- + ApplicationPermissions.ACCOUNT_LIST.getName() + ","
- + ApplicationPermissions.ACCOUNT_LOGIN_ADD.getName() + ","
- + ApplicationPermissions.ACCOUNT_LOGIN_DELETE.getName() + ","
- + ApplicationPermissions.ACCOUNT_LOGIN_EDIT.getName();
- }
-
- public String getAccountAdd() {
- return ApplicationPermissions.ACCOUNT_ADD.getName();
- }
-
- public String getAccountDelete() {
- return ApplicationPermissions.ACCOUNT_DELETE.getName();
- }
-
- public String getAccountEdit() {
- return ApplicationPermissions.ACCOUNT_EDIT.getName();
- }
-
- public String getAccountList() {
- return ApplicationPermissions.ACCOUNT_LIST.getName();
- }
-
- public String getAccountLoginAdd() {
- return ApplicationPermissions.ACCOUNT_LOGIN_ADD.getName();
- }
-
- public String getAccountLoginDelete() {
- return ApplicationPermissions.ACCOUNT_LOGIN_DELETE.getName();
- }
-
- public String getAccountLoginEdit() {
- return ApplicationPermissions.ACCOUNT_LOGIN_EDIT.getName();
- }
-
-}
diff --git a/account-ui/src/main/java/de/muehlencord/shared/account/web/PersistenceContextFactory.java b/account-ui/src/main/java/de/muehlencord/shared/account/web/PersistenceContextFactory.java
deleted file mode 100644
index 64fb739..0000000
--- a/account-ui/src/main/java/de/muehlencord/shared/account/web/PersistenceContextFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package de.muehlencord.shared.account.web;
-
-import de.muehlencord.shared.account.util.AccountPU;
-import de.muehlencord.shared.db.ApplicationPU;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.inject.Disposes;
-import javax.enterprise.inject.Produces;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnit;
-import javax.persistence.SynchronizationType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- * @author Joern Muehlencord
- */
-@ApplicationScoped
-public class PersistenceContextFactory {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(PersistenceContextFactory.class);
-
- // need to define 2nd database as TransactionJoinInterceptor requires it
- // account UI is the only application where application and account is the same database
- // account UI does not call this as it references all database access via accountPu
- @PersistenceUnit (unitName = "accountPu")
- EntityManagerFactory entityManagerFactory;
-
-
- @Produces
- @RequestScoped
- @ApplicationPU
- public EntityManager getPcdEntityManager() {
- if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("getting entityManager for application");
- }
- EntityManager em = entityManagerFactory.createEntityManager(SynchronizationType.UNSYNCHRONIZED);
- return em;
- }
-
- public void closePcdEntityManager (@Disposes @ApplicationPU EntityManager em) {
- if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("closing entityManager application database");
- }
- em.close();
- }
-
-
- @Produces
- @RequestScoped
- @AccountPU
- public EntityManager getAccountEntityManager() {
- if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("getting entityManager for account database");
- }
- EntityManager em = entityManagerFactory.createEntityManager(SynchronizationType.UNSYNCHRONIZED);
- return em;
- }
-
- public void closeAccountEntityManager (@Disposes @AccountPU EntityManager em) {
- if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("closing entityManager for account database");
- }
- em.close();
- }
-
-}
diff --git a/account-ui/src/main/java/de/muehlencord/shared/account/web/ResourceBundleProducer.java b/account-ui/src/main/java/de/muehlencord/shared/account/web/ResourceBundleProducer.java
deleted file mode 100644
index fc96859..0000000
--- a/account-ui/src/main/java/de/muehlencord/shared/account/web/ResourceBundleProducer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2017 Joern Muehlencord .
- *
- * 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.
- */
-package de.muehlencord.shared.account.web;
-
-import java.io.Serializable;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.inject.Produces;
-import javax.faces.context.FacesContext;
-import javax.inject.Inject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- * @author Joern Muehlencord
- */
-@RequestScoped
-public class ResourceBundleProducer implements Serializable {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(ResourceBundleProducer.class);
-
- private static final long serialVersionUID = 3764096270387408239L;
-
- @Inject
- private Locale locale;
-
- @Inject
- private FacesContext facesContext;
-
- @Produces
- public ResourceBundle getResourceBundle() {
- ResourceBundle rb = ResourceBundle.getBundle("de.muehlencord.shared.account.web.presentation.messages", facesContext.getViewRoot().getLocale());
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("ResourceBundle = "+rb);
- }
- return rb;
- }
-}
diff --git a/account-ui/src/main/java/de/muehlencord/shared/account/web/presentation/AccountView.java b/account-ui/src/main/java/de/muehlencord/shared/account/web/presentation/AccountView.java
deleted file mode 100644
index b6f03fa..0000000
--- a/account-ui/src/main/java/de/muehlencord/shared/account/web/presentation/AccountView.java
+++ /dev/null
@@ -1,296 +0,0 @@
-package de.muehlencord.shared.account.web.presentation;
-
-import de.muehlencord.shared.account.business.account.control.AccountControl;
-import de.muehlencord.shared.account.business.account.entity.AccountEntity;
-import de.muehlencord.shared.account.business.account.entity.AccountException;
-import de.muehlencord.shared.account.business.account.entity.AccountLoginEntity;
-import de.muehlencord.shared.account.business.account.entity.AccountStatus;
-import de.muehlencord.shared.account.business.application.control.ApplicationRoleControl;
-import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
-import de.muehlencord.shared.account.business.application.entity.ApplicationRoleEntity;
-import de.muehlencord.shared.jeeutil.FacesUtil;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import javax.ejb.EJB;
-import javax.faces.component.UIInput;
-import javax.faces.context.FacesContext;
-import javax.faces.view.ViewScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.subject.Subject;
-import org.primefaces.event.SelectEvent;
-import org.primefaces.event.UnselectEvent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- * @author jomu
- */
-@ViewScoped
-@Named("accountView")
-public class AccountView implements Serializable {
-
- private static final long serialVersionUID = -8050582392249849438L;
- private static final Logger LOGGER = LoggerFactory.getLogger(AccountView.class);
-
- @Inject
- private ApplicationView applicationView;
- @EJB
- private AccountControl accountService;
- @EJB
- private ApplicationRoleControl appliationRoleService;
-
- /**
- * boolean flag to determine wether disabled accounts should be shown
- * accounts are not deleted but disabled and can be activated in case
- */
- private boolean showDisabledAccounts = false;
-
- // cached accounts
- private List accountList = null;
- // cached application roles
- private List applicationRoles = null;
-
- // account currently on edit
- private AccountEntity currentAccount;
- private List currentAccountRoles = null;
- private AccountLoginEntity currentAccountLogin;
- private String password = null;
- private String repeatPassword = null;
-
- public List getAccounts() {
- if (accountList == null) {
- accountList = accountService.getAllAccounts(showDisabledAccounts);
- }
- return accountList;
- }
-
- public List getAllApplicationRoles() {
- if (applicationRoles == null) {
- ApplicationEntity application = applicationView.getCurrentApplication();
- applicationRoles = appliationRoleService.getAllRoles(application);
- }
- return applicationRoles;
- }
-
- public void selectAccount(SelectEvent event) {
- // nothing to do, currentAccountRoles are loaded before dialog is shown
- }
-
- public void unselectAccount(UnselectEvent event) {
- applicationRoles = null;
- currentAccountRoles = null;
- }
-
- public boolean getAccountSelected() {
- return currentAccount != null;
- }
-
- public void newAccount() {
- currentAccount = new AccountEntity();
- currentAccount.setStatus("NEW"); // TODO add status enum
- currentAccountRoles = new ArrayList<>();
- }
-
- public void editAccount() {
- // function called by webpage
- if (currentAccount == null) {
- currentAccountRoles = null;
- } else {
- currentAccount = accountService.getAccountEntity(currentAccount.getUsername(), true);
- this.currentAccountRoles = new ArrayList<>();
- if (currentAccount.getApplicationRoleList() != null) {
- currentAccountRoles.addAll(currentAccount.getApplicationRoleList());
- }
- }
- }
-
- public void cancelEditAccount() {
- currentAccount = null;
- currentAccountRoles = null;
- }
-
- public void saveEditAccount() {
- String username = currentAccount.getUsername();
- AccountEntity existingEntity = accountService.getAccountEntity(username, true);
- // check if it is a new user (createdBy == null) but a user with same name already exists
- if ((currentAccount.getCreatedBy() == null) && (existingEntity != null)) {
- FacesUtil.addErrorMessage("editDialogMessaegs", "Create new account failed", "Account with username " + username + " already exists");
- } else {
- accountService.saveAccount(currentAccount, applicationView.getCurrentApplication(), currentAccountRoles);
- // force accounts to be loaded from database again
- accountList = null;
-
- }
- }
-
- public void deleteAccount() {
- try {
- accountService.deleteAccount(currentAccount);
- accountList.remove(currentAccount);
- FacesUtil.addGlobalInfoMessage("Info", "Account " + currentAccount.getUsername() + " deleted");
- currentAccount = null;
- currentAccountRoles = null;
- } catch (AccountException ex) {
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Detailed stacktrace", new Object[]{ex});
- }
- FacesUtil.addGlobalErrorMessage("Error deleting account", ex.getMessage());
- }
- }
-
- public void showDisabledAccountsChange() {
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("show diabled accounts changed to {}", showDisabledAccounts);
- }
- this.accountList = null;
- }
-
- public List getStatusList() {
- return AccountStatus.getAllStatusNames();
- }
-
- /* **** account login methods **** */
- public boolean validatePasswords(FacesContext context, List components, List
*
* @param url the url of the ldap server to connect to like ldap://ldapserver.your.domain:389
- * @param searchBase the search base to use - e.g. DC=wincor-nixdorf,DC=com
+ * @param searchBase the search base to use - e.g. DC=domain,DC=tld
* @param username the username to connect with
* @param password the password to connect with
*/
@@ -73,7 +88,7 @@ public class LDAPSearch {
* @param authentication the authentification type to use -e.g. "SIMPLE"
* @param url the url of the ldap server to connect to like ldap://ldapserver.your.domain:389
* @param securityProtocol the security protocol to use - e.g. SIMPLE
- * @param searchBase the search base to use - e.g. DC=wincor-nixdorf,DC=com
+ * @param searchBase the search base to use - e.g. DC=domain,DC=tld
* @param username the username to connect with
* @param password the password to connect with
*/
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/DefaultMailReader.java b/network/src/main/java/de/muehlencord/shared/network/mail/DefaultMailReader.java
index 7e13f66..422233a 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/DefaultMailReader.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/DefaultMailReader.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
import de.muehlencord.shared.util.StringUtil;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailMessage.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailMessage.java
index fb810cc..a6635d2 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailMessage.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailMessage.java
@@ -1,5 +1,17 @@
-/**
- * package containing containing acess to mail messages, covering javax.mail api
+/*
+ * 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.
*/
package de.muehlencord.shared.network.mail;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageException.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageException.java
index f9327c0..ef7d373 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageException.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageException.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
/**
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageUtils.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageUtils.java
index c372abf..d3f6774 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageUtils.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailMessageUtils.java
@@ -1,6 +1,17 @@
-/**
- * wrapper classes around javax.mail package written by Joern Muehlencord
+/*
+ * 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.
*/
package de.muehlencord.shared.network.mail;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailProtocol.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailProtocol.java
index 2c5149e..152250c 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailProtocol.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailProtocol.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
import java.util.Map;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailReader.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailReader.java
index 8073d53..98cf722 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailReader.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailReader.java
@@ -1,6 +1,17 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+/*
+ * 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.
*/
package de.muehlencord.shared.network.mail;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfiguration.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfiguration.java
index 628d79a..c23c040 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfiguration.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfiguration.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
/**
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationException.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationException.java
index 508c1c8..4440afd 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationException.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationException.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
/**
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationFactory.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationFactory.java
index b171bf6..07692d1 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationFactory.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConfigurationFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
import de.muehlencord.shared.util.StringUtil;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConnectionException.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConnectionException.java
index ee9c09c..22cea66 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConnectionException.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderConnectionException.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class MailReaderConnectionException extends Exception {
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderException.java b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderException.java
index df28bb4..0763c6f 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderException.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/MailReaderException.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class MailReaderException extends Exception {
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java b/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java
index 228aa67..183ca41 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail.exchange;
import de.muehlencord.shared.network.mail.MailMessage;
diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/imap/ImapMailReader.java b/network/src/main/java/de/muehlencord/shared/network/mail/imap/ImapMailReader.java
index 2b10242..b495c68 100644
--- a/network/src/main/java/de/muehlencord/shared/network/mail/imap/ImapMailReader.java
+++ b/network/src/main/java/de/muehlencord/shared/network/mail/imap/ImapMailReader.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail.imap;
import de.muehlencord.shared.network.mail.DefaultMailReader;
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/AbstractWhoisParser.java b/network/src/main/java/de/muehlencord/shared/network/whois/AbstractWhoisParser.java
index 9e59372..6a84057 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/AbstractWhoisParser.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/AbstractWhoisParser.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import java.util.Map;
@@ -5,7 +20,7 @@ import java.util.concurrent.ConcurrentHashMap;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public abstract class AbstractWhoisParser implements WhoisParser {
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/ArinWhoisParser.java b/network/src/main/java/de/muehlencord/shared/network/whois/ArinWhoisParser.java
index 2d87d58..93e31ab 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/ArinWhoisParser.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/ArinWhoisParser.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import static de.muehlencord.shared.network.CidrTool.rangeToCidrList;
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/DefaultWhoisParser.java b/network/src/main/java/de/muehlencord/shared/network/whois/DefaultWhoisParser.java
index e2f1144..f7a35ae 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/DefaultWhoisParser.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/DefaultWhoisParser.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import static de.muehlencord.shared.network.CidrTool.rangeToCidrList;
@@ -7,7 +22,7 @@ import org.slf4j.LoggerFactory;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class DefaultWhoisParser extends AbstractWhoisParser implements WhoisParser {
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/NetworkInformation.java b/network/src/main/java/de/muehlencord/shared/network/whois/NetworkInformation.java
index bd7fa06..86acc76 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/NetworkInformation.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/NetworkInformation.java
@@ -1,10 +1,25 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import java.io.Serializable;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class NetworkInformation implements Serializable {
/** the serial version uid */
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/Whois.java b/network/src/main/java/de/muehlencord/shared/network/whois/Whois.java
index b776361..ace59ea 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/Whois.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/Whois.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import java.util.ArrayList;
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/WhoisException.java b/network/src/main/java/de/muehlencord/shared/network/whois/WhoisException.java
index 45635bc..18bce28 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/WhoisException.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/WhoisException.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class WhoisException extends Exception {
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/WhoisInformation.java b/network/src/main/java/de/muehlencord/shared/network/whois/WhoisInformation.java
index 763c051..df249e2 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/WhoisInformation.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/WhoisInformation.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import java.util.ArrayList;
diff --git a/network/src/main/java/de/muehlencord/shared/network/whois/WhoisParser.java b/network/src/main/java/de/muehlencord/shared/network/whois/WhoisParser.java
index da1988d..4378930 100644
--- a/network/src/main/java/de/muehlencord/shared/network/whois/WhoisParser.java
+++ b/network/src/main/java/de/muehlencord/shared/network/whois/WhoisParser.java
@@ -1,12 +1,23 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+/*
+ * 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.
*/
package de.muehlencord.shared.network.whois;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public interface WhoisParser {
diff --git a/network/src/main/resources/buildInfo.properties b/network/src/main/resources/buildInfo.properties
index 37404b0..77323d7 100644
--- a/network/src/main/resources/buildInfo.properties
+++ b/network/src/main/resources/buildInfo.properties
@@ -1,2 +1,17 @@
+#
+# 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.
+#
build.version=${project.version}
build.timestamp=${timestamp}
\ No newline at end of file
diff --git a/network/src/test/java/de/muehlencord/shared/network/BaseTest.java b/network/src/test/java/de/muehlencord/shared/network/BaseTest.java
index 03bc2db..d59b9e1 100644
--- a/network/src/test/java/de/muehlencord/shared/network/BaseTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/BaseTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network;
import java.io.BufferedInputStream;
diff --git a/network/src/test/java/de/muehlencord/shared/network/CidrToolTest.java b/network/src/test/java/de/muehlencord/shared/network/CidrToolTest.java
index 42baaff..0d255fb 100644
--- a/network/src/test/java/de/muehlencord/shared/network/CidrToolTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/CidrToolTest.java
@@ -1,6 +1,17 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+/*
+ * 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.
*/
package de.muehlencord.shared.network;
@@ -10,7 +21,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class CidrToolTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/NetworkScannerTest.java b/network/src/test/java/de/muehlencord/shared/network/NetworkScannerTest.java
index c476ab3..2c54134 100644
--- a/network/src/test/java/de/muehlencord/shared/network/NetworkScannerTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/NetworkScannerTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network;
import java.net.InetAddress;
@@ -9,7 +24,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class NetworkScannerTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/PortScannerTest.java b/network/src/test/java/de/muehlencord/shared/network/PortScannerTest.java
index eff3d86..dc7ba2c 100644
--- a/network/src/test/java/de/muehlencord/shared/network/PortScannerTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/PortScannerTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network;
import java.util.List;
@@ -6,7 +21,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PortScannerTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/RangeToCidrTest.java b/network/src/test/java/de/muehlencord/shared/network/RangeToCidrTest.java
index 1c6f4a9..b6ede1e 100644
--- a/network/src/test/java/de/muehlencord/shared/network/RangeToCidrTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/RangeToCidrTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network;
import static de.muehlencord.shared.network.CidrTool.rangeToCidrList;
@@ -5,7 +20,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class RangeToCidrTest extends BaseTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/ftp/FTPConnectionTest.java b/network/src/test/java/de/muehlencord/shared/network/ftp/FTPConnectionTest.java
index 105d439..18914c6 100644
--- a/network/src/test/java/de/muehlencord/shared/network/ftp/FTPConnectionTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/ftp/FTPConnectionTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.ftp;
import java.io.File;
@@ -17,7 +32,7 @@ import org.slf4j.LoggerFactory;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class FTPConnectionTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/http/HttpLayerTest.java b/network/src/test/java/de/muehlencord/shared/network/http/HttpLayerTest.java
index b869893..a1b4c36 100644
--- a/network/src/test/java/de/muehlencord/shared/network/http/HttpLayerTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/http/HttpLayerTest.java
@@ -1,6 +1,17 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+/*
+ * 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.
*/
package de.muehlencord.shared.network.http;
@@ -15,7 +26,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class HttpLayerTest extends BaseTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/mail/MailMessageUtilsTest.java b/network/src/test/java/de/muehlencord/shared/network/mail/MailMessageUtilsTest.java
index c894f7c..1388b01 100644
--- a/network/src/test/java/de/muehlencord/shared/network/mail/MailMessageUtilsTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/mail/MailMessageUtilsTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
import de.muehlencord.shared.network.BaseTest;
diff --git a/network/src/test/java/de/muehlencord/shared/network/mail/TestSendMail.java b/network/src/test/java/de/muehlencord/shared/network/mail/TestSendMail.java
index c6ecca2..fc2e0f8 100644
--- a/network/src/test/java/de/muehlencord/shared/network/mail/TestSendMail.java
+++ b/network/src/test/java/de/muehlencord/shared/network/mail/TestSendMail.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail;
import java.io.File;
diff --git a/network/src/test/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReaderTest.java b/network/src/test/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReaderTest.java
index de7de55..e8502ca 100644
--- a/network/src/test/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReaderTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReaderTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail.exchange;
import de.muehlencord.shared.network.mail.MailMessage;
diff --git a/network/src/test/java/de/muehlencord/shared/network/mail/imap/ImapMailReaderTest.java b/network/src/test/java/de/muehlencord/shared/network/mail/imap/ImapMailReaderTest.java
index de365a3..45e4b5e 100644
--- a/network/src/test/java/de/muehlencord/shared/network/mail/imap/ImapMailReaderTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/mail/imap/ImapMailReaderTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.mail.imap;
import de.muehlencord.shared.network.BaseTest;
@@ -13,7 +28,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class ImapMailReaderTest extends BaseTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/whois/ArinWhoisParserTest.java b/network/src/test/java/de/muehlencord/shared/network/whois/ArinWhoisParserTest.java
index 4a096d5..223e6d2 100644
--- a/network/src/test/java/de/muehlencord/shared/network/whois/ArinWhoisParserTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/whois/ArinWhoisParserTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import de.muehlencord.shared.network.BaseTest;
@@ -8,7 +23,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class ArinWhoisParserTest extends BaseTest {
diff --git a/network/src/test/java/de/muehlencord/shared/network/whois/WhoisTest.java b/network/src/test/java/de/muehlencord/shared/network/whois/WhoisTest.java
index 6f1aaac..fc9a159 100644
--- a/network/src/test/java/de/muehlencord/shared/network/whois/WhoisTest.java
+++ b/network/src/test/java/de/muehlencord/shared/network/whois/WhoisTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.network.whois;
import de.muehlencord.shared.network.BaseTest;
@@ -10,7 +25,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class WhoisTest extends BaseTest {
diff --git a/network/src/test/resources/log4j.xml b/network/src/test/resources/log4j.xml
index ef9e1bb..e8de847 100644
--- a/network/src/test/resources/log4j.xml
+++ b/network/src/test/resources/log4j.xml
@@ -1,4 +1,20 @@
-
+
+
+
@@ -9,7 +25,7 @@
-
+
diff --git a/network/src/test/resources/test.properties b/network/src/test/resources/test.properties
index 4e0137b..021693b 100644
--- a/network/src/test/resources/test.properties
+++ b/network/src/test/resources/test.properties
@@ -1,4 +1,18 @@
-## connection to smtp server
+#
+# 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.
+#
smtp.server=meta.muehlencord.intra
## connection to imap server
diff --git a/network/src/test/resources/testprod.properties b/network/src/test/resources/testprod.properties
index dd79431..ce89f83 100644
--- a/network/src/test/resources/testprod.properties
+++ b/network/src/test/resources/testprod.properties
@@ -1,4 +1,18 @@
-## connection to smtp server
+#
+# 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.
+#
smtp.server=meta.muehlencord.intra
## connection to imap server
diff --git a/pdf/pom.xml b/pdf/pom.xml
index cfb6add..16dc5e2 100644
--- a/pdf/pom.xml
+++ b/pdf/pom.xml
@@ -1,4 +1,20 @@
+
+
4.0.0
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/CellValue.java b/pdf/src/main/java/de/muehlencord/shared/pdf/CellValue.java
index 729eff9..c638d8f 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/CellValue.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/CellValue.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
abstract class CellValue {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/ColumnDefinition.java b/pdf/src/main/java/de/muehlencord/shared/pdf/ColumnDefinition.java
index 91e5d02..5dbce13 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/ColumnDefinition.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/ColumnDefinition.java
@@ -1,10 +1,25 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class ColumnDefinition {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/ConfigurationException.java b/pdf/src/main/java/de/muehlencord/shared/pdf/ConfigurationException.java
index 7737e8b..3171cb3 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/ConfigurationException.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/ConfigurationException.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class ConfigurationException extends Exception {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/Content.java b/pdf/src/main/java/de/muehlencord/shared/pdf/Content.java
index c434a94..3d3db35 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/Content.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/Content.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
@@ -7,7 +22,7 @@ import org.apache.pdfbox.pdmodel.common.PDRectangle;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
abstract class Content implements TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/Coordinate.java b/pdf/src/main/java/de/muehlencord/shared/pdf/Coordinate.java
index 5c79843..aa90cbf 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/Coordinate.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/Coordinate.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class Coordinate {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRow.java b/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRow.java
index 2fc8337..2415195 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRow.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRow.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
@@ -6,7 +21,7 @@ import java.util.List;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class DefaultTableRow extends TableRow implements TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRowTypeAdapterFactory.java b/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRowTypeAdapterFactory.java
index 64346c3..92f5bc8 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRowTypeAdapterFactory.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/DefaultTableRowTypeAdapterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.JsonElement;
@@ -5,7 +20,7 @@ import com.google.gson.JsonObject;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class DefaultTableRowTypeAdapterFactory extends GsonCustomizedTypeAdapterFactory {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/GsonCustomizedTypeAdapterFactory.java b/pdf/src/main/java/de/muehlencord/shared/pdf/GsonCustomizedTypeAdapterFactory.java
index 45316b0..16ecb10 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/GsonCustomizedTypeAdapterFactory.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/GsonCustomizedTypeAdapterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.Gson;
@@ -11,7 +26,7 @@ import java.io.IOException;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
abstract class GsonCustomizedTypeAdapterFactory implements TypeAdapterFactory {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/GsonUtil.java b/pdf/src/main/java/de/muehlencord/shared/pdf/GsonUtil.java
index 02622c9..1421337 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/GsonUtil.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/GsonUtil.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.Gson;
@@ -5,7 +20,7 @@ import com.google.gson.GsonBuilder;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class GsonUtil {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/InterfaceAdapter.java b/pdf/src/main/java/de/muehlencord/shared/pdf/InterfaceAdapter.java
index 14a45a1..018cc6d 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/InterfaceAdapter.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/InterfaceAdapter.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.JsonDeserializationContext;
@@ -11,7 +26,7 @@ import java.lang.reflect.Type;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class InterfaceAdapter implements JsonSerializer, JsonDeserializer {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFDocument.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFDocument.java
index 545b99a..d489c5c 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFDocument.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFDocument.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
@@ -13,7 +28,7 @@ import org.apache.pdfbox.pdmodel.font.PDType1Font;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFDocument {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFFont.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFFont.java
index 2ae1a81..3abf1cf 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFFont.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFFont.java
@@ -1,10 +1,25 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFFont implements TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContent.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContent.java
index 0ef22b1..695b4cd 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContent.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContent.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
@@ -12,7 +27,7 @@ import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFImageContent extends Content implements TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContentTypeAdapterFactory.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContentTypeAdapterFactory.java
index 3acb8f2..0798c56 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContentTypeAdapterFactory.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFImageContentTypeAdapterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.JsonElement;
@@ -5,7 +20,7 @@ import com.google.gson.JsonObject;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class PDFImageContentTypeAdapterFactory extends GsonCustomizedTypeAdapterFactory {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFPaperSize.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFPaperSize.java
index 5120f88..def4ac2 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFPaperSize.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFPaperSize.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public enum PDFPaperSize implements TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContent.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContent.java
index 12f3563..2add8e0 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContent.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContent.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.Gson;
@@ -14,7 +29,7 @@ import org.slf4j.LoggerFactory;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFTableContent extends Content {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContentTypeAdapterFactory.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContentTypeAdapterFactory.java
index 52abcec..a00e9f0 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContentTypeAdapterFactory.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTableContentTypeAdapterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.JsonElement;
@@ -5,7 +20,7 @@ import com.google.gson.JsonObject;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class PDFTableContentTypeAdapterFactory extends GsonCustomizedTypeAdapterFactory {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTemplate.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTemplate.java
index 8e1738d..26f95a3 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTemplate.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTemplate.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.Gson;
@@ -17,7 +32,7 @@ import org.slf4j.LoggerFactory;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFTemplate {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextAlignment.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextAlignment.java
index 1d82829..1c71f7c 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextAlignment.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextAlignment.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public enum PDFTextAlignment {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContent.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContent.java
index ec05cdf..1172878 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContent.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContent.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
@@ -9,7 +24,7 @@ import org.apache.pdfbox.pdmodel.font.PDFont;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFTextContent extends Content {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContentTypeAdapterFactory.java b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContentTypeAdapterFactory.java
index fbada4b..99ef78b 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContentTypeAdapterFactory.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/PDFTextContentTypeAdapterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.JsonElement;
@@ -5,7 +20,7 @@ import com.google.gson.JsonObject;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class PDFTextContentTypeAdapterFactory extends GsonCustomizedTypeAdapterFactory {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/TableRow.java b/pdf/src/main/java/de/muehlencord/shared/pdf/TableRow.java
index 3e471a1..4454232 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/TableRow.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/TableRow.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
abstract class TableRow implements TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateException.java b/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateException.java
index a8ed99e..52c6bbb 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateException.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateException.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class TemplateException extends Exception {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateSerializeable.java b/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateSerializeable.java
index b3a4729..0f729ee 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateSerializeable.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/TemplateSerializeable.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
interface TemplateSerializeable {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValue.java b/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValue.java
index 4239bdb..7bbabdd 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValue.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValue.java
@@ -1,10 +1,25 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class TextCellValue extends CellValue {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValueTypeAdapterFactory.java b/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValueTypeAdapterFactory.java
index 5736c99..cc7512b 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValueTypeAdapterFactory.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/TextCellValueTypeAdapterFactory.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.JsonElement;
@@ -5,7 +20,7 @@ import com.google.gson.JsonObject;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class TextCellValueTypeAdapterFactory extends GsonCustomizedTypeAdapterFactory {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/TextElement.java b/pdf/src/main/java/de/muehlencord/shared/pdf/TextElement.java
index f609512..ab7572b 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/TextElement.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/TextElement.java
@@ -1,10 +1,25 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.annotations.Expose;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
class TextElement {
diff --git a/pdf/src/main/java/de/muehlencord/shared/pdf/util/ImageUtil.java b/pdf/src/main/java/de/muehlencord/shared/pdf/util/ImageUtil.java
index 317b7aa..52aaedb 100644
--- a/pdf/src/main/java/de/muehlencord/shared/pdf/util/ImageUtil.java
+++ b/pdf/src/main/java/de/muehlencord/shared/pdf/util/ImageUtil.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf.util;
import java.awt.image.BufferedImage;
@@ -10,7 +25,7 @@ import javax.imageio.ImageIO;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class ImageUtil {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/DefaultTableRowTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/DefaultTableRowTest.java
index 6688de3..c5468b1 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/DefaultTableRowTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/DefaultTableRowTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -6,7 +21,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class DefaultTableRowTest {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/Invoice.java b/pdf/src/test/java/de/muehlencord/shared/pdf/Invoice.java
index bec371b..a344d31 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/Invoice.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/Invoice.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import java.util.ArrayList;
@@ -6,7 +21,7 @@ import java.util.List;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class Invoice {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/InvoiceLine.java b/pdf/src/test/java/de/muehlencord/shared/pdf/InvoiceLine.java
index dc38532..6bc28f8 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/InvoiceLine.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/InvoiceLine.java
@@ -1,8 +1,23 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class InvoiceLine {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/PDFFontTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/PDFFontTest.java
index e692808..b9378c6 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/PDFFontTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/PDFFontTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -5,7 +20,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFFontTest {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/PDFImageContentTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/PDFImageContentTest.java
index 7177fbe..214f6ed 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/PDFImageContentTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/PDFImageContentTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import java.io.File;
@@ -8,7 +23,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFImageContentTest {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/PDFTextContentTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/PDFTextContentTest.java
index 3cb5feb..c61d9d5 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/PDFTextContentTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/PDFTextContentTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import com.google.gson.Gson;
@@ -6,7 +21,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PDFTextContentTest {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/TextTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/TextTest.java
index 8663e5c..11f3916 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/TextTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/TextTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -6,7 +21,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class TextTest {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/test/GsonSerialisation.java b/pdf/src/test/java/de/muehlencord/shared/pdf/test/GsonSerialisation.java
index 0610aa4..b554986 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/test/GsonSerialisation.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/test/GsonSerialisation.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf.test;
import de.muehlencord.shared.pdf.ConfigurationException;
@@ -18,7 +33,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class GsonSerialisation {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/test/PDFDocumentTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/test/PDFDocumentTest.java
index 807b910..fafe603 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/test/PDFDocumentTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/test/PDFDocumentTest.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf.test;
import de.muehlencord.shared.pdf.ConfigurationException;
@@ -31,7 +46,7 @@ import org.junit.jupiter.api.TestMethodOrder;
/**
*
- * @author jomu
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
@TestMethodOrder(OrderAnnotation.class)
public class PDFDocumentTest {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/test/User.java b/pdf/src/test/java/de/muehlencord/shared/pdf/test/User.java
index 740e689..47e6e72 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/test/User.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/test/User.java
@@ -1,10 +1,25 @@
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf.test;
import com.google.gson.annotations.Expose;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class User {
diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java
index c6fe41e..f1a85d0 100644
--- a/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java
+++ b/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java
@@ -1,4 +1,18 @@
-
+/*
+ * 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.
+ */
package de.muehlencord.shared.pdf.util;
import java.awt.image.BufferedImage;
@@ -10,7 +24,7 @@ import org.junit.jupiter.api.Test;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class ImageUtilTest {
diff --git a/pdf/src/test/resources/log4j.xml b/pdf/src/test/resources/log4j.xml
index 887d158..36d9a36 100644
--- a/pdf/src/test/resources/log4j.xml
+++ b/pdf/src/test/resources/log4j.xml
@@ -1,4 +1,20 @@
+
+
diff --git a/poi-util/pom.xml b/poi-util/pom.xml
index 2abf5b0..0caa566 100644
--- a/poi-util/pom.xml
+++ b/poi-util/pom.xml
@@ -1,4 +1,20 @@
+
+
4.0.0
diff --git a/poi-util/src/main/java/de/muehlencord/shared/poi/PoiException.java b/poi-util/src/main/java/de/muehlencord/shared/poi/PoiException.java
index d81e532..ce3a0e0 100644
--- a/poi-util/src/main/java/de/muehlencord/shared/poi/PoiException.java
+++ b/poi-util/src/main/java/de/muehlencord/shared/poi/PoiException.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2019 joern.muehlencord.
+/*
+ * 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.
@@ -17,7 +17,7 @@ package de.muehlencord.shared.poi;
/**
*
- * @author joern.muehlencord
+ * @author Joern Muehlencord (joern@muehlencord.de)
*/
public class PoiException extends Exception {
diff --git a/poi-util/src/main/java/de/muehlencord/shared/poi/PoiUtil.java b/poi-util/src/main/java/de/muehlencord/shared/poi/PoiUtil.java
index cfe42a2..a81a436 100644
--- a/poi-util/src/main/java/de/muehlencord/shared/poi/PoiUtil.java
+++ b/poi-util/src/main/java/de/muehlencord/shared/poi/PoiUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2019 Joern Muehlencord (joern (at) muehlencord.de)
+ * 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.
diff --git a/poi-util/src/main/java/de/muehlencord/shared/poi/WorkbookApp.java b/poi-util/src/main/java/de/muehlencord/shared/poi/WorkbookApp.java
index dc3fd93..25026cf 100644
--- a/poi-util/src/main/java/de/muehlencord/shared/poi/WorkbookApp.java
+++ b/poi-util/src/main/java/de/muehlencord/shared/poi/WorkbookApp.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2019 Joern Muehlencord (joern (at) muehlencord.de)
+ * 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.
diff --git a/pom.xml b/pom.xml
index 404e1ea..a2a4445 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,4 +1,20 @@
+
+
4.0.0de.muehlencord
@@ -9,11 +25,8 @@
configurationnetwork
- security
-
utiljeeutil
- accountpdfshiro-facespoi-util
@@ -96,17 +109,17 @@
org.slf4jslf4j-api
- 1.7.26
+ 1.7.28org.slf4jslf4j-log4j12
- 1.7.26
+ 1.7.28org.slf4jjcl-over-slf4j
- 1.7.26
+ 1.7.28
@@ -161,7 +174,7 @@
com.enterprisedtedtFTPj
- 1.5.3
+ 1.5.3
@@ -172,7 +185,7 @@
org.bouncycastlebcprov-jdk15on
- 1.59
+ 1.62
@@ -190,7 +203,7 @@
org.freemarkerfreemarker
- 2.3.28
+ 2.3.29org.primefaces
@@ -227,28 +240,16 @@
com.inversoftprime-jwt
- 1.3.1
+ 2.0.0
-
- org.junit.jupiter
- junit-jupiter-api
- 5.5.1
- test
-
-
- org.junit.jupiter
- junit-jupiter-params
- 5.5.1
- test
- org.junit.jupiterjunit-jupiter-engine5.5.1test
-
+ org.mockitomockito-core
diff --git a/security/pom.xml b/security/pom.xml
deleted file mode 100644
index acd596c..0000000
--- a/security/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
- 4.0.0
-
- de.muehlencord.shared
- shared-security
- 1.2-SNAPSHOT
- jar
- shared-security
-
-
- shared
- de.muehlencord
- 1.2-SNAPSHOT
-
-
- http://maven.apache.org
-
-
- UTF-8
-
-
-
-
- org.junit.jupiter
- junit-jupiter-engine
- test
-
-
- commons-codec
- commons-codec
- jar
-
-
- org.slf4j
- slf4j-api
-
-
- org.bouncycastle
- bcprov-jdk15on
-
-
- com.lambdaworks
- scrypt
-
-
-
diff --git a/security/src/main/java/de/muehlencord/shared/security/Luhn.java b/security/src/main/java/de/muehlencord/shared/security/Luhn.java
deleted file mode 100644
index d79877c..0000000
--- a/security/src/main/java/de/muehlencord/shared/security/Luhn.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * File: $$RCSfile$$
- *
- * Copyright (c) 2011 by Wincor Nixdorf,
- * Heinz-Nixdorf-Ring 1, 33106 Paderborn, Germany
- *
- * This software is the confidential and proprietary information
- * of Wincor Nixdorf.
- *
- * You shall not disclose such confidential information and shall
- * use it only in accordance with the terms of the license agreement
- * you entered into with Wincor Nixdorf.
- */
-package de.muehlencord.shared.security;
-
-import static java.lang.Integer.parseInt;
-import static java.lang.String.valueOf;
-
-/**
- *
- * @author joern.muehlencord
- */
-public class Luhn {
-
- public static boolean validateNumber(final String numberStr) {
- return (computeCheckDigit(numberStr, true) == 0);
- }
-
- public static int computeCheckDigit(final String numberStr, final boolean isCheckDigitAttached) {
- boolean doubleNextDigit = !isCheckDigitAttached;
- int sum = 0;
-
- // iterate from right digit to left
- for (int currentDigitPos = numberStr.length() - 1; currentDigitPos >= 0; currentDigitPos--) {
- int currentDigit = parseInt(valueOf(numberStr.charAt(currentDigitPos)));
- if (doubleNextDigit) {
- currentDigit = currentDigit * 2;
- }
- sum += singleDigitSum(currentDigit);
- doubleNextDigit = !doubleNextDigit;
- }
-
- if ((sum % 10) > 0) {
- return (10 - (sum % 10));
- } else {
- return 0;
- }
- }
-
- private static int singleDigitSum(final int value) {
- if (value < 10) {
- return value;
- } else {
- return singleDigitSum((value / 10) + (value % 10));
- }
- }
-}
-
-/**
- * History:
- *
- * $$Log$$
- *
- */
diff --git a/security/src/main/java/de/muehlencord/shared/security/OldPasswordUtil.java b/security/src/main/java/de/muehlencord/shared/security/OldPasswordUtil.java
deleted file mode 100644
index 7625817..0000000
--- a/security/src/main/java/de/muehlencord/shared/security/OldPasswordUtil.java
+++ /dev/null
@@ -1,239 +0,0 @@
-package de.muehlencord.shared.security;
-
-import static com.lambdaworks.crypto.SCryptUtil.check;
-import static com.lambdaworks.crypto.SCryptUtil.scrypt;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.util.Arrays;
-import org.apache.commons.codec.binary.Base64;
-/**
- *
- * @author joern@muehlencord.de
- * @Deprecated uses old algorithms, do not use this class anylonger
- */
-@Deprecated
-public abstract class OldPasswordUtil {
-
- /** logging object */
- // private final static Logger LOGGER = Logger.getLogger(PasswordUtil.class);
-
- /** SCrypt CPU cost parameter */
- private final static int scryptCpuCostParameter = 16384;
- /** SCrypt memory cost parameter */
- private final static int scryptMemCostParameter = 8;
- /** SCrypt paralelization parameter */
- private final static int scryptParallelizationParameter = 1;
-
-
- /**
- * returns password (pos 0) and the salt (pos 1) of given plaintext password. Both strings are base64 encoded
- *
- * @param plainTextPassword he
- * @param saltLength the length of the salt to use
- * @return the password (pos 0) and the salt (pos 1) of given plaintext password. Both strings are base64 encoded
- *
- * @throws de.muehlencord.shared.security.SecurityException if any error occurs during the password generation
- */
- public static String[] getMD5Password(final String plainTextPassword, final int saltLength) throws SecurityException {
- byte[] unHashedPassword = getBase64MD5HashedPassword(plainTextPassword);
- byte[] salt = createSalt(saltLength);
- byte[] hashedPassword = hashPasswordWithSalt(unHashedPassword, salt);
-
- // test
- String saltStr = base64Encode(salt);
- byte[] salt2 = base64Decode(saltStr);
- if (!Arrays.equals(salt, salt2)) {
- throw new SecurityException("Salt conversion failed");
- }
-
-
- String[] returnValue = new String[2];
- returnValue[0] = base64Encode(hashedPassword);
- returnValue[1] = base64Encode(salt);
-
- return returnValue;
- }
-
- /**
- * Checks if the given password (plain text) matches the given crypted password. The crypted password is hashed with the given salt. Both strings, crypted
- * password and salt, have to be base64 encoded
- *
- * @param plainTextPassword the plaintext password to compare to
- * @param cryptedPasswordStr the crypted password to compare to
- * @param saltStr the salt needed to hash the plaintext password with to get the correct crypted password if both passwords match
- * @return true, if and only if the encryption of plainTextPassword (hashed with saltStr) equals to cryptedPasswordStr
- *
- * @throws de.muehlencord.shared.security.SecurityException if any error occures during the check
- */
- public static boolean checkPassword(String plainTextPassword, String cryptedPasswordStr, String saltStr) throws SecurityException {
- byte[] salt = base64Decode(saltStr);
- byte[] newPassword = getBase64MD5HashedPassword(plainTextPassword);
- byte[] newHashedPassword = hashPasswordWithSalt(newPassword, salt);
- byte[] crytepdPassword = base64Decode(cryptedPasswordStr);
- return Arrays.equals(crytepdPassword, newHashedPassword);
- }
-
- /**
- * returns a new salt as a string
- *
- * @param saltLength the length of the salt
- * @return a new salt as a string (base64 encoded)
- *
- * @throws SecurityException if the creation of the salt fails
- */
- public static String createSaltString(int saltLength) throws SecurityException {
- byte[] saltByteArray = createSalt(saltLength);
- String saltString = base64Encode(saltByteArray);
- if (saltString.length() > saltLength) {
- return saltString.substring(0, saltLength);
- } else {
- return saltString;
- }
- }
-
- /** returns a random string with total length starting with prefix string
- *
- * @param prefix the prefix to start the string with
- * @param length the maximum length of the string (including prefix)
- * @return a random string
- *
- * @throws SecurityException if the random string could not be computed
- */
- public static String getRandomString(final String prefix, int length) throws SecurityException {
- String usedPrefix = (prefix == null ? "" : prefix);
-
- int idLength = length - usedPrefix.length();
- return usedPrefix + createSaltString(idLength);
- }
-
-
- /* *** private methods *** */
- /**
- * creates a salt and returns the value as byte[]
- *
- * @param saltLength the length the salt string should have
- * @return the generated salt as byte[]
- *
- * @throws SecurityException if the salt creation fails
- */
- private static byte[] createSalt(int saltLength) throws SecurityException {
- try {
- SecureRandom sha1SecureRandom = SecureRandom.getInstance("SHA1PRNG");
-
- byte salt[] = new byte[saltLength];
- synchronized (sha1SecureRandom) {
- sha1SecureRandom.nextBytes(salt);
- }
- return salt;
- } catch (Exception ex) {
- throw new SecurityException("Cannot created salt", ex);
- }
- }
-
- /**
- * hashes the given password (md5 hashed, base64 coded) with the given salt
- *
- * @param text the text to salt
- * @param salt the salt to use
- * @return the input text salted with password
- *
- * @throws SecurityException
- */
- private static byte[] hashPasswordWithSalt(byte text[], byte salt[]) throws SecurityException {
- try {
- MessageDigest sha1Algorithm = MessageDigest.getInstance("SHA-1");
- byte[] digest;
- synchronized (sha1Algorithm) {
- sha1Algorithm.reset();
- sha1Algorithm.update(salt);
- digest = sha1Algorithm.digest(text);
- }
- return digest;
- } catch (NoSuchAlgorithmException ex) {
- throw new SecurityException("Cannot hash password with salt", ex);
- }
- }
-
- /**
- * returns the given password as md5 without appliying salt
- *
- * @param plainTextPassword the password to convert
- * @return the given password as md5 without appliying salt
- *
- * @throws SecurityException if the passwor cannot be converted
- */
- private static byte[] getBase64MD5HashedPassword(final String plainTextPassword) throws SecurityException {
- try {
- MessageDigest algorithm = MessageDigest.getInstance("MD5");
- algorithm.reset();
- algorithm.update(plainTextPassword.getBytes());
- byte[] messageDigest = algorithm.digest();
- StringBuilder buf = new StringBuilder();
- for (int i = 0; i < messageDigest.length; i++) {
- int halfbyte = (messageDigest[i] >>> 4) & 0x0F;
- int twoHalfs = 0;
- do {
- if ((0 <= halfbyte) && (halfbyte <= 9)) {
- buf.append((char) ('0' + halfbyte));
- } else {
- buf.append((char) ('a' + (halfbyte - 10)));
- }
- halfbyte = messageDigest[i] & 0x0F;
- } while (twoHalfs++ < 1);
- }
-
- // take password and hash with salt
- byte[] unHashedPassword = base64Decode(buf.toString());
-
- return unHashedPassword;
- } catch (Exception ex) {
- throw new SecurityException("Cannot created password", ex);
- }
- }
-
- /**
- * returns the plain byte[] as base64 coded string
- *
- * @param data the data to convert
- * @return the plain byte[] as base64 coded string
- */
- private static String base64Encode(final byte[] data) {
- Base64 encoder = new Base64();
- byte[] result = encoder.encode(data);
- return new String(result);
- }
-
- /**
- * returns the given base64 coded string as decoded byte[]
- *
- * @param data the string to convert
- * @return the given base64 coded string as decoded byte[]
- */
- private static byte[] base64Decode(final String data) {
- Base64 decoder = new Base64();
- return decoder.decode(data.getBytes());
- }
-
-
- /**
- * returns the crypted parameter string for the given plain text password
- *
- * @param plainPassword the plain text password to crypt
- * @return the crypted password string
- */
- public static String getScryptHash(String plainPassword) {
- return scrypt(plainPassword, scryptCpuCostParameter, scryptMemCostParameter, scryptParallelizationParameter);
- }
-
- /**
- * returns true, if the given plainPassword re-encrypted matches the given crypted password
- *
- * @param plainPassword the plain password to validate
- * @param hashedPassword the encrypted password to validate against
- * @return true, if the encrypted string of the given plain password matches the provided crypted password
- */
- public static boolean validateScryptHash(String plainPassword, String hashedPassword) {
- return check(plainPassword, hashedPassword);
- }
-}
diff --git a/security/src/main/java/de/muehlencord/shared/security/PasswordUtil.java b/security/src/main/java/de/muehlencord/shared/security/PasswordUtil.java
deleted file mode 100644
index 50769e8..0000000
--- a/security/src/main/java/de/muehlencord/shared/security/PasswordUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package de.muehlencord.shared.security;
-
-import java.security.SecureRandom;
-import org.bouncycastle.crypto.generators.SCrypt;
-import org.bouncycastle.util.encoders.Base64;
-
-/**
- * TODO: migrate to shared library
- *
- * @author joern.muehlencord
- */
-public class PasswordUtil {
-
- private final static SecureRandom SECURERANDOM = new SecureRandom();
-
- private final static int CPU_MEMORY_COST_PARAMETER = 16384;
- private final static int BLOCK_SIZE = 8;
- private final static int PARALLELIZATION = 1;
- private final static int KEY_LENGTH = 32;
-
- private final String systemsalt;
-
- public PasswordUtil(String systemSaltBase64Coded) {
- // TODO make some tests like lengths etc
- this.systemsalt = systemSaltBase64Coded;
- }
-
- public String getHash(String clearPassword) {
-
- // generate user salt
- byte[] userSaltBytes = new byte[32];
- SECURERANDOM.nextBytes(userSaltBytes);
- String userSalt = new String(Base64.encode(userSaltBytes));
-
- // create passwordhash with salt
- String passwordHash = getPasswordHash(systemsalt, userSalt, clearPassword);
-
- StringBuilder sb = new StringBuilder();
- sb.append(userSalt);
- sb.append(":");
- sb.append(passwordHash);
-
- return sb.toString();
- }
-
- public boolean matches(String clearPassword, String passwordHashWithSalt) {
- if (!passwordHashWithSalt.contains(":")) {
- // TODO add exception handling
- return false;
- }
-
- String userSalt = passwordHashWithSalt.substring(0, passwordHashWithSalt.indexOf(":"));
- String passwordHash = passwordHashWithSalt.substring(passwordHashWithSalt.indexOf(":")+1);
-
- String validationHash = getPasswordHash(systemsalt, userSalt, clearPassword);
- return validationHash.equals(passwordHash);
- }
-
- private String getPasswordHash(String systemSaltBase64, String userSaltBase64, String clearPassword) {
- byte[] systemSalt = systemSaltBase64.getBytes();
- byte[] userSalt = userSaltBase64.getBytes();
- byte[] salt = new byte[systemSalt.length + userSalt.length];
-
- System.arraycopy(systemSalt, 0, salt, 0, systemSalt.length);
- System.arraycopy(userSalt, 0, salt, systemSalt.length, userSalt.length);
-
- return new String(Base64.encode(SCrypt.generate(clearPassword.getBytes(), salt, CPU_MEMORY_COST_PARAMETER, BLOCK_SIZE, PARALLELIZATION, KEY_LENGTH)));
- }
-}
diff --git a/security/src/main/java/de/muehlencord/shared/security/SecurityException.java b/security/src/main/java/de/muehlencord/shared/security/SecurityException.java
deleted file mode 100644
index 6c3dd46..0000000
--- a/security/src/main/java/de/muehlencord/shared/security/SecurityException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- */
-
-package de.muehlencord.shared.security;
-
-/**
- *
- * @author joern@muehlencord.de
- */
-public class SecurityException extends Exception {
-
- public SecurityException() {
- super ("An error occured during a security action");
- }
-
- public SecurityException(String msg) {
- super (msg);
- }
-
- public SecurityException(String msg, Throwable cause) {
- super(msg, cause);
- }
-
- public SecurityException(Throwable cause) {
- super (cause);
- }
-
-
-}
diff --git a/security/src/test/java/de/muehlencord/shared/security/LuhnTest.java b/security/src/test/java/de/muehlencord/shared/security/LuhnTest.java
deleted file mode 100644
index 2096e6b..0000000
--- a/security/src/test/java/de/muehlencord/shared/security/LuhnTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * File: $$RCSfile$$
- *
- * Copyright (c) 2011 by Wincor Nixdorf,
- * Heinz-Nixdorf-Ring 1, 33106 Paderborn, Germany
- *
- * This software is the confidential and proprietary information
- * of Wincor Nixdorf.
- *
- * You shall not disclose such confidential information and shall
- * use it only in accordance with the terms of the license agreement
- * you entered into with Wincor Nixdorf.
- */
-package de.muehlencord.shared.security;
-
-import static de.muehlencord.shared.security.Luhn.computeCheckDigit;
-import static de.muehlencord.shared.security.Luhn.validateNumber;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import org.junit.jupiter.api.Test;
-
-/**
- *
- * @author joern.muehlencord
- */
-public class LuhnTest {
-
- public LuhnTest() {
- }
-
- @Test
- public void testComputeCheckDigit() {
- String testString = "7992739871";
- int checkNumber = computeCheckDigit(testString, false);
- System.out.println(checkNumber);
- assertTrue(checkNumber == 3);
- }
-
- @Test
- public void testValidateNumber() {
- assertFalse(validateNumber("79927398710"));
- assertFalse(validateNumber("79927398711"));
- assertFalse(validateNumber("79927398712"));
- assertTrue(validateNumber("79927398713"));
- assertFalse(validateNumber("79927398714"));
- assertFalse(validateNumber("79927398715"));
- assertFalse(validateNumber("79927398716"));
- assertFalse(validateNumber("79927398717"));
- assertFalse(validateNumber("79927398718"));
- assertFalse(validateNumber("79927398719"));
- }
-
-}
-
-/**
- * History:
- *
- * $$Log$$
- *
- */
diff --git a/security/src/test/java/de/muehlencord/shared/security/OldPasswordUtilTest.java b/security/src/test/java/de/muehlencord/shared/security/OldPasswordUtilTest.java
deleted file mode 100644
index dd956f4..0000000
--- a/security/src/test/java/de/muehlencord/shared/security/OldPasswordUtilTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package de.muehlencord.shared.security;
-
-import static de.muehlencord.shared.security.OldPasswordUtil.getScryptHash;
-import static de.muehlencord.shared.security.OldPasswordUtil.validateScryptHash;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import org.junit.jupiter.api.Test;
-
-/**
- *
- * @author jomu
- */
-public class OldPasswordUtilTest {
-
- /**
- * Test of createSaltString method, of class PasswordUtil.
- */
- @Test
- public void createSaltString() throws Exception {
- System.out.println("createSaltString");
- int saltLength = 40;
- String result = OldPasswordUtil.createSaltString(saltLength);
- assertNotNull(result);
- }
-
- /**
- * Test of getMD5Password method, of class PasswordUtil.
- */
- @Test
- public void getMD5Password() throws Exception {
- System.out.println("getMD5Password");
- String plainTextPassword = "";
- int saltLength = 40;
- String[] result1 = OldPasswordUtil.getMD5Password(plainTextPassword, saltLength);
- String password1 = result1[0];
- String salt1 = result1[1];
- assertNotNull(result1);
- assertNotNull(password1);
- assertNotNull(salt1);
-
- String[] result2 = OldPasswordUtil.getMD5Password(plainTextPassword, saltLength);
- String password2 = result2[0];
- String salt2 = result2[1];
- assertNotNull(result2);
- assertNotNull(password2);
- assertNotNull(salt2);
-
- assertNotSame(result1, result2);
- assertNotSame(password1, password2);
- assertNotSame(salt1, salt2);
- }
-
- /**
- * Test of checkPassword method, of class PasswordUtil.
- */
- @Test
- public void checkPassword() throws Exception {
- System.out.println("checkPassword");
- String plainTextPassword = "welcome";
- String plainTextPassword2 = "this is not the correct password";
-
- String[] data = OldPasswordUtil.getMD5Password(plainTextPassword, 40);
- String cryptedPassword = data[0];
- String salt = data[1];
-
- String salt2 = OldPasswordUtil.createSaltString(40);
- String salt3 = OldPasswordUtil.createSaltString(10);
-
- boolean expResult = true;
- boolean result = OldPasswordUtil.checkPassword(plainTextPassword, cryptedPassword, salt);
- assertTrue(expResult == result);
-
- expResult = false;
- result = OldPasswordUtil.checkPassword(plainTextPassword2, cryptedPassword, salt);
- assertTrue(expResult == result);
-
- expResult = false;
- result = OldPasswordUtil.checkPassword(plainTextPassword, cryptedPassword, salt2);
- assertTrue(expResult == result);
-
- expResult = false;
- result = OldPasswordUtil.checkPassword(plainTextPassword, cryptedPassword, salt3);
- assertTrue(expResult == result);
- }
-
- @Test
- public void getRandomString() throws SecurityException {
- System.out.println("getRandomString");
- String randomString = OldPasswordUtil.getRandomString("test-", 32);
- System.out.println(randomString);
- assertNotNull(randomString);
- assertTrue(randomString.startsWith("test"), "string must start with prefix");
- assertTrue(32 == randomString.length(), "string length check");
-
- String randomString2 = OldPasswordUtil.getRandomString("test-", 32);
- System.out.println(randomString2);
- assertNotNull(randomString2);
- assertTrue(randomString2.startsWith("test"), "string must start with prefix");
- assertTrue(32 == randomString2.length(), "string length check");
-
- assertNotSame(randomString, randomString2);
- }
-
- @Test
- public void getRandomStringBlankPrefix() throws SecurityException {
- System.out.println("getRandomStringBlankPrefix");
- String randomString = OldPasswordUtil.getRandomString("", 32);
- System.out.println(randomString);
- assertNotNull(randomString);
- assertTrue(32 == randomString.length(), "string length check");
- }
-
- @Test
- public void getRandomStringNullPrefix() throws SecurityException {
- System.out.println("getRandomStringNullPrefix");
- String randomString = OldPasswordUtil.getRandomString(null, 32);
- System.out.println(randomString);
- assertNotNull(randomString);
- assertTrue(32 == randomString.length(), "string length check");
- }
-
- /**
- * test the hashPassword method
- */
- @Test
- public void testGetScryptHash() {
- String hash1 = getScryptHash("secret");
- String hash2 = getScryptHash("secret");
- System.out.println(hash1);
- System.out.println(hash2);
- assertNotNull(hash1);
- assertNotNull(hash2);
- // even if password is the same, the has must not be the same due to correct usage of salts
- assertFalse(hash1.equals(hash2));
-
- assertTrue(hash1.length() == 79);
- assertTrue(hash2.length() == 79);
- }
-
- /**
- * test for validating passwords
- */
- @Test
- public void testValidateScryptHash() {
- String hash1 = getScryptHash("secret");
- String hash2 = getScryptHash("secret");
- assertTrue(validateScryptHash("secret", hash1), "hash must match if correct password is given");
- assertTrue(validateScryptHash("secret", hash2), "hash must match if correct password is given");
- assertFalse(validateScryptHash("secret2", hash1), "hash must not match if wrong password is given");
- }
-
-}
diff --git a/security/src/test/java/de/muehlencord/shared/security/PasswordUtilTest.java b/security/src/test/java/de/muehlencord/shared/security/PasswordUtilTest.java
deleted file mode 100644
index 9585872..0000000
--- a/security/src/test/java/de/muehlencord/shared/security/PasswordUtilTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.muehlencord.shared.security;
-
-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
- */
-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));
- }
-
-
- @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));
-
-
- }
-
-}
diff --git a/shiro-faces/pom.xml b/shiro-faces/pom.xml
index 8acc81b..4b16756 100644
--- a/shiro-faces/pom.xml
+++ b/shiro-faces/pom.xml
@@ -1,4 +1,20 @@
+
+
4.0.0de.muehlencord.shared
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/filter/FacesAjaxAwarePassThruAuthenticationFilter.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/filter/FacesAjaxAwarePassThruAuthenticationFilter.java
index c9be041..af64337 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/filter/FacesAjaxAwarePassThruAuthenticationFilter.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/filter/FacesAjaxAwarePassThruAuthenticationFilter.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
package de.muehlencord.shirofaces.filter;
import java.io.IOException;
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAccessControlTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAccessControlTag.java
index a7991ff..74f86f8 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAccessControlTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAccessControlTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAuthenticationTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAuthenticationTag.java
index 1a1df07..3e8fb85 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAuthenticationTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractAuthenticationTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractPermissionTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractPermissionTag.java
index 3705ce2..fbdbd60 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractPermissionTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractPermissionTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractRoleTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractRoleTag.java
index f86c693..cd438d1 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractRoleTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractRoleTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractTag.java
index 06fc662..4917444 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AbstractTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AuthenticatedTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AuthenticatedTag.java
index dddf525..3143dc8 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AuthenticatedTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/AuthenticatedTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/GuestTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/GuestTag.java
index c8a2102..17bbccb 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/GuestTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/GuestTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyPermissionTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyPermissionTag.java
index 17f43b6..8ade43e 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyPermissionTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyPermissionTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyRolesTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyRolesTag.java
index 1ab2827..af953ad 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyRolesTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasAnyRolesTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasPermissionTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasPermissionTag.java
index 545299c..8b690f6 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasPermissionTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasPermissionTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasRoleTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasRoleTag.java
index 43b625b..3125aee 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasRoleTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/HasRoleTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksPermissionTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksPermissionTag.java
index 925d27a..98c102f 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksPermissionTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksPermissionTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksRoleTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksRoleTag.java
index 527ccb6..05c1433 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksRoleTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/LacksRoleTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/NotAuthenticatedTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/NotAuthenticatedTag.java
index 9d4aff2..930d778 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/NotAuthenticatedTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/NotAuthenticatedTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/UserTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/UserTag.java
index 0d52500..6231352 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/UserTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/UserTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/unsupported/PrincipalTag.java b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/unsupported/PrincipalTag.java
index bed72b7..43e66bf 100644
--- a/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/unsupported/PrincipalTag.java
+++ b/shiro-faces/src/main/java/de/muehlencord/shirofaces/tags/unsupported/PrincipalTag.java
@@ -1,5 +1,5 @@
-/*
- * Copyright 2016 Joern Muehlencord (joern at muehlencord.de).
+/*
+ * 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.
diff --git a/shiro-faces/src/main/resources/META-INF/shiro-faces.taglib.xml b/shiro-faces/src/main/resources/META-INF/shiro-faces.taglib.xml
index 7d60112..f6721b7 100644
--- a/shiro-faces/src/main/resources/META-INF/shiro-faces.taglib.xml
+++ b/shiro-faces/src/main/resources/META-INF/shiro-faces.taglib.xml
@@ -1,6 +1,6 @@
+
4.0.0