Example usage for org.apache.wicket.extensions.markup.html.captcha CaptchaImageResource CaptchaImageResource

List of usage examples for org.apache.wicket.extensions.markup.html.captcha CaptchaImageResource CaptchaImageResource

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.captcha CaptchaImageResource CaptchaImageResource.

Prototype

public CaptchaImageResource(final IModel<String> challengeId) 

Source Link

Document

Construct.

Usage

From source file:com.tysanclan.site.projectewok.pages.RegisterAndApplyPage.java

License:Open Source License

public RegisterAndApplyPage() {
    super("Join Tysan");

    List<Game> games = gameService.getActiveGames();

    List<GameRealmCartesian> grlms = new LinkedList<GameRealmCartesian>();

    for (Game game : games) {
        for (Realm realm : game.getRealms()) {
            grlms.add(new GameRealmCartesian(game, realm));
        }//from  w  w w.jav  a  2s.  c  om
    }

    final DropDownChoice<GameRealmCartesian> realmChoice = new DropDownChoice<GameRealmCartesian>("gamerealm",
            new Model<GameRealmCartesian>(null), grlms, new GameRealmCartesianRenderer());
    realmChoice.setRequired(true);
    realmChoice.setNullValid(false);

    final TextArea<String> otherGamesDescription = new TextArea<String>("othergames", new Model<String>(""));
    otherGamesDescription.setRequired(true);

    final TextArea<String> sortOfPersonArea = new TextArea<String>("sortofperson", new Model<String>(""));
    sortOfPersonArea.setRequired(true);

    final TextArea<String> lookingForArea = new TextArea<String>("lookingfor", new Model<String>(""));
    lookingForArea.setRequired(true);

    passId = randomString(6, 8);
    resource = new CaptchaImageResource(passId);

    final TextField<String> tfUsername = new TextField<String>("username", new Model<String>(""));
    tfUsername.setRequired(true);
    final TextField<String> tfMail = new TextField<String>("mail", new Model<String>(""));
    tfMail.setRequired(true);
    final PasswordTextField tfPassword = new PasswordTextField("password", new Model<String>(""));
    tfPassword.setRequired(true);
    final PasswordTextField tfPassword2 = new PasswordTextField("password2", new Model<String>(""));
    tfPassword2.setRequired(true);

    final TextField<String> tfCaptcha = new TextField<String>("captchaResponse", new Model<String>(""));
    tfCaptcha.setRequired(true);

    Form<User> registrationForm = new Form<User>("registerform") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private UserService userService;

        @SpringBean
        private MailService mailService;

        @SpringBean
        private UserDAO userDAO;

        @SpringBean
        private MembershipService membershipService;

        @Override
        protected void onSubmit() {
            boolean valid = true;

            if (userService.hasUser(tfUsername.getModelObject())) {
                valid = false;
                RegisterAndApplyPage.this.error("Username already taken");
            }
            if (valid) {
                String username = tfUsername.getModelObject();
                for (int i = 0; i < username.length(); i++) {
                    if (!Character.isLetterOrDigit(username.charAt(i))) {
                        valid = false;
                        RegisterAndApplyPage.this.error("Username may only contain letters and digits");
                        break;
                    }
                }
                if (valid) {
                    if (username.length() < 2) {
                        valid = false;
                        RegisterAndApplyPage.this.error("Username too short");
                    }
                    if (valid) {
                        if (!Character.isLetter(username.charAt(0))) {
                            valid = false;
                            RegisterAndApplyPage.this.error("Username must start with a letter");
                        }
                    }
                }
            }
            if (valid && tfPassword.getModelObject().length() < 8) {
                valid = false;
                RegisterAndApplyPage.this.error("Password must be at least 8 characters");
            }
            if (valid && !tfPassword.getModelObject().equals(tfPassword2.getModelObject())) {
                valid = false;
                RegisterAndApplyPage.this.error("Passwords do not match");
            }
            if (valid && !StringUtil.isValidEMail(tfMail.getModelObject())) {
                valid = false;
                RegisterAndApplyPage.this.error("Please provide a valid e-mail address");
            }
            if (valid) {
                UserFilter filter = new UserFilter();
                filter.setEmail(tfMail.getModelObject());
                long users = userDAO.countByFilter(filter);
                if (users != 0) {
                    valid = false;
                    RegisterAndApplyPage.this.error("That e-mail address is already in use");
                }

            }

            if (!passId.equals(tfCaptcha.getModelObject())) {
                resource.invalidate();
                valid = false;
                RegisterAndApplyPage.this.error("Challenge response invalid");
            }

            Game game = null;
            Realm realm = null;

            String otherGames = BBCodeUtil.stripTags(otherGamesDescription.getModelObject());
            String sortOfPerson = BBCodeUtil.stripTags(sortOfPersonArea.getModelObject());
            String lookingFor = BBCodeUtil.stripTags(lookingForArea.getModelObject());

            if (StringUtil.countWords(sortOfPerson) < 30) {
                RegisterAndApplyPage.this
                        .error("Please describe the sort of person you are in at least 30 words");
                valid = false;
            }

            if (StringUtil.countWords(lookingFor) < 30) {
                RegisterAndApplyPage.this.error(
                        "Please describe the sort of clan you are looking for you are in at least 30 words");
                valid = false;
            }

            if (valid) {

                GameRealmCartesian cart = realmChoice.getModelObject();

                if (cart != null) {
                    game = cart.getGame();
                    realm = cart.getRealm();
                } else {
                    valid = false;
                }

            }

            if (valid) {
                User user = userService.createUser(tfUsername.getModelObject(), tfPassword.getModelObject(),
                        tfMail.getModelObject());
                if (user != null) {
                    Activation activation = userService.getActivationByUser(user);

                    mailService.sendHTMLMail(tfMail.getModelObject(), "Tysan Clan Forums", mailService
                            .getActivationMailBody(user.getUsername(), activation.getActivationKey()));

                    StringBuilder motivation = new StringBuilder();
                    motivation.append("[b]What sort of person are you?[/b]\n");
                    motivation.append(sortOfPerson);
                    motivation.append("\n\n");

                    motivation.append("[b]What are you looking for in a clan?[/b]\n");
                    motivation.append(lookingFor);
                    motivation.append("\n\n");

                    motivation.append("[b]What other games do you play?[/b]\n");
                    motivation.append(otherGames);
                    motivation.append("\n\n");

                    ForumThread thread = membershipService.applyForMembership(user, motivation.toString(), game,
                            realm);

                    membershipService.registerAction(user);

                    setResponsePage(new ForumThreadPage(thread.getId(), 1, false));

                }
            }
        }
    };

    registrationForm.add(realmChoice);
    registrationForm.add(otherGamesDescription);
    registrationForm.add(sortOfPersonArea);
    registrationForm.add(lookingForArea);
    registrationForm.add(tfUsername);
    registrationForm.add(tfPassword);
    registrationForm.add(tfPassword2);
    registrationForm.add(tfMail);
    registrationForm.add(tfCaptcha);
    registrationForm.add(new Image("captcha", resource));

    add(registrationForm);
}

