You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Loyd Bacani <lg...@yahoo.com> on 2003/06/19 03:23:50 UTC

Problem implementing JAAS in Tomcat 4.1.2

I am trying to implement JAAS in a web application by using Tomcat's implementation of JAAS (JAASRealm). I've been getting an exception (pls see below) by using the same source code with different Tomcat configuration (server.xml ). I've used this code in Weblogic 6.X without any problem. If this could be done in Weblogic, then there is NO reason why we can't do it in Tomcat. I've included snippets of the server.xml, the java source code ( ContainerAuthentication.java ) and the exception in the hope that it might help.
 
Can anyone tell me what am I doing wrong? Or perhaps point me in the right direction.
 
// server.xml 
      <!--Realm  className="org.apache.catalina.realm.JAASRealm" debug="99"
                appName="JAASPolicy"
         userClassNames="java.security.Principal"
         roleClassNames="java.security.Principal"/-->
         
      <Realm  className="org.apache.catalina.realm.JAASRealm" debug="99"
   loginContext="JAASPolicy"
   callbackHandler="cdmanager.security.tomcat.JAASLoginCallbackHandler"/>

// ContainerAuthentication.java
 
// login method starts here
    public void login(ServletRequest request)
        throws LoginException
    {
        try
        {
            LoginContext loginContext = null;
            PasswordLoginProperties plProperties = PasswordLoginProperties.getPasswordLoginProperties();
            Properties property = new Properties(System.getProperties());
            property.put( "configPolicyFileName", plProperties.getConfigPolicyFileName());
            property.put("java.security.auth.login.config", plProperties.getConfigPolicyFileName() );
            System.setProperties(property);
           // shorten here
            JAASLoginCallbackHandler handler = new cdmanager.security.tomcat.JAASLoginCallbackHandler(request);
            loginContext = new LoginContext("JAASPolicy", handler );
             
            loginContext.login();  // exception is thrown in this line
    } 
    catch(ConfigException ce) {
        throw new LoginException(ce.toString());
    }
}
// login method ends here ( shorten version)
 
 
// And here is the exception

java.lang.SecurityException: unable to instantiate LoginConfiguration	at javax.security.auth.login.Configuration.getConfiguration(Configuration.java:212)	at javax.security.auth.login.LoginContext$1.run(LoginContext.java:166)	at java.security.AccessController.doPrivileged(Native Method)	at javax.security.auth.login.LoginContext.init(LoginContext.java:163)	at javax.security.auth.login.LoginContext.(LoginContext.java:319)	at cdmanager.security.tomcat.ContainerAuthentication.login(Unknown Source)	at cdmanager.actions.LogonAction.execute(Unknown Source)	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)	at
 javax.servlet.http.HttpServlet.service(HttpServlet.java:853)	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)	at
 org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)	at
 org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)	at java.lang.Thread.run(Thread.java:479)



---------------------------------
Apache Tomcat/4.1.24
 
 

 
   


---------------------------------
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!