JEE

CoreMedia und Spring Security ver­hei­ra­tet - Teil 1: Authentifizierung

Erstellung eines CoreMedia-AuthenticationProviders für das Spring Security Framework Einleitung und Funktionsweise Neben dem Aufbau von geschlos­se­nen Benutzergruppen (GBGs) im CMS kann es auch andere Gründe geben, das CoreMedia UserRepository für die Authentifizierung von Nutzern zu ver­wen­den. Das Spring Security Framework (ehe­mals ACEGI Security) bie­tet Funktionalitäten für die Authentifizierung und Autorisierung von Nutzern. Im Folgenden Klassendiagramm sind die Interfaces und Klassen…

Berlin.jar – Rückblick

Am 13./14.9.2008 fand erst­mals die Berlin.jar an der FHTW Berlin statt. Die Java Konferenz wurde durch die Java User Group Berlin Brandenburg sehr gut orga­ni­siert. Verteilt über beide Konferenztage gab es in fünf par­al­le­len Tracks zahl­rei­che inter­es­sante Vorträge, sowie HandsOn Sessions und Workshops für die mehr als 250 Besucher. Einige Redner sind bereits von ande­ren Konferenzen bekannt. So gab Eberhard…

Hibernate: Sprünge beim Autoincrement

So ein SequenceGenerator ist schon eine feine Sache, vor­al­lem bei der Verwendung von Relationalen Datenbanksystemen á la Oracle. Musste man sich ohne die Vorzüge des ORM (Object-Relational-Mapping) noch mit der hän­di­schen Erstellung von Sequenzen zur Incrementierung von Werten her­um­schla­gen, erle­digt Hibernate das Ganze voll auto­ma­tisch mit zwei Zeilen Code. Die Tücken der Technik In mei­nem letz­ten Projekt zeigte sich jedoch ein…

Logging per Interceptor mit Spring

Wenn man in Spring-Anwendungen zum Beispiel den Aufruf von Methoden log­gen will, aber nicht in jeder gewünsch­ten Methode eine Log-Anweisung ein­fü­gen möchte, kann man das Logging zen­tral als Aspekt defi­nie­ren. Es kön­nen damit die Methodenaufrufe aller Klassen geloggt wer­den, die als Bean durch Spring ver­wal­tet wer­den. Zu Beginn sollte die Bean für den Interceptor (advice) defi­niert wer­den. <bean id="methodLoggingInterceptor" class="MethodLoggingInterceptor"/> Danach…

JUG Saxony - EclipseLink

Auch die zweite Veranstaltung der Java User Group Saxony kann als vol­ler Erfolg bezeich­net wer­den. Shaun Smith, Project Lead des EclipseLink Projektes und Produktmanager für Oracle TopLink, gab am 09.07.2008 einen Überblick über die Features und die Funktionsweise von EclipseLink. Die Firma ubi­grate hat diese Veranstaltung an der Informatik Fakultät der TU-Dresden in Zusammenarbeit mit dem JUG Saxony Team für…

Java Projekte mit Groovy - Der erste Kontakt…

Wer sich als Java-Entwickler bereits ein wenig mit der Sprache Groovy beschäf­tigt hat, wird wäh­rend der Projektarbeit sicher schon einige Verwendungsmöglichkeiten für Groovy-Sprachkonstrukte gefun­den haben. In den meis­ten Fällen betrifft dies eher rela­tiv tri­viale Funktionen, wie Operationen im Dateisystem oder das Auswerten von Variablen eines Typs. Da aber gerade in der Erstellung von Prototypen die Evaluierung von Kernprozessen im Vordergrund…

PSQLException: ope­ra­tor does not exist

 Nach dem Neuaufsetzen einer bestehen­den Grails-Anwendung, tauchte nach­fol­gen­der Fehler wäh­rend der Ansprache der Datenbank durch die Applikation auf: Caused by: org.postgresql.util.PSQLException: ERROR: ope­ra­tor does not exist: big­int ~~ big­int at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92) … 2 more Zunächst ver­mu­tete ich ein JDBC Treiber-Problem, jedoch konnte der Fehler nach etwas Recherche und Debugging…

Gründung der Java User Group Saxony

Am 03. April 2008 fand das erste Treffen und damit die Gründungsveranstaltung der Java User Group Saxony in den Räumen der Communardo Software GmbH statt. Diese Gruppe wurde auf Initiative von Torsten Rentsch (Communardo Software GmbH) und Falk Hartmann (ubi­grate) Anfang 2008 ins Leben geru­fen. Ziel ist es den Wissensaustausch im Java Umfeld zu för­dern sowie Kontakte zwi­schen Firmen und…

XMLBeans in Axis2