From source file:com.tysanclan.site.projectewok.pages.RegistrationPage.java

License:Open Source License

public RegistrationPage() {
    super("Forum Registration");

    passId = randomString(6, 8);//  ww  w .  jav  a2s .  c  om

    resource = new CaptchaImageResource(passId);

    final TextField<String> tfUsername = new TextField<String>("username", new Model<String>(""));
    tfUsername.setRequired(true);
    final TextField<String> tfMail = new TextField<String>("mail", new Model<String>(""));
    tfMail.setRequired(true);
    final PasswordTextField tfPassword = new PasswordTextField("password", new Model<String>(""));
    tfPassword.setRequired(true);
    final PasswordTextField tfPassword2 = new PasswordTextField("password2", new Model<String>(""));
    tfPassword2.setRequired(true);

    final TextField<String> tfCaptcha = new TextField<String>("captchaResponse", new Model<String>(""));
    tfCaptcha.setRequired(true);

    Form<?> registrationForm = new Form<Void>("registerform") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private MailService mailService;

        @SpringBean
        private UserDAO userDAO;

        @Override
        protected void onSubmit() {
            UserService ub = getUserBean();
            boolean valid = true;

            if (ub.hasUser(tfUsername.getModelObject())) {
                valid = false;
                RegistrationPage.this.error("Username already taken");
            }
            if (valid) {
                String username = tfUsername.getModelObject();
                for (int i = 0; i < username.length(); i++) {
                    if (!Character.isLetterOrDigit(username.charAt(i))) {
                        valid = false;
                        RegistrationPage.this.error("Username may only contain letters and digits");
                        break;
                    }
                }
                if (valid) {
                    if (username.length() < 2) {
                        valid = false;
                        RegistrationPage.this.error("Username too short");
                    }
                    if (valid) {
                        if (!Character.isLetter(username.charAt(0))) {
                            valid = false;
                            RegistrationPage.this.error("Username must start with a letter");
                        }
                    }
                }
            }
            if (valid && tfPassword.getModelObject().length() < 8) {
                valid = false;
                RegistrationPage.this.error("Password must be at least 8 characters");
            }
            if (valid && !tfPassword.getModelObject().equals(tfPassword2.getModelObject())) {
                valid = false;
                RegistrationPage.this.error("Passwords do not match");
            }
            if (valid && !StringUtil.isValidEMail(tfMail.getModelObject())) {
                valid = false;
                RegistrationPage.this.error("Please provide a valid e-mail address");
            }
            if (valid) {
                UserFilter filter = new UserFilter();
                filter.setEmail(tfMail.getModelObject());
                long users = userDAO.countByFilter(filter);
                if (users != 0) {
                    valid = false;
                    RegistrationPage.this.error("That e-mail address is already in use");
                }

            }

            if (!passId.equals(tfCaptcha.getModelObject())) {
                resource.invalidate();
                valid = false;
                RegistrationPage.this.error("Challenge response invalid");
            }

            if (valid) {
                User user = ub.createUser(tfUsername.getModelObject(), tfPassword.getModelObject(),
                        tfMail.getModelObject());
                if (user != null) {
                    Activation activation = ub.getActivationByUser(user);

                    mailService.sendHTMLMail(tfMail.getModelObject(), "Tysan Clan Forums", mailService
                            .getActivationMailBody(user.getUsername(), activation.getActivationKey()));

                    info("You have succesfully registered as " + tfUsername.getModelObject());
                    tfUsername.clearInput();
                    tfMail.clearInput();

                    setResponsePage(new ForumOverviewPage());

                }
            }
        }
    };

    registrationForm.add(tfUsername);
    registrationForm.add(tfPassword);
    registrationForm.add(tfPassword2);
    registrationForm.add(tfMail);
    registrationForm.add(tfCaptcha);
    registrationForm.add(new Image("captcha", resource));

    add(registrationForm);
}

