I do not think your theme modifications could interfere with the
comment authenticator.

The problem seems to be that mathAnswer is not being store in the
session or is somehow being erased. I don't have any idea why this
would be happening.

 - Dave


On Wed, Jan 6, 2010 at 5:27 PM, Rocco Scappatura
<rocco.scappat...@infracom.it> wrote:
> Hello Dave,
>
> First of all, sorry for the delay.
>
> On Gio, 24 Dicembre 2009 16:30, Dave wrote:
>> The problem is that the request parameter 'answer' is coming back
>> null. I'm not sure why this would happen. When the comment page is
>> created, the authenticator should be called to provide the
>> authentication portion of the comment form. It will add an input field
>> like this:
>>
>>    <input name='answer' value=''></input>
>>
>> The user enters the math answer into that field and the form POST
>> operation sends the field to the server. Something must be interfering
>> with that in your Roller install.
>
> I have refined the verbosity of 'patched' version of the authenticator.
>
> I saw that indeed is the HTML parameter that comes 'null' during the
> 'authenticate' stage:
>
> 1) The method 'getHtml' is invoked when the comment page is loaded:
>
> DEBUG 2010-01-06 22:58:25,150 MathCommentAuthenticator:getHtml - The HTML
> attribute 'mathAnswer' is null
> DEBUG 2010-01-06 22:58:25,150 MathCommentAuthenticator:getHtml - The HTML
> attribute 'mathAnswer' is set to:2+42
> DEBUG 2010-01-06 22:58:25,150 MathCommentAuthenticator:getHtml - That is
> to:44
>
> 2) The 'Post' button is clicked, after inserting the valule '44' in the
> text box answer:
> DEBUG 2010-01-06 23:00:07,947 CommentServlet:doPost - Doing comment
> posting for entry = /blog/entry/preambolo_a_questa_categoria
>
> 3) the 'authenticate' method is invoked and the value of 'answer' HTML
> attribute is correctly reported, while the 'mathAnswer' HTML attribute not
> (it is null because, it is not posted after sumission othe filled form):
> DEBUG 2010-01-06 23:00:07,947 MathCommentAuthenticator:authenticate - The
> value of HTML attribute 'answer' is :44
> DEBUG 2010-01-06 23:00:07,947 MathCommentAuthenticator:authenticate - The
> value of HTML attribute 'mathAnswer' is null
> DEBUG 2010-01-06 23:00:07,947 CommentServlet:doPost - Comment failed
> authentication
>
> 4) The method 'getHtml' is invoked again to generate nue random values:
> DEBUG 2010-01-06 23:00:09,369 MathCommentAuthenticator:getHtml - The HTML
> attribute 'mathAnswer' is null
> DEBUG 2010-01-06 23:00:09,369 MathCommentAuthenticator:getHtml - The HTML
> attribute 'mathAnswer' is set to:5+27
> DEBUG 2010-01-06 23:00:09,369 MathCommentAuthenticator:getHtml - That is
> to:32
>
> If my analys is correct, why 'mathAnswer' is not forwarded? HAve you any
> idea? The only think that I have do is customizing the theme. How could I
> investigate to find if I stripped something of worth from the originale
> theme? Where is the the corrupted files located (I mothified the theme
> from web UI)?
>
> Thanks,
>
> rocsca
>>
>> - Dave
>>
>>
>> On Sun, Dec 20, 2009 at 4:59 PM, Rocco Scappatura
>> <rocco.scappat...@infracom.it> wrote:
>>> Hello,
>>>
>>> On Gio, 17 Dicembre 2009 16:30, Rocco Scappatura wrote:
>>>> On Gio, 17 Dicembre 2009 4:44, Dave wrote:
>>>>> On Tue, Dec 15, 2009 at 5:04 AM, Rocco Scappatura
>>>>> <rocco.scappat...@infracom.it> wrote:
>>>>>> On Sab, 12 Dicembre 2009 4:27, Dave wrote:
>>>>>>> Part of the problem is that the math authenticator does not include
>>>>>>> debug statements:
>>>>>>>
>>>>>>>    http://bit.ly/5x31Qv
>>>>>>>
>>>>>>> One option would be for you to create your own new math
>>>>>>> authenticator
>>>>>>> based on that code, but with a different name/package. You could add
>>>>>>> debug code into your authenticator, compile it (against the Roller
>>>>>>> jars), plug it into Roller via roller-custom.properties and then get
>>>>>>> some useful output.
>>>>>>
>>>>>> I'm not expert java programmer.. :-( Neverthless I never downloaded
>>>>>> source
>>>>>> version of roller 3.1 before today.. So I ask you to please address
>>>>>> me..
>>>>>>
>>>>>> What I have to put into de code to enable debug for the class
>>>>>> MathCommentAuthenticator?
>>>>>
>>>>> I would recommend copying that MathCommentAuthenticator code that I
>>>>> referenced into a new Java class in a different package, for example
>>>>> "org.rocco"
>>>>>
>>>>> There is a logger in the MathCommentAuthenticator now, so to add debug
>>>>> logging you'll need this:
>>>>>
>>>>>    mLogger.debug("I just did thing A");
>>>>>    // ...
>>>>>    mLogger.debug("I just did thing B " + x + "times, how about
>>>>> that!?!");
>>>>>
>>>>>
>>>>>> How I have to compile the java package? I suppose then I have to put
>>>>>> some
>>>>>> resulting .jar and to copy it in <roller>\WEB-INF\lib dir and restart
>>>>>> the
>>>>>> application.. Right?
>>>>>
>>>>> Since the MathCommentAuthenticator uses Commons Logging, Servlet API
>>>>> and Roller web stuff you will need to compile with these jars on your
>>>>> classpath:
>>>>>
>>>>>    commons-logging.jar
>>>>>    servlet.jar (from your app server perhaps?)
>>>>>    roller-web.jar
>>>>>
>>>>> Then put the resulting classes in a jar file, put that jar file in
>>>>> WEB-INF/lib and add the following to your roller-custom.properties
>>>>> file so that Roller will use your new authenticator:
>>>>>
>>>>>    authenticator.classname=org.rocco.MathCommentAuthenticator
>>>>>
>>>>> Hope that helps...
>>>>
>>>> Yes it is! I put some debug calls in authenticate method of class
>>>> 'org.rocsca.MathCommentAuthenticator' (jarred into rocsca.jar and put
>>>> into
>>>> lib dir of roller webapp).
>>>>
>>>> More specifically:
>>>>
>>>>     public boolean authenticate(HttpServletRequest request) {
>>>>
>>>>         boolean authentic = false;
>>>>
>>>>         HttpSession session = request.getSession(false);
>>>>         String answerString = request.getParameter("answer");
>>>>
>>>>    mLogger.debug("La risposta data e':" + answerString);
>>>>
>>>>         if (answerString != null && session != null) {
>>>>             try {
>>>>                 int answer = Integer.parseInt(answerString);
>>>>
>>>>                 Integer sum = (Integer)
>>>> session.getAttribute("mathAnswer");
>>>>    mLogger.debug("La risposta e':" + sum);
>>>>
>>>>                 if (sum != null && answer == sum.intValue()) {
>>>>                     authentic = true;
>>>>
>>>> After this, answering to a math question on my blog I get the log
>>>> entry:
>>>>
>>>> DEBUG 2009-12-17 16:19:21,322 CommentServlet:doPost - Doing comment
>>>> posting for entry = /blog/entry/preambolo_a_questa_categoria
>>>> DEBUG 2009-12-17 16:19:21,322 MathCommentAuthenticator:authenticate -
>>>> La
>>>> risposta data e':24
>>>> DEBUG 2009-12-17 16:19:21,322 MathCommentAuthenticator:authenticate -
>>>> La
>>>> risposta e':null
>>>>
>>>> so the problem is that 'mathAnswer' is null. While it have to be the
>>>> sum
>>>> of the two random values generated some step before and propagated.
>>>>
>>>> It sounds like the session is not preserved.
>>>>
>>>> Indeed I often lost session also when I act from the admin side of
>>>> roller.
>>>>
>>>> Do you any idea of what the cause could be?
>>>
>>> Any idea on how I could go on?
>>>
>>> Thanks,
>>>
>>> rocsca
>>>
>>>
>>
>
>
>

Reply via email to