Calendar example worked (with page import java.util.Calendar) :)

This is the Pam.java class the class compiles to
WEB-INF/classes/net/digitalassembly/auth/Pam.class

package net.digitalassembly.auth;

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;
import net.digitalassembly.auth.PamModule;
import net.digitalassembly.auth.PamHibernateModule; // May need to have this in 
the config file to make it plugable

public class Pam {
        /* Pam has a list of modules that it can support
         * There is a interface called PamModule that allows
         * other "modules" to interact with Pam
         * Pam should be a singleton
         * Does PAM ONLY allow one mechanism? I think Not
        */
        private static Pam instance = new Pam();
        private String pamConfigFile = "pam.conf"; // Static file for all 
modules
        private List<PamModule> pamModules = new ArrayList();
        private Properties pamProperties = new Properties();
        
        private Pam() {
                try {
                        pamProperties.load(new FileInputStream(pamConfigFile));
                } catch (IOException ioe) {
                        System.out.println("File not found");
                        this.instance = null;
                }
                
System.out.println(pamProperties.getProperty("pam.hibernate.plugin"));
                if 
(pamProperties.getProperty("pam.hibernate.plugin").equalsIgnoreCase("true")) {
                        pamModules.add(PamHibernateModule.getInstance());
                }
                if 
(pamProperties.getProperty("pam.db.plugin").equalsIgnoreCase("true")) {
                        pamModules.add(PamHibernateModule.getInstance());
                }
                if 
(pamProperties.getProperty("pam.ldap.plugin").equalsIgnoreCase("true")) {
                        pamModules.add(PamHibernateModule.getInstance());
                }
                if 
(pamProperties.getProperty("pam.file.plugin").equalsIgnoreCase("true")) {
                        pamModules.add(PamHibernateModule.getInstance());
                }
        }

        public boolean authenticate(String username, String password) {
                System.out.println("Running Authenticate");
                for (PamModule module: pamModules) {
                        System.out.println(module);
                        boolean pass = false;
                        pass = module.authenticate(username,password);  
                        if (pass == true) {
                                return true;
                        }
                }
                return false;
        }
        public static Pam getInstance() {
                return instance;
        }
}


The file that is trying to use it is authenticate.jsp which contains the
following:

<%@ page import="net.digitalassembly.auth.Pam" %>
<%
        Pam pam = Pam.getInstance();
        if (pam != null) {
                if 
(pam.authenticate(request.getParameter("username"),request.getParameter("password")))
 {
                        
session.setAttribute("validUser",request.getParameter("username"));      
                }
                response.sendRedirect("/CharacterForge/forge/index.jsp");
        } else {
                out.println("Pam failed to initialize");
        }
%>
*
The error I get is:*

org.apache.jasper.JasperException: Exception in JSP: /authenticate.jsp:3

1: <%@ page import="net.digitalassembly.auth.Pam" %>
2: <%
3:      Pam pam = Pam.getInstance();
4:      if (pam != null) {
5:              if 
(pam.authenticate(request.getParameter("username"),request.getParameter("password")))
 {
6:                      
session.setAttribute("validUser",request.getParameter("username"));      


Stacktrace:
        
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

*root cause*

javax.servlet.ServletException
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.authenticate_jsp._jspService(authenticate_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

*root cause*

java.lang.NoClassDefFoundError
org.apache.jsp.authenticate_jsp._jspService(authenticate_jsp.java:46)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


Any help would be appreciated.  I have other classes (not implementing 
singleton pattern) that don't have any issues.
Hence why I was thinking it was a singleton/tomcat issue I was causing.

Thanks

Thomas



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to