Archiv der Kategorie ‘Open Source‘

 
 

Java 4-Ever

Einfach genial, das bedarf keines weiteren Kommentars!

SimpleHTTPServer, bring mein Verzeichnis online!

Heute schreibe ich hier einen sehr nützlichen Shell-Einzeiler mit Python auf:

$ python -m SimpleHTTPServer

Dieser Befehl startet einen Webserver, der das aktuelle Verzeichnis ins Netz bringt. Standardmäßig ist der Server auf Port 8000 erreichbar (einen alternativen Port gibt man einfach hinten dran: python -m SimpleHTTPServer 8888). Hat man den obigen Befehl gestartet (die Shell gibt nun das Zugriffsprotokoll aus), so kann man im Browser mit Aufruf von

http://localhost:8000  (bzw. http://rechnername:8000)

das Ergebnis betrachten. Sollte das Verzeichnis eine index.html bzw. index.htm enthalten, so wird diese als Webseite angezeigt, sonst werden die Ordner und Dateien des Verzeichnisses aufgelistet. In die Ordner kann man reinwechseln, oberste Ebene bleibt aber das Verzeichnis aus dem gestartet wurde.

Die möglichen Anwendungsfälle, die sich einem da im Alltag auftun sind unaufzählbar und es bleibt dem Leser überlassen, seine kreativen Einsatzzwecke zu entdecken und gerne in den Kommentaren kund zu tun.

UMLGraph in Javadoc mit Maven

Mit UMLGraph steht ein wunderbares, einfaches Tool zur Verfügung, um UML Klassendiagramme in die Javadoc Dokumentation einzufügen. Diese sind klickbar, d.h. man kann durch die Diagramme navigieren. Wer seine Projekte mit Maven erzeugt, integriert gerne auch die Javadoc-Erstellung in den Maven-Build. Und UMLGraph lässt sich da gleich ganz einfach mitnehmen.

Hier ein Beispiel, wie eine entsprechende Reporting-Sektion im pom.xml aussehen könnte:

<reporting>
  <outputDirectory>/ein/sinnvoller/pfad</outputDirectory>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <configuration>
        <doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
        <docletArtifact>
          <groupId>gr.spinellis</groupId>
          <artifactId>UmlGraph</artifactId>
          <version>4.6</version>
        </docletArtifact>
        <additionalparam>
           -inferrel -inferdep -quiet -hide java.* -collpackages java.util.* -qualify
           -postfixpackage -nodefontsize 9
           -nodefontpackagesize 7
        </additionalparam>
      </configuration>
    </plugin>
  </plugins>
</reporting>

Und das Ergebnis kann sich sehen lassen:

Wer tiefer in die Materie, Parameter und Möglichkeiten von UMLGraph einsteigen möchte findet in der Onlinedokumentation ausführliche Hilfestellung.

Apache: Zugriffsbeschränkung via htaccess

Gerade eben musste ich es mal wieder einrichten: Zugriffskontrolle auf ein Verzeichnis im Apache. Dazu hatte ich vor Jahren auf einer meiner Uralt-Webseiten schon mal einen Artikel geschrieben. Den re-publiziere ich hier in (praktisch) unüberarbeiteter Form:

Der htaccess-Mechanismus erlaubt eine verzeichnisorientierte Zugriffsbeschränkung über eine Authentifizierung. htaccess verlangt normalerweise einen gütigen Benutzername und Passwort, um auf dieses Verzeichnis (und seine Unterverzeichnisse) zugreifen zu dürfen.
Folgende Dinge sind zu tun, um ein Verzeichnis zu schützen:

1. in der httpd.conf:
htaccess muss für das Verzeichnis erlaubt werden. Dazu ist die Direktive AllowOveride All zu setzen. Beispiel:

<Directory /pfad/apache/htdocs/diesesverzeichnis>
    AllowOveride All
</Directory>

2. Anlegen der Datei .htaccess:
Im zu schützenden Verzeichnis wird die Datei angelegt (führenden Punkt nicht vergessen, dies ist eine versteckte Datei!):

AuthName "Dies ist der Login-Bereich von Fritzchen"
AuthType Basic
AuthUserFile /pfad/public/htdocs/login/.htpasswd
require valid-user

3. Anlegen der Datei .htpasswd:
Das Anlegen dieser Datei geschieht mit dem htpasswd-Befehl [update]bei Apache2 mit dem korrelierenden Befehl htpasswd2[/update]. Da die Passwörter verschlüsselt gespeichert werden, kann die Datei nicht von Hand erstellt werden.

Wir erzeugen die Datei z.B. mit folgendem Befehl:

$ htpasswd -c .htpasswd ersterbenutzer

Für jeden weiteren Benutzer rufen wir den Befehl ohne “create” auf:

$ htpasswd .htpasswd weitererbenutzer

Mehr zum Blog