From source file:de.alpharogroup.wicket.components.captcha.draw.CaptchaModel.java

License:Apache License

public CaptchaModel() {
    captchaImageResource = new CaptchaImageResource(randomCaptchaString);
}

From source file:de.alpharogroup.wicket.components.captcha.draw.CaptchaModelBean.java

License:Apache License

/**
 * Instantiates a new {@link CaptchaModelBean}.
 *///from w w w  .  ja v a  2 s.co m
public CaptchaModelBean() {
    captchaImageResource = new CaptchaImageResource(
            randomCaptchaString = RandomExtensions.getRandomString(Constants.UCCHARSWN, 7));
}

From source file:org.xaloon.wicket.component.captcha.CaptchaPanel.java

License:Apache License

public void setupCaptcha(AjaxRequestTarget target, IModel<String> model) {
    model.setObject(randomString(DEFAULT_MIN, DEFAULT_MAX));
    CaptchaImageResource captchaImageResource = new CaptchaImageResource(model.getObject());
    NonCachingImage imgCaptcha = new NonCachingImage("captchaImage", captchaImageResource) {
        /**/*from  w w  w .  j  a  v a2s  .  c  om*/
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);

            String url = tag.getAttributes().getString("src");
            url = url.replaceAll("&", "&amp;");
            tag.put("src", url);
            tag.put("alt", "captcha");
        }
    };
    imgCaptcha.setOutputMarkupId(true); // required for AjaxFallbackLink
    addOrReplace(imgCaptcha);
    if (target != null) {
        target.addComponent(imgCaptcha);
    }
}