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