Da es sich bei Axis2 um eine Neuentwicklung gegen­über der Vorgängerversion han­delt, wurde ein kom­plett ande­res Data Binding Konzept umge­setzt. Zum Einsatz kom­men bestehende Lösungen wie: ADB, (http://ws.apache.org/axis2/1_0/adb/adb-howto.html) XMLBean, (http://xmlbeans.apache.org ) JiBX, (http://jibx.sourceforge.net/ ) JAXB-RI, (https://jaxb.dev.java.net/nonav/2.1.6/docs/vendorCustomizations.html ) oder JaxME, (http://ws.apache.org/jaxme/ ) die in Axis2 inte­griert wer­den. XMLBeans stam­men ursprüng­lich von BEA Systems und wird von Apache wei­ter­ent­wi­ckelt. XMLBeans heben den…

jCaptcha

Um Webdienste vor Missbrauch durch Webbots zu schutz wer­den CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) ein­ge­setzt. Eine java­ba­sierte Lösung, die ein­fach zu inte­grie­ren und imple­men­tie­ren ist, bie­tet das Framework jCaptcha an (http://jcaptcha.sourceforge.net). Es steht unter LGPL und bie­tet eine Reihe vor­de­fi­nier­ter Captchaimages an. Im fol­gen­den möchte ich bei­spiel­haft erläu­tern, wel­che Schritte nötig sind, um eine Captchalösung mit­hilfe des jCapchta-Frameworks in eine bestehende J2EE Anwendung einzubinden.

Webservice mit Apache Axis2

Das Webservice Framework Axis2 von Apache steht seit 2005 in der Version 2 zur Verfügung und bie­tet einige Vorteile gegen­über der Vorgängerversion. Aus mei­ner Sicht sind es vor allem Performance Steigerung, höhere Flexibilität beim Deployment von Services und eine ver­bes­serte Unterstützung von aktu­el­len Standards, die einen Einsatz von Axis2 sinn­voll macht. Anhand eines Beispieles soll im Folgenden schritt­weise gezeigt wer­den, wie…

Was tun bei OutOfMemory - Teil 1: Grundlagen

OutOfMemory ist eines der am häu­figs­ten auf­tre­ten­den Probleme bei Java-basierten Webapplikationen. Die Ursachen dafür sind genau so viel­schich­tig wie die Möglichkeiten der Analyse. Ziel die­ses Artikels ist es, sowohl die Grundlagen wie auch mög­li­che Lösungswege zu zei­gen. Bevor man jetzt leicht­fer­tig die Software umpro­gram­miert (da man ja genau weiß, wo das Problem liegt), sollte man mit einer aus­führ­li­chen Analyse beginnen.…

JAXB2-Bindings aus einer DTD mit Typmapping mit Maven2 generieren

Nach dem gest­ri­gen Erfolg folgte heute eine Anforderung, die den Wechsel zu einem ande­ren Maven2-Plugin und einer neuen Mapping-Datei führte. Die neue Anforderung war, dass Attribute aus der DTD auf andere Typen als String gemappt wer­den sol­len. Da DTDs keine Typisierung wie XML-Schema ken­nen, muss dies mit einem Mapping-File gesche­hen. Das Maven2-Plugin aus dem gest­ri­gen Artikel war lei­der mit dem…

Generierung von JAXB2-Bindings aus einer DTD mit Maven2

Heute muss­ten aus einer exis­tie­ren­den DTD ein paar JAXB2-Binding-Klassen gene­riert wer­den. Nach eini­gem pro­bie­ren ist dies mit fol­gen­der pom.xml und einem pas­sen­den Binding-File gelun­gen. Hier die pom.xml: <?xml version="1.0" encoding="UTF-8"?> <pro­ject xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > <modelVersion>4.0.0</modelVersion> <groupId>de.mms-dresden</groupId> <artifactId>hsp-search-gen</artifactId> <version>0.0.1-SNAPSHOT</version> <description>Generierter Code fuer die Suche im Hilfeportal</description> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <exe­cu­ti­ons> <exe­cu­tion> <goals> <goal>xjc</goal> </goals> </execution> </executions> <con­fi­gu­ra­tion>…

Virenüberprüfung beim Upload von Dateien mit ModSecurity und Apache

Um in einer Webanwendung sicher­zu­stel­len, dass die Nutzer kei­nen Viren oder andere Schädlinge durch Uploads ein­schleu­sen, gibt es ver­schie­den Möglichkeiten. Eine Möglichkeit ist es, in der Webanwendung selbst eine Virenüberprüfung anzu­stos­sen. Eine Alternative ist es, die Virenprüfung in einem vor­ge­schal­te­nem Apache vor­zu­neh­men. Diese Funktionalität kann mit dem Modul ModSecurity für den Apache erreicht wer­den. Dieses erkennt bei einem Request des…

1 2