xall Geschrieben 10. September 2010 Geschrieben 10. September 2010 Hallo ich habe ein Problem ich habe einen Linuxserver. Nun möchte ich das dort angezeigt wird wie lange ein passwort noch gültig ist (bzw das ablaufdatum eigentlich egal was von beidem) ich habe dazu folgenden Link gefunden: How to obtain password expiration date by using LDAP ADSI provider leider ist es in VB bzw VBScript geschrieben -> kann nicht benutzt werden ich habe Tomcat installiert habe auch schon eine JSP Seite drum herum es fehlt nur noch dieses kleine stück. Also habe ich gedacht das könnte man in Java machen nun habe ich aber keine AHnung wie ich da anfangen soll um dies zu realisieren, jemand eine Ahnung was man tun könnte? Zitieren
robotto7831a Geschrieben 10. September 2010 Geschrieben 10. September 2010 Hallo, hier kannst Du schon mal einen ersten Ansatz. Frank Zitieren
xall Geschrieben 10. September 2010 Autor Geschrieben 10. September 2010 Das ist schonmal sehr nett! (ist mein erstes mal das ich mich überhaupt mit LDAP auseinander setze) Also wenn ich nun mein Beispiel anschaue (es klappt als ausführbare VBSkript datei auf einen windows desktop) wird dort kein passowrt benötigt also muss ich bei env.put(Context.SECURITY_AUTHENTICATION,"simple"); none eingeben oder? und die anderen zwei felder darunter kann ich dann weg lassen, habe ich richtig verstanden oder? gibt es irgendwelche besonders imports? habe nun: <%@ page import="java.text.DateFormat" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.net.URL" %> <%@ page import="java.util.Hashtable" %> <%@ page import="javax.naming.Context" %> <%@ page import="javax.naming.NamingEnumeration" %> <%@ page import="javax.naming.NamingException" %> <%@ page import="javax.naming.directory.Attribute" %> <%@ page import="javax.naming.directory.Attributes" %> <%@ page import="javax.naming.directory.DirContext" %> <%@ page import="javax.naming.directory.InitialDirContext" %> <%@ page import="javax.naming.directory.SearchControls" %> <%@ page import="javax.naming.directory.SearchResult" %> danke nochmals! Zitieren
robotto7831a Geschrieben 10. September 2010 Geschrieben 10. September 2010 Ich vermute mal, dass du als Domänenuser an dem Desktop PC angemeldet bist. Dann wird kein Passwort benötigt, denn Du bist ja schon authentifiziert. Trag bei User und Passwort deinen Domänenuser und das Domänenpasswort ein. Simple muss glaube ich so bleiben. LDAP Authentication Frank Zitieren
xall Geschrieben 10. September 2010 Autor Geschrieben 10. September 2010 Ok ich versuche das allerdings komme ich gar nicht erst soweit das es mir was bringen würde Problem: LdapContext ctx = new InitialLdapContext(env,null); die Zeile An error occurred at line: 77 in the jsp file: /webtops/standard/webtop/welcome.jsp LdapContext cannot be resolved to a type 72: env.put(Context.SECURITY_AUTHENTICATION,"simple"); 73: env.put(Context.SECURITY_PRINCIPAL,adminName); 74: env.put(Context.SECURITY_CREDENTIALS,adminPassword); 75: env.put("java.naming.ldap.attributes.binary","objectGUID"); 76: env.put(Context.PROVIDER_URL,server); 77: LdapContext ctx = new InitialLdapContext(env,null); 78: Nun habe ich gedacht schau mal nach hab das hier versucht: <%@ page import="javax.naming.directory.ldap" %> <%@ page import="javax.naming.directory.ldap.LdapContext" %> An error occurred at line: 31 in the generated java file Only a type can be imported. javax.naming.directory.ldap resolves to a package An error occurred at line: 32 in the generated java file Only a type can be imported. javax.naming.directory.ldap.LdapContext resolves to a package jetzt habe ich keine Ahnung was ich da machen soll? hab auch mal das hier angeschaut: http://forum.fachinformatiker.de/java/72614-ldap-benutzer-kennwort-vergleichen.html um erstmal rein zukommen jedoch klappt das auch nicht sobald ich zur stelle: ctx = new InitialDirContext(properties); komme sagt er "die seite kann nicht angezeigt werden" Danke nochmals! Zitieren
robotto7831a Geschrieben 10. September 2010 Geschrieben 10. September 2010 Schreib nur: <%@ page import="javax.naming.directory.ldap.*" %> Die zweite Zeile mit javax.naming.directory.ldap.LdapContext löschen. Frank Zitieren
xall Geschrieben 10. September 2010 Autor Geschrieben 10. September 2010 Ja ok hab gedacht ich mach das mal in kleinen schritten aber das geht ja anscheinend nicht, nichts destotrotz bleibt der fehler an der stelle: LdapContext ctx = new InitialLdapContext(env,null); der andere ist jetzt weg Ich hab eigentlich gedacht durch den Import sollte das geklärt sein. Danke. Zitieren
robotto7831a Geschrieben 10. September 2010 Geschrieben 10. September 2010 Wenn die Fehlermeldung immer noch "LdapContext cannot be resolved to a type" ist, dann fehlt noch eine Importanweisung. Frank Zitieren
xall Geschrieben 10. September 2010 Autor Geschrieben 10. September 2010 Hallo nochmal, ich lenke jetzt mal etwas anders ein. Ich habe gerade eine tip von einem aus der Firma bekommen. und zwar läuft es darauf hinaus das es eher so aussieht: DirContext ctx = null; String DEFAULT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory"; Hashtable env = new Hashtable(); SearchControls ctls = new SearchControls(); NamingEnumeration answer = null; SearchResult sr; env.put( Context.INITIAL_CONTEXT_FACTORY, DEFAULT_FACTORY ); env.put( Context.SECURITY_AUTHENTICATION, "simple" ); env.put( Context.PROVIDER_URL, "ldap://server" ); env.put( Context.SECURITY_PRINCIPAL, "admin" ); env.put( Context.SECURITY_CREDENTIALS, "pw" ); ctx = new InitialDirContext(env); nun wird wie oben schonmal gesagt ab der stelle ctx = new InitialDirContext(env); die Seite nicht mehr angezeigt jemand eine idee?! danke (ich werde das jetzt so machen da der Code damit fast fertig ist lediglich kleine anpassungen und halt dieses Problem) danke! Zitieren
xall Geschrieben 10. September 2010 Autor Geschrieben 10. September 2010 ok das Problem habe ich jetzt gelöst viel mehr geht es nun um die abfragen eines MS LDAP (der linux Server greift auf diesen zu da der linux Server als Webserver benutzt wird) das klappt auch alles soweit nur ich habe eigentlich keine Ahnung was ich nun hier eintragen soll: ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); answer = ctx.search("","",ctls) und wie ich dann z.B die maxPwdAge ausgeben soll? wenn ich einfach answer ausgebe bekomme ich: com.sun.jndi.ldap.LdapSearchEnumeration@1ef2973 ich will nun aber die maxpwdage herausbekommen /(ehe ich dann weiter gehe die lastchange herauszubekommen (mit den beiden kommandos sollte danach ja alles klar sein) Zitieren
robotto7831a Geschrieben 10. September 2010 Geschrieben 10. September 2010 Schau mal dort. Search Scope Frank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.