Glassfish 3.1 und httpOnly Session Cookie

Geschrieben von everflux am März 4th, 2011

Wie bereits in meinem anderen Eintrag zu Glassfish 3.1 beschrieben, ist seit der Implementierung der Servlet 3.0 Spezifikation in Glassfish 3.1 der Session Cookie standardmäßig auf “httpOnly” gesetzt – dies kann Probleme mit einigen JavaScript Frameworks verursachen.

In dem web.xml Deploymentdescriptor kann dies umkonfiguriert werden, im glassfish-web.xml Descriptor ist dafür leider keine Möglichkeit vorgesehen. Weblogic, auch von Oracle mit BEA zugekauft, verhält sich dabei genauso, auch hier ist der Session Cookie auf httpOnly gesetzt – kann jedoch über den Weblogic spezifischen Deployment Descriptor unabhängig von der web.xml umkonfiguriert werden.

Und Glassfish 3.1 unterstützt nun auch ein Subset des Weblogic Deployment Descriptors um Weblogic kompatibel zu sein. (Vermutlich ist dies auch ein Grund, aus dem die Cookies httpOnly sind, um mit Weblogic konform zu sein.) Auch wenn es komisch ist, dass Glassfish selber keine Möglichkeit vorsieht das Verhalten im eigenen Deployment Deskriptor zu konfigurieren – über den Umweg des Weblogic spezifischen Descriptors geht es dann:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
<session-descriptor>
<cookie-http-only>false</cookie-http-only>
</session-descriptor>
</weblogic-web-app>

Datenrettung mit Ubuntu

Geschrieben von everflux am Februar 10th, 2011

So einfach kann Datenrettung sein: Meine Mutter hat auf einer Digitalkamera Bilder gehabt, die ihr sehr am Herzen liegen. Leider wurden die Fotos von der Digicam irgendwie gelöscht – und der Frust sehr groß.

Ich hab mir die Speicherkarte der Kamera geschnappt, diese mit einem USB Kartenleser an einen Ubuntu Rechner gehängt, und mittels “dd” ein Abbild der Karte gemacht:

dd if=/dev/sdc of=~/Desktop/rettung.img bs=8192

Das ganze dauerte eine Weile, da es sich um eine 32 Gigabyte Speicherkarte handelte. Nun konnte ich gefahrlos auf dem Abbild arbeiten – soweit mir bekannt löschen Kameras die Fotos nicht sofort, sondern geben, wie bei Dateisystem im Computer, den Speicher lediglich zur Wiederverwendung frei. Somit sah ich gute Chancen auf einer erfolgreiche Datenrettung mit Bordmitteln.

Nachdem das Abbild erstellt war, habe ich mit dem Programm “photorec” das Abbild durchsuchen lassen (ggf. das Paket testdisk installieren, wenn photorec noch nicht verhanden ist):

photorec rettung.img

Nach einer geraumen Weile fanden sich dann die geretteten Bilder in dem von mir angegebenen Ordner. Ich liebe es, wenn ein Plan funktioniert.

Ubuntu: Fenster Größe anpassen

Geschrieben von everflux am Januar 29th, 2011

Bei Ubuntu wurde der Bereich zum “Anfassen” der Fensterrahmen auf sagenhafte einen Pixel verkleinert – möchte man ein Fenster nun breiter ziehen muss man schon gut zielen.

Komfortabler geht das derzeit lediglich, wenn man über eine Maus mit drei Tasten verfügt (oder die mittlere Taste simuliert): Hält man die “Alt” Taste fest, kann man mit der mittleren Maustaste quasi beliebig ins Fenster klicken, und die Größe anpassen. Das ist am Anfang etwas ungewohnt, geht jedoch sogar noch schneller als erst den Fensterrahmen anzusteuern – selbst wenn dieser etwas breiter ist (oder wieder wird).

Tipps zum Tastatur Layout

Geschrieben von everflux am Januar 15th, 2011

