2014 – Zeit einmal Pause zu machen

Liebe Leser und Leserinnen,

der Blog existiert nun seit mehr als Sieben Jahren und hat inzwischen eine Reihe von Themen gesammelt. Diese verteilen sich auf viele Beiträge. Aus persönlichen Gründen und um mehr Zeit für einige private Projekte zu haben werde ich mit dem Schreiben von Beiträgen im Jahr 2014 eine Pause einlegen.

Ich bedanke mich bei allen Lesern des Blogs und wünsche ein frohes Jahr 2014.

Über meinen Google Plus Account werde ich aber in der Zwischenzeit immer mal wieder kurze Beiträge zum Thema Programmieren und Werkzeuge schreiben oder teilen. Wer möchte kann mir dort auch gerne Folgen:

https://plus.google.com/109821356422652494180/posts

Gruß
Tobi

Maven – Prüfen ob neue Versionen der dependencies verfügbar sind

Hallo, mit dem Plugin “versions-maven-plugin” kann man z.B. bei mvn install anzeigen lassen, ob die dependencies noch aktuell sind:

<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
				<version>2.1</version>
				<executions>
					<execution>
						<phase>install</phase>
						<goals>
							<goal>display-dependency-updates</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

Wenn man das ganze um folgendes erweitert Continue reading

Sicherheit von Passwörtern in Java Anwendungen

Es geht um die Sicherheit, dass das Passwort für dritte nicht einfach einsehbar ist. Aber reicht es das Passwort nicht als Klartext sondern verschlüsselt in der Datenbank abzuspeichern?

Nein, den mit Hilfe von Raibow Tabllen kann der Angreifer möglicherweise das richtige Passwort des Hashes erfahren. Um dies zu verhindern gibt es verschiedene Gegenmaßnahmen:

  • Salt Werte verwenden beim erstellen der verschlüsselten Passwörter
  • Passwörter Encrypten bevor sie gespeichert werden
  • Honeyword Passwörter erstellen

Das Passwort Security Modul http://lightszentip.github.io/password-security/ ermöglicht alle drei Maßnahmen.

Bei Honeyword geht es darum falsche Passwörter zu generieren um den Angreifer die Wahl zu geben, welches Passwort er für das richtige hält und z.B. nach einem Angriff zu merken wenn Continue reading

Graylog2 Server start script

Das folgende Start Script startet einen Graylog2 Server unter ubunut:

/etc/init.d/graylog2-server

#!/bin/sh
#

### BEGIN INIT INFO
# Provides:          graylog2-server
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start graylog2-server at boot time
# Description:       Controls the graylog2-server.
### END INIT INFO

JAVA_CMD=java
PID_FILE=/tmp/graylog2.pid
GRAYLOG2_SERVER_HOME=/opt/graylog2-server

start() {
    echo "Starting graylog2-server ..."
	$JAVA_CMD -jar $GRAYLOG2_SERVER_HOME/graylog2-server.jar > /var/log/graylog2.log 2>&1 &
echo " startet ('cat "$PID_FILE"')."
}

stop() {
        PID=`cat $PID_FILE`
    echo "Stopping graylog2-server ($PID) ..."
        kill $PID
	echo "stopped."
}

restart() {
    echo "Restarting graylog2-server ..."
        stop
sleep 0.5
        start
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage $0 {start|stop|restart}" >&2
        exit 1
esac
exit 0

Graylog2 Web Interface start script

Das folgende Script startet das web-interface von Graylog2.

/etc/init.d/graylog2-web-interface:

#!/bin/bash
 #
 # graylog2-web-interface: graylog2 web interface
 #
 # chkconfig: - 98 02
 # description: Starts graylog2-web-interface using passenger-standalone. \
### BEGIN INIT INFO
 # Provides: graylog2-web-interface
 # Required-Start: $remote_fs $syslog $network
 # Required-Stop: $remote_fs $syslog $network
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Short-Description: Start graylog2-web-interface at boot time
 # Description: Controls the graylog2-web-interface.
 ### END INIT INFO
# config
 APP_DIR=/opt/graylog2-web-interface/
 ADDR=127.0.0.1
 PORT=3000
 LOG_FILE=/var/log/graylog2-web-interface.log
 ENVIRONMENT=production
 SU=/bin/su
. /lib/lsb/init-functions
 case "$1" in
 start)
 echo "Starting graylog2-web-interface"
 $SU -l --shell=/bin/bash -c "cd $APP_DIR && passenger start -a $ADDR -p $PORT -e $ENVIRONMENT >> $LOG_FILE" &
 ;;
 stop)
 echo "Stopping graylog2-web-interface"
 cd $APP_DIR && passenger stop -p $PORT
 ;;
 status)
 cd $APP_DIR && passenger status -p $PORT
 ;;
 *)
 echo "Usage: $0 start|stop|status" >&2
 exit 3
 ;;
 esac
 exit 0

JUnit – Daten aus Xml, CSV, Json .. als Liste im Test bereitstellen

Mit Hilfe von DBUnit können Datenbanken mit Daten z.B. aus CSV oder XML Dateien vor einem Test befüllt werden.

In einigen Testfällen werden aber auch Testdaten benötigt die sich noch nicht in der Datenbank befinden und nicht mit “SELECT” aus der Datenbank geholt werden sollten. Eine Möglichkeit ist, Objekte zu erstellen und die Attribute mit Daten zu befüllen.

Ich habe mir mit Hilfe von DBUnit noch eine weitere Möglichkeit geschaffen. Ich lese Daten aus XML, CSV … etc. mit Hilfe von DBUnit ein und schreibe sie dann Continue reading