> -----Original Message-----
> From: Dave [mailto:[email protected]]
> Sent: Wednesday, June 22, 2011 9:02 PM
> To: [email protected]
> Subject: Re: Comment authentication problem
>
> Looks like my original suggestion should work for you:
> Add this to your imports:
>
> import
> org.apache.roller.weblogger.ui.rendering.plugins.comments.CommentAuthenticator
Hello,
compiling is success full but I get this runtime error:
java.lang.NoClassDefFoundError: org/rocsca/MathCommentAuthenticator (wrong
name: org/rocsca/MathCommentAuthenticator/MathCommentAuthenticator)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1880)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:889)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1353)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.apache.roller.weblogger.ui.rendering.servlets.CommentServlet.init(CommentServlet.java:91)
org.apache.roller.weblogger.ui.rendering.WeblogRequestMapper.handleRequest(WeblogRequestMapper.java:231)
org.apache.roller.weblogger.ui.rendering.filters.RequestMappingFilter.doFilter(RequestMappingFilter.java:128)
org.apache.roller.weblogger.ui.core.filters.InitFilter.doFilter(InitFilter.java:71)
org.apache.roller.weblogger.ui.core.filters.PersistenceSessionFilter.doFilter(PersistenceSessionFilter.java:60)
org.apache.roller.weblogger.ui.core.filters.BootstrapFilter.doFilter(BootstrapFilter.java:67)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:52)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
org.apache.roller.weblogger.ui.core.filters.SchemeEnforcementFilter.doFilter(SchemeEnforcementFilter.java:121)
org.apache.roller.weblogger.ui.core.filters.CharEncodingFilter.doFilter(CharEncodingFilter.java:81)
> - Dave
Rocsca
> On Tue, Jun 21, 2011 at 3:30 AM, Scappatura Rocco
> <[email protected]> wrote:
> >> -----Original Message-----
> >> From: Dave [mailto:[email protected]]
> >> Sent: Monday, June 20, 2011 10:09 PM
> >> To: [email protected]
> >> 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
> >> <[email protected]> wrote:
> >> >> -----Original Message-----
> >> >> From: Dave [mailto:[email protected]]
> >> >> Sent: Monday, June 20, 2011 5:20 PM
> >> >> To: [email protected]
> >> >> Subject: Re: Comment authentication problem
> >> >>
> >> >> On Mon, Jun 20, 2011 at 9:28 AM, Scappatura Rocco
> >> >> <[email protected]> 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
> >> >
> >