Schon seit einem guten Jahr nutze ich das US Tastaturlayout unter Ubuntu als Standardlayout. Gerade zum Entwickeln konnte ich wegen der besseren Position von Semikolon und geschweiften Klammern schnell einen Produktivitätsgewinn feststellen.

Doch dann kamen auch die Rückschläge: Euro Zeichen, Paragraphenzeichen (§) und Umlaute sind nicht mehr verfügbar. Für Umlaute behelfen sich einige mit Unicode Eingabe, oder Copy-Paste-Vorlagen. Ich habe mir bisher damit geholfen, dass ich die Rechtschreibkorrektur einfach “ue” in “ü” habe umwandeln lassen. Hilft jedoch nicht z.B. beim “§”-Zeichen.

Und da habe ich jetzt das Feature “Compose Key” gefunden. Damit kann man – fast wie bei LaTeX – Buchstaben zusammensetzen. Dazu aktiviert man erstmal die Einstellung ein “Compose Key” auf der Tastatur zu haben, ich habe dazu die rechte Alt-Taste verwendet. (System->Preferences->Keyboard, Layout auswählen, “Options”)

Anschließend kann man mittels <compose>-<u>, und <”> ein “ü” zusammensetzen. Das Paragraphenzeichen geht z.B. über <compose>-<s>, <o>

Java Servlet (Spring Controller) auf Root Path mappen

Geschrieben von everflux am Januar 12th, 2011

Nicht immer genuegt es, wenn man ein Servlets auf andere Pfade oder Patterns mappt, manchmal möchte man bereits auf den Context Root ein Servlet mappen. Der übliche Work-Around sieht so aus, dass man bspw. in einer “index.jsp” einen redirect auf eine tatsächlich einem Servlet zugeordnete URL (über den Pfad oder Datei Extension) macht, das könnte so aussehen:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:redirect url="/myServlet"/>

Das ist aber nicht immer praktikabel – nun soll es darum gehen ein Servlet direkt auf den “/” Pfad zu mappen – dafür gibt es mehrere Möglichkeiten:

  1. Das Default Servlet ersetzen, dazu wird auf den Root Pfad “/” in der web.xml ein Mapping angelegt:
    <servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>
  2. Ab Servlet Spezifikation kann auch ein Servlet in der welcome-file-list in der web.xml gemappt werden:
    <welcome-file-list>
    <welcome-file>myServlet</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

Im folgenden beschreibe ich die Vor- und Nachteile der verschiedenen Ansätze, und welche Erfahrungen ich mit verschiedenen Web Containern dabei gemacht habe. Weiterlesen »

Ubuntu Lucid mit FritzCard PCI (CAPI)

Geschrieben von everflux am Dezember 25th, 2010

Nachdem für Ubuntu Intrepid der Support ausgelaufen ist, blieb nichts anderes übrig: Ein Upgrade auf Lucid ist nötig, um weiterhin Sicherheitsupdates für Ubuntu zu bekommen. (Und wann hat man dazu schon so gut Zeit, wie zu Weihnachten…)

Nach einigen Zwischenstationen über u.a. Jaunty und Karmic samt Kernel Oops wegen ACPI und APIC Problemen auf dem alten Nvidia Board war dann endlich Lucid auf der Platte. Allerdings ohne AVM Fritz Treiber – AVM hat den Support eingestellt und es gibt (natürlich) keine OpenSource Treiber. Glücklicherweise gibts im Ubuntuusers-Wiki eine wunderbar funktionierende Anleitung. Für Ubuntu Lucid habe ich folgende Schritte durchgeführt (die Build Abhängigkeiten waren noch von Intrepid vorhanden)

wget https://belug.de/~lutz/pub/fcpci/fritz-fcpci-src-2.6.31_untested.tar.bz2
tar -jxf fritz-fcpci-src-2.6.31_untested.tar.bz2
cd fritz-fcpci-src-2.6.31_untested
make clean
make all
mkdir /lib/modules/`uname -r`/extra
cp fcpci.ko /lib/modules/`uname -r`/extra/

