119 lines
3.2 KiB
JavaScript
119 lines
3.2 KiB
JavaScript
//
|
|
// Jala Project [http://opensvn.csie.org/traccgi/jala]
|
|
//
|
|
// Copyright 2004 ORF Online und Teletext GmbH
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the ``License'');
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an ``AS IS'' BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
// $Revision$
|
|
// $LastChangedBy$
|
|
// $LastChangedDate$
|
|
// $HeadURL$
|
|
//
|
|
|
|
|
|
/**
|
|
* @fileoverview Fields and methods of the jala.Captcha class.
|
|
*/
|
|
|
|
|
|
// Define the global namespace for Jala modules
|
|
if (!global.jala) {
|
|
global.jala = {};
|
|
}
|
|
|
|
/**
|
|
* Construct a new captcha.
|
|
* @returns A new captcha.
|
|
* @class Wrapper class for the
|
|
* {@link http://jcaptcha.sourceforge.net/ JCaptcha library}.
|
|
* A captcha (an acronym for "completely automated public
|
|
* Turing test to tell computers and humans apart") is a
|
|
* type of challenge-response test used in computing to
|
|
* determine whether or not the user is human.
|
|
* @constructor
|
|
*/
|
|
jala.Captcha = function() {
|
|
/**
|
|
* Jala dependencies
|
|
*/
|
|
app.addRepository(getProperty("jala.dir", "modules/jala") +
|
|
"/lib/jcaptcha-all-1.0-RC3.jar");
|
|
|
|
var gimpy;
|
|
|
|
try {
|
|
var ref = Packages.com.octo.captcha.engine.image.gimpy;
|
|
gimpy = ref.DefaultGimpyEngine();
|
|
} catch(e) {
|
|
throw("Cannot instantiate object due to missing java class: " +
|
|
arguments.callee.toString());
|
|
}
|
|
var captcha = gimpy.getNextCaptcha();
|
|
|
|
/**
|
|
* Get a new captcha object.
|
|
* @returns A new captcha object.
|
|
* @type com.octo.captcha.Captcha
|
|
*/
|
|
this.getCaptcha = function getCaptcha() {
|
|
return captcha;
|
|
};
|
|
|
|
/**
|
|
* Render a new captcha image.
|
|
*/
|
|
this.renderImage = function renderImage() {
|
|
var image = captcha.getImageChallenge();
|
|
var stream = new java.io.ByteArrayOutputStream();
|
|
var ref = Packages.com.sun.image.codec.jpeg.JPEGCodec;
|
|
var encoder = ref.createJPEGEncoder(stream);
|
|
encoder.encode(image);
|
|
res.contentType = "image/jpeg";
|
|
res.writeBinary(stream.toByteArray());
|
|
return;
|
|
};
|
|
|
|
/**
|
|
* Validate a user's input with the prompted captcha.
|
|
* @param {String} input The user's input.
|
|
* @returns True if the user's input matches the captcha.
|
|
* @type Boolean
|
|
*/
|
|
this.validate = function validate(input) {
|
|
return !input || captcha.validateResponse(input);
|
|
};
|
|
|
|
return this;
|
|
};
|
|
|
|
|
|
/**
|
|
* Get a string representation of the captcha class.
|
|
* @returns A string representation of the capthca class.
|
|
* @type String
|
|
* @ignore
|
|
*/
|
|
jala.Captcha.toString = function toString() {
|
|
return "[jala.Captcha http://jcaptcha.sourceforge.net]";
|
|
};
|
|
|
|
|
|
/**
|
|
* Get a string representation of the captcha object.
|
|
* @returns A string representation of the captcha object.
|
|
* @type String
|
|
*/
|
|
jala.Captcha.prototype.toString = function toString() {
|
|
return "[jala.Captcha Object]";
|
|
};
|