2014-09-10 121 views
0

我們已經爲使用臨時密碼的用戶設置了賬戶。用戶通過電子郵件接收密碼,然後假設能夠用它登錄。 我們已經修復了我們以前的密碼不符合AD要求的問題,並且正在使用默認值進行測試。這是我們在控制檯收到的錯誤。請讓我知道是否還有其他東西可以提供。感謝:無法使用給定密碼登錄到AD賬戶

控制檯

2014-09-10 13:25:32,685 [ajp-0.0.0.0-8009-4] ERROR com.util.ADUtil - Error building user from attributes 
    java.lang.NumberFormatException: For input string: "exampletest" 
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
at java.lang.Integer.parseInt(Integer.java:492) 
    at java.lang.Integer.parseInt(Integer.java:527) 
    at com.example.publicwebsite.example.account.util.ADUtil.buildAccount(ADUtil.java:742) 
    at com.example.publicwebsite.example.account.util.ADUtil.searchForUsers(ADUtil.java:841) 
    at com.example.publicwebsite.example.account.util.AccountUtil.searchForUsers(AccountUtil.java:157) 
    at org.apache.jsp.public_.example.admin.searchActiveAccountsJson_jsp._jspService(searchActiveAccountsJson_jsp.java:77) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:442) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) 
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    at org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn.invoke(ClusteredSingleSignOn.java:692) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:566) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74) 
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437) 
    at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:385) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451) 
    at java.lang.Thread.run(Thread.java:745) 

這裏是我們的前一個問題的鏈接:

How to reset password in AD, getting an LDP OperationNotSupported error

的Java

UserCreation

... 

ldapContext = new InitialDirContext(ldapEnv); 
     Attributes attributes = new BasicAttributes(true); 
     Attribute objClasses = new BasicAttribute("objectClass"); 
     objClasses.add("top"); 
     objClasses.add("user"); 
     objClasses.add("person"); 
     objClasses.add("organizationalPerson"); 

     Attribute cn = new BasicAttribute("cn", "" + userId); 
     Attribute description = new BasicAttribute("description", "user account"); 
     Attribute distinguishedName = new BasicAttribute("name", "" + userId); 
     Attribute firstName = new BasicAttribute("givenName", fName); 
     Attribute lastName = new BasicAttribute("sn", lName); 
     Attribute mail = new BasicAttribute("mail", email); 
     Attribute organization = new BasicAttribute("department", org); 
     Attribute phoneNumber = new BasicAttribute("homePhone", pNumber); 
     Attribute samAccountName = new BasicAttribute("sAMAccountName", "" + userId); 
     Attribute name = new BasicAttribute("distinguishedName", createDN("" + userId,usersOU)); 
     Attribute objectCategory = new BasicAttribute("objectCategory", usersCategoryDN); 

     Attribute accountControl = new BasicAttribute("userAccountControl", "512"); 
     Attribute password = new BasicAttribute("unicodePwd", formatPassword(temporaryPassword)); 
      logger.info("userscat" + usersCategoryDN); 

     attributes.put(objClasses); 

     attributes.put(cn); 
     attributes.put(description); 
     attributes.put(distinguishedName); 
     attributes.put(firstName); 
     attributes.put(lastName); 
     attributes.put(mail); 
     attributes.put(organization); 
     attributes.put(phoneNumber); 
     attributes.put(samAccountName); 
     attributes.put(name); 
     attributes.put(objectCategory); 
     attributes.put(accountControl); 
     attributes.put(password); 

     account.setPassword(temporaryPassword); 

... 

** formatPassword是從這篇文章的功能編碼:

http://www.ramblingtech.com/will_not_perform-error-from-ad-on-password-change-using-java/

+0

「請讓我知道是否有其他任何可以提供」源代碼,多的堆棧跟蹤的一點點的將是一個良好的開端。 – 2014-09-10 13:52:41

+0

好的。我說過,因爲我們的代碼非常廣泛。 – 2014-09-10 13:56:28

回答

1

我不知道太多的Java,但堆棧跟蹤似乎是說,它不能轉換exampletest成一個號碼。

在ADUtil.java級的742行,你叫parseInt具有解析exampletest成整數的問題。所以沒有實際的代碼,所有進一步的調查都有點牽強。

希望幫助雖然