<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>knallisworld &#187; Konfiguration</title> <atom:link href="http://www.knallisworld.de/blog/category/konfiguration/feed/" rel="self" type="application/rss+xml" /><link>http://www.knallisworld.de/blog</link> <description>Where is the beef?</description> <lastBuildDate>Thu, 02 Feb 2012 23:10:07 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Hudson-Konfiguration im SVN</title><link>http://www.knallisworld.de/blog/2010/07/28/hudson-konfiguration-im-svn/</link> <comments>http://www.knallisworld.de/blog/2010/07/28/hudson-konfiguration-im-svn/#comments</comments> <pubDate>Wed, 28 Jul 2010 11:41:20 +0000</pubDate> <dc:creator>knalli</dc:creator> <category><![CDATA[Empfehlungen]]></category> <category><![CDATA[Entwicklung]]></category> <category><![CDATA[Konfiguration]]></category> <category><![CDATA[Technik]]></category> <guid
isPermaLink="false">http://www.knallisworld.de/blog/?p=1150</guid> <description><![CDATA[Keeping your configuration and data in Subversion Auch die Konfiguration des Build-Servers selber sollte man sichern.]]></description> <content:encoded><![CDATA[<p><a
href="http://www.hudson-labs.org/content/keeping-your-configuration-and-data-subversion">Keeping your configuration and data in Subversion</a></p><p>Auch die Konfiguration des Build-Servers selber sollte man sichern.</p> ]]></content:encoded> <wfw:commentRss>http://www.knallisworld.de/blog/2010/07/28/hudson-konfiguration-im-svn/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Featurities meets Fallstrick: Die Spring Security 3.0 Konfigurationsodyssey</title><link>http://www.knallisworld.de/blog/2010/01/25/featurities-meets-fallstrick-die-spring-security-3-0-konfigurationsodyssey/</link> <comments>http://www.knallisworld.de/blog/2010/01/25/featurities-meets-fallstrick-die-spring-security-3-0-konfigurationsodyssey/#comments</comments> <pubDate>Mon, 25 Jan 2010 08:56:43 +0000</pubDate> <dc:creator>knalli</dc:creator> <category><![CDATA[Java]]></category> <category><![CDATA[Konfiguration]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Technik]]></category> <category><![CDATA[Technologie/IT]]></category> <category><![CDATA[Tipps]]></category> <category><![CDATA[security]]></category> <category><![CDATA[tomcat]]></category> <guid
isPermaLink="false">http://www.knallisworld.de/blog/?p=944</guid> <description><![CDATA[Mit dem Majorrelease 3.0 wurde dem Modul Spring Security eine Menge von neuen Features angeignet. Spring Security ist die Modulkomposition, welches fÃ¼r das Java Framework Spring quasi die gesamte Authentifizierung, Autorisierung, Legitimierung jedwegiger Art ermÃ¶glicht. Leider wurden mit dem Release 2.x auf 3.0 eine Reihe von API-Changes vollzogen. Zugegeben, die waren auch sicher alle sinnvoll, [...]]]></description> <content:encoded><![CDATA[<p>Mit dem Majorrelease 3.0 wurde dem Modul Spring Security eine Menge von neuen Features angeignet. Spring Security ist die Modulkomposition, welches fÃ¼r das Java Framework Spring quasi die gesamte Authentifizierung, Autorisierung, Legitimierung jedwegiger Art ermÃ¶glicht.<img
class="alignright" src="http://www.springsource.com/sites/all/themes/spring09/logo.png" alt="" width="264" height="46" /></p><p>Leider wurden mit dem Release 2.x auf 3.0 eine Reihe von API-Changes vollzogen. Zugegeben, die waren auch sicher alle sinnvoll, weil Komponenten wie die Authentifizierung weiterÂ geteilt wurden und man somit wesentlich flexibler ist, neue Anforderungen zu ermÃ¶glichen (Baukastenprinzip). Aber die Dokumentation ist &#8211; gesamtheitlich betrachtet &#8211; irgendwie immer noch mies und oft nicht aktualisiert. Oder man findet im Internet einfach nur (alte) Beispiele.</p><p><img
class="alignleft" src="http://www.smileygarden.de/smilie/Crazy/65.gif" alt="" width="95" height="50" /></p><h3>Die http-Direktive</h3><p>Im Namespace von Spring Security existiert das Tagelement http, mit welchem man kurze, knappe und verstÃ¤ndliche Konfigurationen anlegen kann. Der Vorteil liegt klar auf der Hand: Man muss nicht alle Beans, Listener und Provider anlegen, denn das geschieht automatisch. Tja, wÃ¤ren da nicht ein paar EinschrÃ¤nkungen in der Funktionsvielfalt.</p><h3>Konkretes Beispiel: Remember Me</h3><p>Just wurde das <a
href="http://www.springsource.org/node/2280">Minor-Release 3.0.1 verÃ¶ffentlicht</a>, und nur wenige Tage spÃ¤ter zu erfahren, dass <a
href="http://forum.springsource.org/showthread.php?p=278747#post278747">Remember Me kaputt sei</a>. Egal, fahren wir erstmal weiter mit 3.0.0.</p><p>Laut Dokumentation ist es am einfachsten, wenn man die Direktive remember-me (Security Namespace) innerhalb der http-Direktive (Security Namespace) verwendet. Ohne irgendeine Angabe wird ein stinknormales, Cookie basiertes Tokenverfahren ohne (echten) privaten SchlÃ¼ssel verwendet. Reicht fÃ¼r den ersten Einsatz erstmal auf, soll ja erstmal funktionieren.</p><p><strong>FehlermÃ¶glichkeit 1a: Man loggt sich ein, und es passiert nichts (kein &#8220;RememberMe&#8221;-Cookie).</strong><br
/> LÃ¶sung: Wenn man einen eigenen Auth-Filter einsetzt, muss man diesem auch den RememberMe-Service &#8220;setten&#8221;. AuÃŸerdem muss der SecurityChainFilter (web.xml!) auch auf die login-Seite verweisen. Es dÃ¼rfen auch keine Filter bei der Konfigurierung von intercepted Urls (speziell hier: login, logout) gemacht werden.</p><p><strong>FehlermÃ¶glichkeit 1b: Es passiert noch immer nichts?</strong><br
/> LÃ¶sung: Vielleicht wurde vergessen, einen Parameternamen fÃ¼r den Request zu setzen. Der Standardname ist ein typischer Springname, der natÃ¼rlich unschÃ¶n ist. Und den kann man nicht Ã¼ber die RememberMe-Direktive setzen, also muss man eh einen eigenen Service definieren. BÃ¤m. Referenzierung geht dann zwar noch, aber fÃ¼r mehr ist die RememberMe-Direktive dann nicht mehr zu gebrauchen.</p><p><strong>FehlermÃ¶glichkeit 2a: Man besucht die Seite ohne Login, aber mit Cookie &#8211; und die Loginseite kommt (Log sagt kein gÃ¼ltiger Auth).</strong><br
/> LÃ¶sung: Man kann der Log trauen, wenn sie zwar beim Einloggen nun einen Token ablegt (kann man zum Beispiel sehr einfach mit <a
href="https://addons.mozilla.org/de/firefox/addon/573">diesem Firefox-Addon</a> inkl. Editor(!) verifizieren), dieses aber beim erneuten Besuchen der Seite (bzw. ohne JSPSESSION-Cookie) nicht verwendet bzw. wird nicht erkannt. Schlussendlich half u.a. das Umbenennen der Userservices-Bean in &#8220;userService&#8221;. AuÃŸerdem sollte die Loginseite keinen Filter/Access haben (s.o.) Lieber 2x prÃ¼fen!</p><p><strong>FehlermÃ¶glichkeit 2b: Es erscheint eine Ausnahme, dass der Key falsch sei.</strong><br
/> LÃ¶sung: Dazu muss man wissen: Sobald Â man eine individualisierte RememberMe-Konfiguration nutzt, wird auch der Key nicht mehr vernÃ¼nftig auf alle Komponenten (Provider, Filter, Manager) gesetzt. Beim Anlegen wird also der eigene Key verwendet, beim Auslesen der Standardkey. Yes! (s.o.)</p><p><strong>FehlermÃ¶glichkeit 3: Man besucht die Seite ohne Login, aber mit Cookie &#8211; aber wie in 2 nur die Loginseite.</strong><br
/> LÃ¶sung: Im Logger/Debugger kann man nun feststellen, dass zwar das Cookie gefunden wurde, das Token gefunden und validiert wurde aber dann keine Rechte existieren &#8211; aha? Wahrscheinlich fehlt im Provider noch ein zusÃ¤tzliches Setting der Komponenten. Am besten von RememberMe Service/Filter/Provider jeweils alle mÃ¶glichen Properties durchgehen. Jaja, wie gesagt.. <img
src='http://www.knallisworld.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><strong>FehlermÃ¶glichkeit 4: Das Ausloggen (beispielsweise logout.html) hat nach Aktivierung von Rememberme plÃ¶tzlich keine Auswirkungen mehr.</strong><br
/> LÃ¶sung: Zwar wird die Seite gefunden, aber es wird kein &#8220;Logout&#8221; gemacht. Auch hier sollte man prÃ¼fen, ob ein SecurityChainFilter (web.xml) auch fÃ¼r die logout-Seite greift.</p><p><strong>FehlermÃ¶glichkeit 5: Das Besuchen der Seite wirft einen Fehler (ggf. &#8220;mit weiÃŸer Seite&#8221;), dass keine neue Session erstellt werden kann.</strong><br
/> LÃ¶sung: Richtig, nach einem Request ist ja dann auch zu spÃ¤t. Das Attribut create-session in der Direktive http sollte daher auf &#8220;ifRequeried&#8221; gestellt sein.</p><h3>Fazit:</h3><ul><li>SecurityChainFilter immer prÃ¼fen</li><li>Intercepted Urls prÃ¼fen</li><li>RememberMe-Direktive innerhalb der http-Direktive ist quasi abgesehen von der services-ref unbrauchbar.</li></ul><h3>Anmerkung:</h3><p>NatÃ¼rlich kann man sich das Problem mit den SecurityChains vom Hals schaffen, indem man stupide ein /* filtert. Das hat jedoch zur Auswirkung, das Spring Security auch jeden verdammten Request anguckt; bei zusÃ¤tzlichen (statischen) Inhalten wie Javascript, Stylesheets, Bildern, Flash u.Ã¤. ist das ein Overhead, der unnÃ¶tig ist.</p> ]]></content:encoded> <wfw:commentRss>http://www.knallisworld.de/blog/2010/01/25/featurities-meets-fallstrick-die-spring-security-3-0-konfigurationsodyssey/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Howto: trac auf Mac OS X 10.6</title><link>http://www.knallisworld.de/blog/2009/11/03/howto-trac-auf-mac-os-x-10-6/</link> <comments>http://www.knallisworld.de/blog/2009/11/03/howto-trac-auf-mac-os-x-10-6/#comments</comments> <pubDate>Mon, 02 Nov 2009 23:14:38 +0000</pubDate> <dc:creator>knalli</dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Allgemeines]]></category> <category><![CDATA[Konfiguration]]></category> <category><![CDATA[MacOS X]]></category> <category><![CDATA[Technik]]></category> <category><![CDATA[Tipps]]></category> <guid
isPermaLink="false">http://www.knallisworld.de/blog/?p=896</guid> <description><![CDATA[FÃ¼r den privaten Gebrauch &#8211; und fÃ¼r unterwegs, auf dem mobilen &#8211; kann sowohl ein Subversion als auch trac sicherlich eine Offline-Alternative sein. TatsÃ¤chlich suchte ich nun eine MÃ¶glichkeit, &#8220;mal eben&#8221; eine trac-Instanz aufzusetzen: Auf dem Webserver erschien mir zu komplex und kompliziert, eine neue VM auf dem Macbook etwas ineffizient, oder? Also warum nicht [...]]]></description> <content:encoded><![CDATA[<p>FÃ¼r den privaten Gebrauch &#8211; und fÃ¼r unterwegs, auf dem mobilen &#8211; kann sowohl ein Subversion als auch <a
href="http://trac.edgewall.org/">trac</a> sicherlich eine Offline-Alternative sein.</p><p>TatsÃ¤chlich suchte ich nun eine MÃ¶glichkeit, &#8220;mal eben&#8221; eine trac-Instanz aufzusetzen: Auf dem Webserver erschien mir zu komplex und kompliziert, eine neue VM auf dem Macbook etwas ineffizient, oder? <img
src='http://www.knallisworld.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Also warum nicht direkt unter OS X, bzw. technisch gesehen BSD?</p><p>Die <a
href="http://www.google.com/search?q=trac+mac+osx">initiale Suche nach der Thematik</a> bringt einen schnell zu einer <a
href="http://trac.edgewall.org/wiki/TracOnOsxNoFink">Fink-LÃ¶sung</a> &#8211; also mal ehrlich, schon etwas aufwendig?</p><p>TatsÃ¤chlich gibt es auch einfachere Varianten, etwa <a
href="http://macattack.speedesign.de/2008/02/23/subversion-und-trac-unter-mac-os-x-leopard/">hier</a>. Aber auch hier wird noch einiges runtergeladen, kompiliert.. ach, Informatiker sind von Grund her faul. Nein, das ist es auch nicht.</p><pre class="brush: bash; title: ; notranslate">
# python2.6 ist bereits installiert.
python -version
&gt; Python 2.6.1
</pre><p>Die abgespeckte, und funktionstÃ¼chtige Methode lautet daher &#8211; kurz und knapp:</p><pre class="brush: bash; title: ; notranslate">
sudo easy_install Pygments
sudo easy_install Genshi
sudo easy_install Trac
</pre><p>Das war es, trac ist installiert.</p><p>FÃ¼r diejenigen, die nun auch eine Schnelleinweisung in eine erste Konfiguration brauchen, ein Schnelldurchlauf. Bemerk: NatÃ¼rlich kÃ¶nnen auch andere Pfade fÃ¼r die Repositories verwendet werden, wichtig ist nur: Der eigene Benutzer muss spÃ¤ter Lese- und Schreibrechte besitzen. Das heiÃŸt im Klartext: Entweder nachher &#8220;umgranten&#8221; mit chown, oder woanders hinpacken. Auf /usr/local hat in der Regel nur der Superuser Zugriff, d.h. hier muss mit sudo gearbeitet werden.</p><pre class="brush: bash; title: ; notranslate">
# ein neues Subversion Repository anlegen
svnadmin create /usr/local/svn
# ein neues trac Repository anlegen - man kann alle Standardwerte nutzen, evtl. Pfad Ã¤ndern
trac-admin /usr/local/trac initenv
</pre><p>Trac liefert einen kleinen Miniserver mit, der fÃ¼r diesen Zweck erst einmal reicht.</p><pre class="brush: bash; title: ; notranslate">
tracd --port 8000 /usr/local/trac/
</pre><p>VoilÃ¡.</p><p>SelbstverstÃ¤ndlich brauchen wir noch einen User, zum Einloggen. Beispiel fÃ¼r den Benutzer <em>user</em>.</p><pre class="brush: bash; title: ; notranslate">
htpasswd -c /usr/local/trac/trac.htpasswd admin
&gt; New password:
&gt; New password:
&gt; Re-type new password:
&gt; Adding password for user admin
htpasswd /usr/local/trac/trac.htpasswd knalli
&gt; New password:
&gt; New password:
&gt; Re-type new password:
&gt; Adding password for user knalli
</pre><p>Jetzt den Server mit erweiterteten Parametern starten, also beispielsweise:</p><pre class="brush: bash; title: ; notranslate">
tracd --port 8000 --basic-auth=trac,/usr/local/trac/trac.htpasswd,trac /usr/local/trac
</pre><p>Eine Konfiguration Ã¼ber Apache2 ist dauerhaft eventuell zu empfehlen, aber fÃ¼r&#8217;s erste reicht es auch so. Ebenfalls empfiehlt die Dokumenation den Einsatz des Parameters &#8211;auth (Digest), dazu bitte jene <a
href="http://trac.edgewall.org/wiki/TracStandalone">konsultieren</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.knallisworld.de/blog/2009/11/03/howto-trac-auf-mac-os-x-10-6/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
