BigBastis Blog

BigBastis Blog

About Me & my Digital Lifestyle


Navigation
CategoryJava

Java

Featured

Java: Create ZIP archive

Posted byuserSebastian Gross on März 23rd, 2015.

Introduction On a website project at work i had to implement a feature that allowed the user to download one or more messages as a zip file. When i started, i really was shocked how complicated it is to zip or unzip a String in java. If you glance over to csharp the whole zip-thing looks easy as pie: Those wrapper classes from System.IO make it really easy to create and read archives. After a bit of trial and error i was able to create some easy to use java methods which do the same. So for you (and for me as a future reference), here’s the code. Zipping / […]

Java

Featured

Spring Security with custom AuthoritiesPopulator over LDAP

Posted byuserSebastian Gross on Januar 30th, 2014.

Spring offers you a lot of possibilities when it comes to configuration. But sometimes this billions of possibilities can be a real pita! Reacently i had to connect a Spring MVC application to a LDAP authentication server and since the webapp allready run on spring security i decided to keep it that way an use the LdapAuthenticationProvider offered by spring. When your project is simple enough so you can use the default configurations offered by spring the complete working LDAP configuration can be as simple as this: It’s as simple as that. Unfortunately our webapp doesn’t get the roles from the LDAP, it’s only used to authenticate the user, the roles […]

Allgemein

Featured

Java: Validierung und strukturelle Pruefung einer IBAN

Posted byuserSebastian Gross on September 6th, 2013.

Als ich vor einer Weile die Anforderung bekam eine Prüfung für IBANs zu implementieren habe ich gedacht ich bin im 10 Minuten fertig, das Internet ist groß, stimmts? Google ist nur einen Klick entfernt, oder? Nun ja, nach den ersten Suchvorgängen habe ich den einen oder anderen Beitrag gefunden der einen mehr oder weniger brauchbaren IBAN Validator verlinkt. Doch die Validierung einer IBAN ist im Grunde der einfache Teil, das etwas schwierigere Vorhaben ist aber die Strukturelle Prüfung einer IBAN. Dazu kann man zwar einige Web-Tools finden, die das bei bedarf erledigen, aber eine ordentliche Library sucht man dafür vergeblich. (Zumindest habe ich nichts gefunden was mir wirklich gefallen hat). […]

Java

Featured

Nuetzliche Maven Parameter

Posted byuserSebastian Gross on November 2nd, 2012.

Maven ist ein sehr mächtiges und praktisches Werkzeug, aber manchmal ist das vordefinierte Verhalten etwas nervig. Glücklicherweise kann man so ziemlich alles über Parameter beeinflussen. Test-Fehler ingnorieren Oft will man alle Testfälle eines Projekts ausführen um einen Überblick zu erhalten, Maven bricht per Default aber nach dem ersten Testfehler ab, dieses Verhalten kann man Maven ganz leicht über diesen Parameter abgewöhnen: mvn test -Dmaven.test.failure.ignore=true Wenn man will kann man dieses Verhalten auch für ein Projekt vorschreiben, sodass es bei jedem Testdurchlauf so bleibt. Dazu definiert man folgendes Plugin: Tests beim install überspringen Standardmäßig führt Maven beim install auch alle Tests aus und bricht bei dem ersten nicht bestandenen Test den install […]

GlassFish

Featured

GlassFish: Unnoetige HTTP-Response Header entfernen

Posted byuserSebastian Gross on April 16th, 2012.

In dem letzten Artikel habe ich beschrieben, wie ihr unter ASP.NET MVC Anwendungen die verräterischen HTTP Header ausblenden könnt, nun können wir auch mal auf den GlassFish schauen. Wie ihr in dem oberen Bild erkennen könnt sendet der GlassFish hier seinen Namen, die Version und auch das verwendete Framework mit. Das wollen wir natürlich nicht haben. Fangen wir mit dem Server-Header an. Dieser ist recht einfach zu entfernen durch das Setzen eines VM-Parameters in der GlassFish Adminoberfläche. Startet die Admin console Wählt Configuration ->JVM Settings Wählt oben JVM Options Klickst auf Add JVM Option In der neue textfeld tragt ihr ein:  -Dproduct.name=““ Klickt auf Save und startet den GlassFish neu Auch […]

.NET

Featured

Aktuelle Zeile bei Kommandozeilen Applikationen aktualisieren

Posted byuserSebastian Gross on Februar 9th, 2012.

