[jcifs] NtlmServlet Authentication Problem
Patrick Wehinger
Patrick.Wehinger at gmx.net
Tue Jun 8 08:31:40 GMT 2004
Hi!
I'm trying to do NtlmServlet authentication (cant use the filter for
various reasons here), but i can't figure it out.
I use jcifs-0.9.1 and have a servlet extending the NtlmServlet:
public class MyNtlmServlet extends NtlmServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
//Config.setProperty("jcifs.smb.client.domain","KOGIT");
Config.setProperty("jcifs.http.domainController","kogit-win2s");
//Config.setProperty("jcifs.smb.client.username","10003");
//Config.setProperty("jcifs.smb.client.password","password");
Config.setProperty("jcifs.smb.client.soTimeout", "300000" );
Config.setProperty("jcifs.netbios.cachePolicy", "600" );
Config.setProperty("jcifs.resolveOrder","DNS,WINS");
Config.setProperty("jcifs.netbios.wins","192.168.0.223");
Config.setProperty("jcifs.util.loglevel","3");
Config.setProperty("jcifs.http.loadBalance","false");
Config.setProperty("jcifs.http.enableBasic","false");
System.out.println("->MyNtlmServlet.init");
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws
IOException, ServletException {
System.out.println("->doGet");
System.out.println("calling super");
super.service(req, res);
HttpSession session = req.getSession();
String user = (String)session.getAttribute("ntlmuser");
System.out.println("->" + user);
}
}
I tried various settings for domain and domainController but i end up
getting either a StackOverflow on super.service(req,res) or this:
jcifs.smb.SmbException: An error occured sending the request.
java.io.IOException: Failed to establish session with
kogit-win2s/192.168.0.223
at jcifs.smb.SmbTransport.ensureOpen(SmbTransport.java:290)
at jcifs.smb.SmbTransport.send(SmbTransport.java:602)
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:847)
at jcifs.smb.SmbSession.getChallenge(SmbSession.java:59)
at org.apache.jsp.user.NTLM_jsp._jspService(NTLM_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
at java.lang.Thread.run(Thread.java:534)
jcifs.smb.SmbTransport.send(SmbTransport.java:633)
jcifs.smb.SmbTransport.negotiate(SmbTransport.java:847)
jcifs.smb.SmbSession.getChallenge(SmbSession.java:59)
org.apache.jsp.user.NTLM_jsp._jspService(NTLM_jsp.java:92)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
I guess i'm doing it totally wrong, can anyone who successfully used the
NtlmServlet please post an example servlet?
Greetings,
Patrick
More information about the jcifs
mailing list