Die letzten beiden Schritte werden wohl nach jedem Kernel Update faellig. In der /etc/modules steht das fcpci Modul noch drin, so dass es beim Systemstart automatisch geladen wird.
Danke an Lutz Willek dem wir das gepatchte Paket zu verdanken haben.

Für Asterisk und Capi sollte das Ubuntu Paket asterisk-chan-capi den entsprechenden Channel fuer Asterisk bereitstellen. Leider ist in Lucid 10.04.1 das Paket defekt, es wurde mit anderen Compileroptionen übersetzt als Asterisk und kann daher nicht geladen werden.
Ein einfacher workaround sieht so aus:
apt-get install asterisk-dev
apt-get source asterisk-chan-capi
cd asterisk-chan-capi-1.1.4
dpkg-buildpackge -b
cd ..
dpkg -i asterisk-chan-capi_1.1.4-1_i386.deb

Das Asterisk Capi Channel Modul sollte in /etc/asterisk/modules.conf unterhalb von res_features eingetragen werden, z.B. so:

load => res_features.so
load => chan_capi.so

Danach muss Asterisk noch neu gestartet werden.

Glassfish remote Monitoring mit VisualVM auf Ubuntu

Geschrieben von everflux am Dezember 20th, 2010

Ubuntu eignet sich hervorragend als Entwicklungsumgebung für Java Anwendungen. Sei es auf dem Desktop oder auf dem Server, bei Ubuntu bekommt man ein aktuelles Sun JDK oder OpenJDK, einen planbaren Releasezyklus. Auch ist ein Unix-artiges Betriebssystem in meinen Augen zum Arbeiten angenehmer als z.B. Windows.

Hat man auf einem entfernten Server, der aber per Netzwerk (oder VPN) erreichbar ist, einen Java Applikationsserver, wie z.B. Glassfish, laufen, so bietet sich JMX zum Monitoring und Management an. Besonders die “VisualVM” Anwendung macht die Arbeit dabei sehr leicht und übersichtlich. Der Start erfolgt einfach per “jvisualvm”, anschließend können lokale Anwendungen sofort analysiert werden, für entfernte Rechner ist eine JMX Verbindung erforderlich.

Für VisualVM gibt es auch ein Plugin für Glassfish, dies kann über “Tools -> Plugins” installiert werden. Danach fügt man den entfernten Host hinzu, hier kann man den Hostnamen oder eine IP Adresse eintragen: Weiterlesen »

Yak scheren: Hudson remote Deploy auf Glassfish (v3)

Geschrieben von everflux am Dezember 17th, 2010

Ich wollte eigentlich nur etwas ganz simples: Continuous Deployment. Das ist der neueste Trend nach Continous Integration habe ich mir sagen lassen. Und gerade wenn man in einem Team arbeitet ist es schon vorteilhaft, wenn man einen stabilen Build staendig deployt hat.

Hudson ist mein bevorzugter Buildserver (auch wenn Bamboo wirklich ansprechender ist, aber eben auch eine Ecke teurer und nicht OpenSource) – und es gibt auch ein Plugin fuer Hudson, mit dem man ein Deployment anstarten kann: http://wiki.hudson-ci.org/display/HUDSON/Deploy+Plugin
Leider funktioniert das bei dem Glassfish nicht, wenn Hudson nicht auf dem selben Server läuft, wie der Glassfish. (Das sollte/dürfte der Regelfall sein.)
Weiterlesen »

Youtube Download

Geschrieben von everflux am Dezember 16th, 2010