Vielleicht ist euch das ja auch schon Mal passiert, ihr entwickelt eine Kommandozeilen-App und wollt die Aktuelle Zeile ändern. Ein Beispiel dafür wäre ein Fortschrittsbalken oder der beliebte Command-Line-Spinner ( bestehend aus den Zeichen /, -, \, |. Wenn diese nacheinander angezeigt werden sieht das so aus wie ein sich drehender Ast 🙂 Das Ganze kann in allen Kommandozeilenfenstern, egal ob Unix oder Windows implementiert werden. Der Schlüssel hierzu ist das Sonderzeichen \b – welches das Drücken der Backspace Taste simuliert. Ähnliche Vertreter sind \t für Tab und \n für Zeilenumbruch. Solange ihr noch keinen Zeilenumbruch abgesetzt habt könnt ihr jede Ausgabe in der aktuellen Zeile widerrufen durch das ausgeben von \b […]

Allgemein

Featured

SSL Teil 4: Serverseitige Authentifizierung mit Java

Posted byuserSebastian Gross on Dezember 13th, 2011.

Nachdem wir in den letzen Teilen mehr die Theorie durchgenommen haben, möchte ich jetzt zu dem praktischen Teil kommen und euch zeigen wie man diese Theorie in Code umsetzen kann am Beispiel Java. (.NET wird auch noch folgen) Wir wollen einfach einsteigen und implementieren erst mal nur die eine Serverseitige Authentifizierung, also muss der Server sich uns gegenüber ausweisen und wir sind in der Pflicht sein Zertifikat anzunehmen oder abzulehnen. Wie in Teil 1 erklärt benötigen wir also zunächst einen Ort wo wir die Zertifikate sichern, denen wir vertrauen. Hier können wir (da wir in Java unterwegs sind) nicht die Windows-eigenen nehmen sondern müssen die so genannten Keystores von Java […]

Java

Featured

Java: SubjectDN eines X509Zertifikates zu OpenSSL kompatibel machen

Posted byuserSebastian Gross on August 5th, 2011.

Java stellt uns zum angenehmen Arbeiten mit X509-Zertifikaten die Klasse java.security.cert.X509Certificate zur Verfügung. Hier können wir uns sehr einfach über die methode .getSubjectDN().getName() den Distinguished Name des Zertifikats besorgen. Wenn man in der Javawelt bleibt ist das auch alles ok und funktioniert Problemlos. Will man aber andere Programme wie zum Beispiel OpenSSL anbinden, bekommt man hier ein Problem, denn OpenSSL liefert einen anderen SubjectDN String als unsere Java Klasse. Wobei mit anders meine ich, dass die Reihenfolge der ausgegebenen Parameter anders ist, hier ein Beispiel: Ausgabe von OpenSSL (über die X509_NAME_oneline Methode): /C=DE/ST=NRW/L=Bielefeld/O=ORG/OU=AB1/CN=130.122.146.121 Wogegen die Java-Klasse folgenden String liefert (.getSubjectDN().getName()) : CN=130.122.146.121, OU=AB1, O=ORG, L=Bielefeld, ST=NRW, C=DE Die Reihenfolge scheint genau […]

.NET

Featured

Visual Studio 2010 und das Intellisense im Vergleich

Posted byuserSebastian Gross on August 4th, 2011.

Da ich Beruflich auch viel im Javaumfeld arbeite, komme ich in Kontakt mit verschiedenen IDEs. Am besten gefällt hier das kostenlose NetBeans von Sun Oracle. Und bereits nach kurzer Zeit sieht man die vielen Unterschiede der IDEs, besonders fällt hier aber der Unterschied des Code Completion Features der IDEs auf. Im Visual Studio haben wir Intellisense kennen- und lieben gelernt, es ist schnell und liefert uns die Informationen die wir haben wollen. Doch schaut man hier mal auf das andere Ufer, wird man schnell feststellen, dass hier doch tatsächlich noch Nachholbedarf besteht. Schauen wir uns beispielsweise ein typischen Intellisense Pupup an, der uns Informationen zu der Methode Create() der HttpWebRequest-Klasse […]

Java

Featured

Java: Webservice anlegen und konsumieren

Posted byuserSebastian Gross on Januar 6th, 2011.

Aus gegebenen Anlass gibt es heute mal ein kleines Tutorial wie man in Java ein WebService anlegt und diesen dann benutzt. Das ganze wird mit NetBeans 9.6.1 als IDE und einem Glassfish als Application Server realisiert. Erstmal kurz: was ist ein WebService? Ein WebService unter Java ist (vergleichbar mit RMI) eine Art Dienst, der sowohl von anderen Anwendungen als auch von Webseiten genutzt werden kann. Anders als eine gewöhnliche Webseite besitzt ein WebService kein eigenes Benutzerinterface sondern stellt nur in einer Schnittstellenbeschreibung seine Dienste nach außen zur Verfügung. Diese Schnittstellenbeschreibungen werden in WSDL Dateien (Web Service Description Language) gespeichert, diese sind XML Dokumente, die genau beschreiben, welche Methoden der WebService […]