#1138 Show warning for hashes that will be deprecated in 5.4

- Introduce Usage.DEPRECATED to mark the hash algorithms accordingly
- Log warning when such a deprecated hash algorithm is used
- Update hash algorithms doc page
This commit is contained in:
ljacqu
2017-03-25 00:23:54 +01:00
parent b7901c6b59
commit c54231b255
11 changed files with 146 additions and 12 deletions
@@ -0,0 +1,76 @@
package fr.xephi.authme.initialization;
import ch.jalu.injector.exceptions.InjectorReflectionException;
import fr.xephi.authme.TestHelper;
import fr.xephi.authme.security.HashAlgorithm;
import org.junit.Test;
import java.util.logging.Logger;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
/**
* Test for {@link OnStartupTasks}.
*/
public class OnStartupTasksTest {
@Test
public void shouldDisplayLegacyJarHint() {
// given
Logger logger = TestHelper.setupLogger();
NoClassDefFoundError noClassDefError = new NoClassDefFoundError("Lcom/google/gson/Gson;");
ReflectiveOperationException ex2 = new ReflectiveOperationException("", noClassDefError);
InjectorReflectionException ex = new InjectorReflectionException("", ex2);
// when
OnStartupTasks.displayLegacyJarHint(ex);
// then
verify(logger).warning("YOU MUST DOWNLOAD THE LEGACY JAR TO USE AUTHME ON YOUR SERVER");
}
@Test
public void shouldNotDisplayLegacyHintForDifferentException() {
// given
Logger logger = TestHelper.setupLogger();
NullPointerException npe = new NullPointerException();
// when
OnStartupTasks.displayLegacyJarHint(npe);
// then
verifyZeroInteractions(logger);
}
@Test
public void shouldNotDisplayLegacyHintForWrongCause() {
// given
Logger logger = TestHelper.setupLogger();
IllegalAccessException illegalAccessException = new IllegalAccessException("Lcom/google/gson/Gson;");
ReflectiveOperationException ex2 = new ReflectiveOperationException("", illegalAccessException);
InjectorReflectionException ex = new InjectorReflectionException("", ex2);
// when
OnStartupTasks.displayLegacyJarHint(ex);
// then
verifyZeroInteractions(logger);
}
@Test
public void shouldCheckIfHashIsDeprecatedIn54() {
// given / when / then
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.CUSTOM), equalTo(false));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.IPB3), equalTo(false));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.PLAINTEXT), equalTo(false));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.SHA256), equalTo(false));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.WORDPRESS), equalTo(false));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.MD5), equalTo(true));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.SHA512), equalTo(true));
assertThat(OnStartupTasks.isHashDeprecatedIn54(HashAlgorithm.WHIRLPOOL), equalTo(true));
}
}