Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
[gelöst] jcaptcha in klassischer Domino- Web- Anwendung: Wie anfangen...
Tode:
Ich betreue den Domino- Part einer Website, die jetzt per Captchas geschützt werden soll. Dabei wird jcaptcha für den Rest der Website verwendet, und ich würde das gerne auch im "Domino"- Part einbinden.
Ich habe hier ein Beispiel gefunden, wie man das mit einem Servlet macht. Servlets sind ja grundsätzlich auch im Domino- Umfeld möglich, bedeuten aber einen erhöhten Aufwand bei der Entwicklung. Wie würdet Ihr so eine Anforderung umsetzen?
Erst mal würden mich grundsätzliche Möglichkeiten interessieren. Wenn ich mich dann für einen Weg entschieden habe, werde ich sicherlich nochmal mit konkreten Fragen zu konkreten Problemen zurückkommen...
Thanx
flaite:
Hmm
a) ist die Servlet Engine von Domino sehr, sehr alt, wobei dein verlinktes Beispiel vermutlich darauf laufen tät.
b) kennst Du dich mit der Servlet-Engine administrativ und coder-mässig nicht so aus.
So schwierig ist das aber auch nicht, dass ans Laufen zu bekommen. Du schaffst das bestimmt mit der entsprechenden Anleitung.
Warum geht das nicht mit Notes Agenten?
Auf Planetlotus gibts ein neues Projekt, das JCaptcha verwendet. Möglicherweise kannst Du da ein paar Inspirationen holen. Möglicherweise musst Du bei Agenten Apache-jakarta Http-Client verwenden, aber das is nicht so schwierig.
http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-8ZJC2F
Ich persönlich würd erstmal mit dem Beispielcode in Netbeans und da mitgelieferten Glassfish ausprobieren und das dann später in Domino reinarbeiten. Wär natürlich für dich auch wieder eine Lernkurve, wobei die aktuelle Netbeans/Glassfish Kombination in Sachen Einfachkeit und Gehirn-zu-laufender Anwendung Latenz (TM) in allem-JEE-Zeugs echt der Hammer ist.
Servlets sind im Prinzip sehr einfach. Erklär einfach alle beschreibbaren Variablen äh Properties lokal in der doGet-Methode, sonst ist es nicht Thread-Safe und Du weisst vielleicht nicht, was das heißt. Du weisst vermutlich auch nicht, wie Du das abwärtskompatibel zu der Domino-Servlet Version programmieren kannst.
Gruß Axel
Tode:
Ja, der Agent wäre auch mein Ansatz gewesen... Muss ich halt schauen, wie ich das zum Laufen kriege. Das openntf- Projekt hatte ich gefunden, das bezieht sich aber auf Googles ReCaptcha, was ein anderer Ansatz ist... Das ist zwar relativ einfach einzubauen (damit habe ich angefangen und bin schon recht weit, bis auf ein Paar Berechtigungsprobleme beim Abfragen der Google- Site im Backend läuft das), aber das Captcha sieht halt anders aus als das bei jCaptcha, weshalb ich gerne darauf gehen würde. Und Auf xPages kann ich leider auch nicht gehen, der Aufwand das alles umzuschreiben wäre zu gross...
Danke erstmal fürs Feedback... Dann schaue ich mal, was ich alles in nen Agent einbinden muss, damit ich da ne Antwort vom Agent kriege (erst mal ein Captcha- Bild, dann das Ergebnis.... wahrscheinlich brauche ich zwei Agents, oder muss das per Parameter steuern...)
flaite:
Hab das zwecks persönlicher Weiterbildung auf Tomcat ans Laufen bekommen.
Mit diesem nostalgischen Servlet/JSP Code.
https://www.owasp.org/index.php/JCaptcha_servlet_example
Wie man einen Domino Agent davon überzeugen kann das BufferedImage in die Webseite zu schreiben ist mir ein wenig schleierhaft. Der Servlet-Weg ist vielleicht einfacher. Aber dann musst Du die Authentifizierung evtl. über Servlet machen, weil das captcha muss ja vielleicht auf der login-Seite stehen?
Gibt noch eine 2 Serverlösung, d.h. Du kommunizierst per jakarta HttpClient mit einem externen Tomcat, auf dem der Captcha Teil als .war deployed ist. Diese verteilte Lösung macht das natürlich bestimmt nicht schneller, aber vermutlich auch nicht prohibitiv langsam. Ausserdem hast Du einen weiteren point of failure, sprich was machst Du wenn der Domino läuft aber der Tomcat die Grätsche gemacht hat? Aber wenn sowieso schon ein Teil der Anwendung auf Tomcat, JBoss, Websphere, etc. gehostet wird, sollte die auch relativ ausfallsicher sein.
Die JSPs liessen sich problemlos in Servlets umwandeln.
Das Beispiel ist so aufgebaut:
1. login.jsp für login Seite. Die bekommt das captcha vom GET des Servlets.
2. bei Submit auf login.jsp wird das an das POST von dem Servlet gesendet. Das überprüft dann, ob die Eingabe richtig war. Und leitet dann auf results.jsp weiter, die nur ansagt, ob man richtig oder falsch mit der Eingabe gelegen hat.
Wie gesagt:
login.jsp liesse sich problemlos als Servlet schreiben.
results.jsp kann man auch im doPost von dem Servlet abfrühstücken.
In jedem Fall bräuchtest Du 2 Servlets. Eins für login.jsp und das andere für das Servlet und results.jsp.
flaite:
Man kann das aber vermutlich leicht umbiegen.
Statement dazu spätestens Sonntag diese Woche.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln