roller-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave <snoopd...@gmail.com>
Subject Re: Comment authentication problem
Date Wed, 22 Jun 2011 19:02:10 GMT
Looks like my original suggestion should work for you:
Add this to your imports:

    import org.apache.roller.weblogger.ui.rendering.plugins.comments.CommentAuthenticator

- Dave

On Tue, Jun 21, 2011 at 3:30 AM, Scappatura Rocco
<Rocco.Scappatura@infracom.it> wrote:
>> -----Original Message-----
>> From: Dave [mailto:snoopdave@gmail.com]
>> Sent: Monday, June 20, 2011 10:09 PM
>> To: user@roller.apache.org
>> Subject: Re: Comment authentication problem
>>
>> Unfortunately, we don't accept attachments.
>> Please paste into an email message.
>
> package org.rocsca.MathCommentAuthenticator;
>
> import java.util.ResourceBundle;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpSession;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
>
>
> /**
>  * Asks the commenter to answer a simple math question.
>  */
> public class MathCommentAuthenticator implements CommentAuthenticator {
>
>    private transient ResourceBundle bundle =
>            ResourceBundle.getBundle("ApplicationResources");
>
>    private static Log mLogger = LogFactory.getLog(MathCommentAuthenticator.class);
>
>
>    public String getHtml(HttpServletRequest request) {
>
>        String answer = "";
>
>        HttpSession session = request.getSession(true);
>        if (session.getAttribute("mathAnswer") == null) {
>            // starting a new test
>            int value1 = (int)(Math.random()*10.0);
>            int value2 = (int)(Math.random()*100.0);
>            int sum = value1 + value2;
>            session.setAttribute("mathValue1", new Integer(value1));
>            session.setAttribute("mathValue2", new Integer(value2));
>            session.setAttribute("mathAnswer", new Integer(sum));
>        } else {
>            // preserve user's answer
>            answer = request.getParameter("answer");
>            answer = (answer == null) ? "" : answer;
>        }
>
>        // pull existing values out of session
>        Integer value1o = (Integer)request.getSession().getAttribute("mathValue1");
>        Integer value2o = (Integer)request.getSession().getAttribute("mathValue2");
>
>        StringBuffer sb = new StringBuffer();
>
>        sb.append("<p>");
>        sb.append(bundle.getString("comments.mathAuthenticatorQuestion"));
>        sb.append("</p><p>");
>        sb.append(value1o);
>        sb.append(" + ");
>        sb.append(value2o);
>        sb.append(" = ");
>        sb.append("<input name=\"answer\" value=\"");
>        sb.append(answer);
>        sb.append("\" /></p>");
>        sb.append("<input type=hidden name=\"mathAnswer\" value=\"");
>        sb.append(mathAnswer);
>        sb.append("\" />");
>
>        return sb.toString();
>    }
>
>
>    public boolean authenticate(HttpServletRequest request) {
>
>        boolean authentic = false;
>
>        HttpSession session = request.getSession(false);
>        String answerString = request.getParameter("answer");
>
>        if (answerString != null && session != null) {
>            try {
>                int answer = Integer.parseInt(answerString);
>                Integer sum = (Integer) session.getAttribute("mathAnswer");
>
>                if (mathAnswerString != null && answer == Integer.parseInt(mathAnswerString))
{
>                    authentic = true;
>                    session.removeAttribute("mathAnswer");
>                    session.removeAttribute("mathValue1");
>                    session.removeAttribute("mathValue2");
>                }
>            } catch (NumberFormatException ignored) {
>                // ignored ... someone is just really bad at math
>            } catch (Exception e) {
>                // unexpected
>                mLogger.error(e);
>            }
>        }
>
>        return authentic;
>    }
>
> }
>
>> - Dave
>
> rocsca
>
>>
>>
>>
>> On Mon, Jun 20, 2011 at 3:57 PM, Scappatura Rocco
>> <Rocco.Scappatura@infracom.it> wrote:
>> >> -----Original Message-----
>> >> From: Dave [mailto:snoopdave@gmail.com]
>> >> Sent: Monday, June 20, 2011 5:20 PM
>> >> To: user@roller.apache.org
>> >> Subject: Re: Comment authentication problem
>> >>
>> >> On Mon, Jun 20, 2011 at 9:28 AM, Scappatura Rocco
>> >> <Rocco.Scappatura@infracom.it> wrote:
>> >> >> > import java.util.ResourceBundle;
>> >> >> > import javax.servlet.http.HttpServletRequest;
>> >> >> > import javax.servlet.http.HttpSession;
>> >> >> > import org.apache.commons.logging.Log;
>> >> >> > import org.apache.commons.logging.LogFactory;
>> >> >>
>> >> >> I don't see any org.apache.roller packages there.
>> >> >>
>> >> >> What is the package name of the class your are defining?
>> >> > package org.rocsca.MathCommentAuthenticator;
>> >>
>> >> The problem is that you code cannot find the "CommentAuthenticator"
>> >>
>> >> You might be able to fix this by adding this to your imports:
>> >>    import
>> >>
>> org.apache.roller.weblogger.ui.rendering.plugins.comments.CommentAuthenticator
>> >>
>> >> But it's hard to tell because I don't have your full source.
>> >
>> > Obviously my code is open source! :-P
>> >
>> > In attachment there is the java code.
>> >
>> >> Thanks,
>> >> Dave
>> >
>> > Thanks to you!
>> > rocsca
>> >
>

Mime
View raw message