<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Shibboleth IdP 2.4<o:p></o:p></p>
<p class="MsoNormal">Windows<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Connecting to AD using LDAPS – and here is the error – and the login.config file. I have searched other logs (except the ldap log) and found nothing to help discover the problem. When I use ldp.exe tool on Windows from the IdP server to
connect to the AD server, using the same principal and credential, and baseDn, I can search just fine for any user. When I attempt to authenticate using testshib as a base – I get an authentication failed – but the error is simply
<o:p></o:p></p>
<p class="MsoNormal">19:44:00.227 - DEBUG [edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet:194] - User authentication for USERID failed<o:p></o:p></p>
<p class="MsoNormal">javax.security.auth.login.LoginException: java.lang.NullPointerException<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have searched on the userlist archives – and only found the fact that folks have fixed their issue – but not where the fix was applied. I have tried both a baseDn of ou=GROUP, dc=domain, dc=edu and simply the two dc’s (at the recommendation
of the ldap admin). I simply can’t determine for myself where the error may lie.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks<o:p></o:p></p>
<p class="MsoNormal">Oleg<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">--------------------------<o:p></o:p></p>
<p class="MsoNormal">Login.config file portion<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> edu.vt.middleware.ldap.jaas.LdapLoginModule required<o:p></o:p></p>
<p class="MsoNormal"> ldapURL="ldaps://server.domain.edu"<o:p></o:p></p>
<p class="MsoNormal"> port="636"<o:p></o:p></p>
<p class="MsoNormal"> ssl="true"<o:p></o:p></p>
<p class="MsoNormal"> baseDn="dc=domain,dc=edu"<o:p></o:p></p>
<p class="MsoNormal"> bindDn="USERID@domain.edu"<o:p></o:p></p>
<p class="MsoNormal"> bindCredential="somepassword”<o:p></o:p></p>
<p class="MsoNormal"> subtreeSearch="true"<o:p></o:p></p>
<p class="MsoNormal"> userFilter="samAccountName={0}";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-----------------------------------<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Idp-process.log<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">19:44:00.149 - DEBUG [edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet:170] - Attempting to authenticate user USERID<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:180] - useFirstPass = false<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:181] - tryFirstPass = false<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:182] - storePass = false<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:183] - clearPass = false<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:184] - setLdapPrincipal = true<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:185] - setLdapDnPrincipal = false<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:186] - setLdapCredential = true<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:187] - defaultRole = []<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:188] - principalGroupName = null<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:189] - roleGroupName = null<o:p></o:p></p>
<p class="MsoNormal">19:44:00.180 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:77] - userRoleAttribute = []<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.jaas.LdapLoginModule:83] - Created authenticator: edu.vt.middleware.ldap.auth.AuthenticatorConfig@15013136::env={java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, ldapURL=ldaps://server.domain.edu,
java.naming.security.protocol=ssl}<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:102] - Looking up DN using userFilter<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:193] - Search with the following parameters:<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:194] - dn = dc=domain,dc=edu<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:195] - filter = samAccountName={0}<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:196] - filterArgs = [USERID]<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:197] - searchControls = javax.naming.directory.SearchControls@1f6c439<o:p></o:p></p>
<p class="MsoNormal">19:44:00.211 - DEBUG [edu.vt.middleware.ldap.auth.SearchDnResolver:198] - handler = [edu.vt.middleware.ldap.handler.FqdnSearchResultHandler@1cc7f4b]<o:p></o:p></p>
<p class="MsoNormal">19:44:00.227 - DEBUG [edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet:194] - User authentication for USERID failed<o:p></o:p></p>
<p class="MsoNormal">javax.security.auth.login.LoginException: java.lang.NullPointerException<o:p></o:p></p>
<p class="MsoNormal"> at java.util.Hashtable.put(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.handler.AbstractConnectionHandler.connect(AbstractConnectionHandler.java:149)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.AbstractLdap.connect(AbstractLdap.java:1006)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.AbstractLdap.getContext(AbstractLdap.java:1058)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.AbstractLdap.search(AbstractLdap.java:214)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.auth.SearchDnResolver.resolve(SearchDnResolver.java:139)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.auth.Authenticator.getDn(Authenticator.java:106)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.jaas.JaasAuthenticator.authenticate(JaasAuthenticator.java:74)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.auth.Authenticator.authenticate(Authenticator.java:320)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.auth.Authenticator.authenticate(Authenticator.java:277)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.jaas.JaasAuthenticator.authenticate(JaasAuthenticator.java:60)<o:p></o:p></p>
<p class="MsoNormal"> at edu.vt.middleware.ldap.jaas.LdapLoginModule.login(LdapLoginModule.java:103)<o:p></o:p></p>
<p class="MsoNormal"> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<o:p></o:p></p>
<p class="MsoNormal"> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at java.lang.reflect.Method.invoke(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.invoke(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.access$000(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext$4.run(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at java.security.AccessController.doPrivileged(Native Method)<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.invokePriv(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.login(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet.authenticateUser(UsernamePasswordLoginServlet.java:177)<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet.service(UsernamePasswordLoginServlet.java:123)<o:p></o:p></p>
<p class="MsoNormal"> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.util.NoCacheFilter.doFilter(NoCacheFilter.java:50)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.session.IdPSessionFilter.doFilter(IdPSessionFilter.java:87)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.common.log.SLF4JMDCCleanupFilter.doFilter(SLF4JMDCCleanupFilter.java:52)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)<o:p></o:p></p>
<p class="MsoNormal"> at java.lang.Thread.run(Unknown Source)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.invoke(Unknown Source) ~[na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.access$000(Unknown Source) ~[na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext$4.run(Unknown Source) ~[na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"> at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.invokePriv(Unknown Source) ~[na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"> at javax.security.auth.login.LoginContext.login(Unknown Source) ~[na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet.authenticateUser(UsernamePasswordLoginServlet.java:177) [shibboleth-identityprovider-2.4.0.jar:na]<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet.service(UsernamePasswordLoginServlet.java:123) [shibboleth-identityprovider-2.4.0.jar:na]<o:p></o:p></p>
<p class="MsoNormal"> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.util.NoCacheFilter.doFilter(NoCacheFilter.java:50) [shibboleth-identityprovider-2.4.0.jar:na]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.idp.session.IdPSessionFilter.doFilter(IdPSessionFilter.java:87) [shibboleth-identityprovider-2.4.0.jar:na]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at edu.internet2.middleware.shibboleth.common.log.SLF4JMDCCleanupFilter.doFilter(SLF4JMDCCleanupFilter.java:52) [shibboleth-common-1.4.0.jar:na]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) [catalina.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) [tomcat-coyote.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) [tomcat-coyote.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.35]<o:p></o:p></p>
<p class="MsoNormal"> at java.lang.Thread.run(Unknown Source) [na:1.6.0_30]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt">Oleg Chaikovsky<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">AegisIdentity - The Identity Software Company<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">303-222-1064<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">714-742-2823 mobile<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"><a href="http://www.aegisidentity.com"><span style="color:blue">http://www.aegisidentity.com</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">twitter- @aegisidentity<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>