So, es ist vollbracht... Das ganze läuft. Und weil es ja nicht mein alleiniger Verdienst war, lade ich hier mal ein ZIP mit der Lösung hoch, falls jemand mal ein einfaches Captcha für Lotus Notes auf Basis von jCaptcha braucht (ohne xPages)...
ACHTUNG: Dieses Beispiel erfordert, java- Berechtigungen auf dem Server ziemlich hoch zu setzen, also bitte nicht unbedingt auf Produktivservern einsetzen, obwohl mir jetzt nicht wirklich ein Sicherheitsloch einfällt, dass man damit aufreisst, denn wer unrestricted Agents auf dem Server laufen lassen kann, der kann sowieso schon alles...
Man kann es aber auch im Client per Browser- Vorschau laufen lassen, dann gilt die Anleitung für die entsprechenden Verzeichnisse im Client.
Install- Anleitung:
- Datenbank signieren und auf Server bringen
- die drei jars in Lotus\domino\jvm\lib\ext kopieren
- (Dieser Schritt nimmt das grosse Schlachtermesser, das geht sicher auch mit Skalpell, habs aber noch nicht rausgefunden wie und auch noch nicht, warum das überhaupt nötig ist) Unter Lotus\Domino\jvm\lib\security\java.policy die folgenden Zeilen oben ergänzen:
grant {
permission java.security.AllPermission;
};
- Amgr und http durchstarten
- url aufrufen:
http://servername/jCaptcha.nsf/CaptchaTest?OpenFormAnmerkung: Dieses Beispiel macht keine Prüfung auf die Response auf dem Server (wie es eigentlich nötig wäre für echte Sicherheit), sondern direkt im Browser. Das heisst: Mit entsprechendem Know-How ist es recht einfach, die richtige Antwort herauszufinden, ohne sich das Bild auch nur anzuschauen.
Da es hier aber nicht um Security an sich geht sondern nur darum Bots abzuhalten, halte ich das Verfahren für ausreichend sicher.
Wer mir hier zuerst posted, wie man (ohne irgendwelche Libraries zu verwenden) an die richtige Response drankommt, dem zahle ich auf dem nächsten EntwicklerCamp ein Bier. Aber nicht schummeln: nicht den Java Quellcode benutzen, sondern nur das, was auch ein "Hacker" von der Seite zu sehen bekommt...
Man hätte im übrigen die jars auch in den Agenten einlagern können, aber wegen eines bösen Memleaks, der hier auch schon diskutiert wurde, ist das nicht empfehlenswert...
Ach ja: Ich bin absolut kein Java- Spezialist, aber in meiner endgültigen Version habe ich natürlich auch ein anständigeres ErrorHandling drin.
Sicherlich gibt es vieles, was man hätte besser machen können, aber ich brauchte halt ne schnelle Lösung zu gegebenen Rahmenparametern, und die habe ich jetzt...