Immer wieder werde ich gefragt: Wie geht ein Youtube Download? Der Hintergrund: Nicht immer kann man Videos in Echtzeit abrufen, manchmal ist aufgrund einer längeren Reise oder anderen Gründen keine Internet Versorgung vorhanden. Youtube Videos zu speichern, wenn man sowas absehen kann, lohnt also. (Was rechtliche Aspekte angeht, bin ich jedoch überfragt, ich gehe davon aus, dass es in Deutschland legal ist – wir zahlen ja dafür Urheberrechtsabgaben auf alle Speichermedien  und PCs -  aber sicherlich in mindestens einem Land der Welt verboten ist.) Weiterlesen »

Firefox langsam und braucht viel Speicher?

Geschrieben von everflux am Dezember 6th, 2010

Firefox ist an sich ein recht ordentlicher Browser. Die Zeiten in denen er in Punkto Geschwindigkeit und “Schlankheit” ganz vorne war, sind allerdings vorbei. Aber damit koennen viele gut Leben – Firefox ist recht stabil, die Geschwindigkeit ist auch nicht schlecht und vor allem die Flexibilitaet dank der beinahe unendlichen Fuelle an Erweiterungen (Extensions / Add-Ons) machen den Firefox Browser attraktiv.

Dabei spielt es keine Rolle, ob es um Entwickler geht, die Firebug mit den dafür ebenfalls verfügbaren diversen Erweiterungen nutzen, oder den Gelegenheitssurfer der dank Adblock-Plus schneller und weniger genervt das Internet konsumieren kann. Für andere Nischen und spezielle Bedürfnisse gibt es ebenso viele Plugins von “Spass” bis “Produktivität” ist alles vertreten.

Jedoch wuchs der Neid bei mir wenn ich auf Chrome / Chromium blickte – ich wollte Firefox auch etwas schneller haben. Bekannt für Nachteile bei der Performance sind eben gerade jene Erweiterungen, die einem das Leben so schön erleichtern. Also habe ich einige deaktiviert, es wurde in der tat etwas schneller. Damit war das erledigt. Erfolg!

Bis mir auffiel, dass irgendetwas nicht stimmte. Bei Downloads verschlang Firefox immense Mengen an Speicher – ein Vielfaches dessen, was die Datei selber haben würde. Und auch die CPU Belastung, vor allem bei Downloads, wuchs dramatisch.

Erst hatte ich das Flashplugin in Verdacht – in der Regel trifft man damit den Richtigen, genauso wie pauschal auf Windows schimpfen. Aber daran lag es nicht, ich hatte extra keine Flash Seiten aufgemacht.

Erst als ich alle von Firebug abhaengigen Erweiterungen (und nicht nur Firebug selber) deaktiviert hatte, sowie TamperData und LiveHttpHeaders war endlich alles wie es sein sollte. Firefox brauchte weder Unmengen an Memory noch ging die CPU Last bei Downloads in die Höhe. Welches Plugin tatsächlich verantwortlich war, habe ich nicht mehr untersucht. Vermutlich ist es nicht gut, wenn man Plugins, die Firebug benötigen, aktiviert lässt, aber Firebug selber deaktiviert.

Um mir Arbeit zu sparen (wer moechte schon immer alle Erweiterungen ein- und ausschalten) habe ich mir mittels eine zweiten Firefox Profils das Leben leichter gemacht: Es gibt jetzt ein “dev” Profil für Entwicklung, da ist dann alles aktiviert, dass sich der Web-Entwickler wünscht. Daneben sind auch deutlich weniger, bzw. andere Bookmarks gesetzt: “Führe mich nicht in Versuchung”.

Um den Entwicklungs-Firefox zu starten, habe ich mir eine zusaetzliche Verknuepfung (mit Werkzeug-Symbol) in der Ubuntu Linux Taskbar angelegt, diese ruft folgendes Kommando auf:
firefox -no-remote -P dev

Mittels “-P” kann man das Profil auswählen, welches verwendet werden soll, das “-no-remote” verhindert, dass bei einer bereits gestarteten Firefox Instanz (z.B. des default Profils) lediglich ein neues Fenster aufgemacht wird.

Probiert es mal aus – Kommentare und Feedback erwünscht!


http://everflux.de/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.