Gutes IRC Web-Applet?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Pyramide hat geschrieben:Das Problem mit dem Signieren ist, daß jedes Plugin o.ä. eine andere Technologie verwendet. Bei Microsoft funzt das mit cab-Dateien, bei Sun mit jar-Dateien etc. Und AFAIK hat sich der Verschlüsselungsmechanismus bei Sun zwischen 1.2 und 1.3 geändert. Und bei 1.3 werden noch keine sog. self-signed Zertifikate akzeptiert, d.h. du musst dir z.B. bei verisign für viel Geld eins kaufen.
MS funzt ja bei allen - und SUN bei keinem. Selbst wenn es nach neusignieren nur bei der hälfte der SUNer funzt ist das schon nen Gewinn ;) mIRC wird mittlerweile auch von einigen angenommen - komisch, wochenlang werbung gemacht - nix! EINMAL hat sich eines ins IRC verlaufen - sonst wars tot. Jetzt steht im Forum die Userzahl im Chat, der JavaChat funzt zu 50% und es sind regelmässig user da -wovon sich die meisten mittlerweile mIRC installiert haben *G*
Falls du es dennoch versuchen willst musst du als erstes das Zertifikat erstellen:

Code: Alles auswählen

keytool -keystore <keystore-dateiname> -storepass <changeme> -genkey -alias <alias>
Dann kannst du die jar-Dateien signieren:

Code: Alles auswählen

jarsigner -keystore <keystore-dateiname> -storepass <changeme> <jar-datei> <alias>
Das was in <Klammern> steht muss ersetzt werden (beliebig wählbar)
Uff - keytool/jarsigner - hab ich auf der Sun-Seite irgendwo schon gelesen, aber weniger verstanden - liegen diese Dateien in dem Java-Developer-Paket? Free?


@Simpson: ich könnte mir vorstellen das RTL da gut einkaufen gegangen ist. Es gibt IRC-Gateway-kram ;) für php. Die erste version ist wohl direkt im php eingebunden - benötigt aber nen spezielleren Server (apache macht das net), die 2. Befehlssatz-Version (die von Apache auch unterstützt wird) soll wohl geld kosten. Hab beim rumsuchen nach nem PHP-IRC-Script nen anbieter eines solchen gefunden - kostet richtig moos :( ... ich denke mal damit biste künstlicherisch kaum noch gebunden - und kompatiblität in richtung User dürfte bei 99% liegen. DAS wäre DER Chat. Sowohl via Forum connectbar wie auch mit Client - und das ohne problemkinder :)

Wenn jemand nen fertiges php-IRC-Gateway-script für Apache kennt - welches for free ist;) sacht mal bescheid ;)

Bis denne
Wuppi
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Hi

@pyramide:

Super ;) also Signieren klappt jedenfalls schonmal. Aber die Security ist noch da ... die sollte ich ja vorher auch abändern, nur neu signieren bringts nicht.

*** Kann den Ident Server nicht starten : access denied (java.net.SocketPermission localhost:113 listen,resolve)
Verbinde...
Unfähig zu verbinden : access denied (java.net.SocketPermission irc.euirc.net resolve)
Diese Fehlermeldung rührt daher, das das Applet nur Funktioniert wenn Applet auf dem zu Connectenen Server liegen. Nur wie kann ich das jetzt ändern? Es soll ja einen Externen Server (irc.euirc.net - ist die Sammeladresse, von dort wird weitergeleitet) connecten.

Haste da noch ne Idee? Oder jemand anders?

Bis denne
Wuppi
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Hi

soch nen teil der Lösung hab ich schon

Code: Alles auswählen

grant {
  permission java.net.SocketPermission "*.euirc.net:113", "accept, connect, listen, resolve";
  permission java.net.SocketPermission "*.euirc.net:6667", "accept, connect, listen, resolve";
};
Damit sollte das ja gehen? ... das ganze hab ich in ne datei gepackt "rmi.policy" - nur jetzt die große frage: wie bekomm ich das ins JAR rein (reinschieben alleine reicht ja wohl net) und vorallem: WIE wird das ganze auch "aktiv"?

Bis denne
Wuppi

Bis
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Wie gesagt: Die verschiedenen Signierungsverfahren funktionieren nur mit den jeweiligen Applet-Umgebungen. Die .cab-Dateien funktionieren nur in der MS VM und die .jar Dateien nur mit Suns Java Plugin. Das Problem an der Sache ist nur, daß sich die MS VM so im Internet Explorer festbeißt, daß das Java Plugin bei normalen <applet> tags keine Chance hat. Es gibt zwar in den Internetoptionen einen Punkt "Java(Sun) -> verwenden sie Java 2 [version] für <applet>", aber bei mir hat das nix geändert.

Die einzige Möglichkeit in solchen Fällen das Java Plugin zu erzwingen ist über das <object> tag. Dazu solltest du das Programm HtmlConverter.exe im JDK/bin Verzeichnis aufrufen, welches Dateien mit <applet> tags entsprechend konvertiert. Wenn alles klappt solltest du

Da du durch diese Maßnahme jedoch die IE-Nutzer, bei denen es vorher funktionierte und die Suns Plugin nicht installiert haben, dazu zwingst, dieses runterzuladen, würde ich dir empfehlen, beide Versionen (.cab+<applet> und .jar+<object>) anzubieten.

PS: jar Dateien sind im zip-Format gespeichert, du kannst sie also mit Programmen wie Winzip oder Winrar öffnen.
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Hi

ah ..

also hab hier ne irc.cab (wo in etwa das gleiche drin ist wie in der irc.jar) und ne securedirc.cab (die sorgt wohl beim MS-Java dafür das es vertrauenswürdig ist? - diese ermöglicht auf jedenfall auch DCC und ist für identd verantworltich)

Jetzt meinst du ich sollte neben den aufruf über applet (ms) auch noch objekt einfügen - das macht diese html-konverterteil. Wenn beides drin ist, sollte MS auf jedenfal weiterhin funzen wie bisher - Sun kann jetzt angesprochen - aber behebt das des socketproblem? werde es nachmal mal probieren!

Bis denne
Wuppi
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Ufff

der quellcode ist jetzt doppelt so groß - funtz weiterhin mit IE (auch wenn ich diesen sun-kram disable) und bei SUN enable kommt noch die socket.

Ich glaub das Applet war von anfang an schon für beide vorbereitet? Selbst bei SUN wirds ja auch aufgerufen - alles soweit klappt, es scheitert nur an diesem SocketPermission - dafür muß ich irgendwie in die JAR ne policy-dateie einbinden ... Damit gib ich dem Applet die erlaubnis einen anderen Server zu connecten als den wo es her kommt.

Ich hab das JAR-File ja auch schonmal signiert bekommen, so das beim aufruf die Meldung kommt, das ICH dieses Applet signiert hab. Es klappt also? Oder hab ich hier nen denkfehler?

Der Quellcode in der php sieht derzeit so aus:

Code: Alles auswählen

<form name="jform">
  <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
    <TR> 
      <TD align=center> 
        <p><font size=-2><font color="#FF0000">Bitte erlaubt den Applet-System 
          den Zugriff - sonst ist es ohne Funktion. => Sicherheitsabfrage mit 
          <b>Ja</b> beantworten!</font> </font><applet code=IRCApplet.class archive="irc.jar" width=75% height=420>
            <param name="CABINETS" value="irc.cab,securedirc.cab">
            <param name="nick" value="<? echo "$chatnick"; ?>">
            <param name="alternatenick" value="<? echo "$altnick"; ?>">
            <param name="name" value="<? echo "$chatname"; ?>">
            <param name="host" value="irc.euirc.net">
            <param name="port" value="6667">
            <param name="command1" value="mode <?echo "$chatnick";?> +c "> 
            <param name="command2" value="mode <?echo "$altnick";?> +c "> 
            <param name="command3" value="join #numismatik">
            <!param name="command3" value="join #numismatik">
            <!param name="basecolor" value="384,256,128">
            <!param name="color15" value="C0C000">
            <!param name="helppage" value="http://www.muenzforum.com/">
            <!param name="timestamp" value="true">
            <param name="language" value="german">
            <param name="smileys" value="true">
            <param name="highlight" value="true">
            <param name="highlightnick" value="true">
            <param name="quitmessage" value="http://www.muenzforum.com/ VISIT US!">
            <param name="asl" value="true">
            <param name="aslmale" value="h">
            <param name="aslfemale" value="f">
            <param name="bitmapsmileys" value="true">
            <param name="smiley1" value=":) jchat/img/sourire.gif">
.... smiley-definitionen .....
            <param name="smiley24" value=":) jchat/img/sourire.gif">
            <!param name="channelfont" value="16 Arial">
            <!param name="chanlistfont" value="16 Arial">
            <param name="nickfield" value="true">
            <!param name="useinfo" value="true">
            <!param name="chanlisttextcolor0" value="FF00FF">
            <!param name="defaultsourcetextcolor0" value="00FF00">
            <!param name="sourcecolorconfig1" value="status 0 000000">
            <!param name="sourcecolorconfig2" value="#channel 1 FFFFFF">
            <param name="soundbeep" value="jchat/snd/bell2.au">
            <param name="soundquery" value="jchat/snd/ding.au">
            <!param name="styleselector" value="true">
          </applet>
Bis denne
Wuppi
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Wuppi hat geschrieben:Ich hab das JAR-File ja auch schonmal signiert bekommen, so das beim aufruf die Meldung kommt, das ICH dieses Applet signiert hab. Es klappt also? Oder hab ich hier nen denkfehler
Wenn diese Sicherheitsabfrage erscheint und der Benutzer diese bestätigt, sollte das Applet eigentlich sämtliche Berehtigungen haben - auch ohne policy-Datei.

PS: In dem von dir geposteten Code ist aber kein <object> tag drin...
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Hier ist ein signiertes Testapplet von mir zum vergleichen: http://mitglied.lycos.de/pyramidenzahn/signed_applet/ (SignedApplet.html aufrufen). Beim Aufrufen sollte ein Fenster "Java Sicherheitshinweis" erscheinen, und wenn du dort "Für diese Sitzung gewähren" oder "Immer gewähren" auswählst, solltest du oben eine Datei auswählen können, deren Inhalt dann nach einem Klick auf "Anzeigen" unten angezeigt wird.
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Pyramide hat geschrieben:
Wuppi hat geschrieben:Ich hab das JAR-File ja auch schonmal signiert bekommen, so das beim aufruf die Meldung kommt, das ICH dieses Applet signiert hab. Es klappt also? Oder hab ich hier nen denkfehler
Wenn diese Sicherheitsabfrage erscheint und der Benutzer diese bestätigt, sollte das Applet eigentlich sämtliche Berehtigungen haben - auch ohne policy-Datei.

PS: In dem von dir geposteten Code ist aber kein <object> tag drin...
Hi

also JAVA rall ich voll net ;)

Kannste mir vielleicht ;) das Object-Tag in meinen Code reinpacken? So das es für MS und SUN-Java läuft? ... wenn ich das mit dem html-converter mache seh ich da nur noch chaos ;) da ist nen haufen JavaScript drin und irgendwie nen haufen urls ...(zu sun)

Also du meinst das müsste auch ohne policy klappen wenn ich nur den html-code richtig hab? ... wenn ich das signiere steht was von wg. nicht vertrauenswürdig - Java-Applets sind ja nur als sicher/vertrauenswürdig wennse von diesen Firmen signiert werde - aber das sollte kein Problem sein oder?

BTW: arbeitest du bei der TSI-Nova?

Bis denne
Wuppi
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Wuppi hat geschrieben:Kannste mir vielleicht ;) das Object-Tag in meinen Code reinpacken? So das es für MS und SUN-Java läuft?... wenn ich das mit dem html-converter mache seh ich da nur noch chaos ;) da ist nen haufen JavaScript drin und irgendwie nen haufen urls ...(zu sun)
Kommt darauf an welches Template ("Schablone") du verwendest. Je nachdem welche Browser du unterstützen willst wird der Code entsprechend Komplizierter. Mein Beispiel verwendet z.B. das "nur IE"-Template.

Die Struktur sieht etwa so aus:

Code: Alles auswählen

<object
    classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    width="<breite>" height="<höhe>"
    codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-win.cab#Version=1,4,0,0">
    <param name="code" value="<hier den Klassennamen samt Package>">
    <param name="archive" value="<hier die .jar Datei(en) durch Komma getrennt>">

    <param name="type" value="application/x-java-applet;version=1.4">
    <param name="scriptable" value="false">

    //hier zusätzliche <param name="abc" value="xyz">
</object>
Bei dir müsste der Klassenname "IRCApplet" sein (steht im code Attribut deiner HTML Datei).
Wuppi hat geschrieben:Also du meinst das müsste auch ohne policy klappen wenn ich nur den html-code richtig hab? ...
Das mit den policy-Dateien habe ich bei mir noch nicht hinbekommen. AFAIK müssen die Dateien in <user.home>/.java liegen (d.h. für die beuscher reicht es nicht, einfach nur eine Sicherheitsabfrage zu beantworten).
Wuppi hat geschrieben:wenn ich das signiere steht was von wg. nicht vertrauenswürdig - Java-Applets sind ja nur als sicher/vertrauenswürdig wennse von diesen Firmen signiert werde - aber das sollte kein Problem sein oder?
Laut Dokumentation funktioniert es beim 1.3 Plugin nur wenn das Zertifikat des sog. "root CA" (z.B. Verisign oder du selbst) im entsprechenden keystore (Datei <JRE-Verzeichnis>\lib\security\cacerts) eingetragen ist, d.h. es funktioniert nur wenn du dein Zertifikat gekauft hast (kostet z.B. bei Verisign schlappe $400). Mit 1.4 hatte ich bisher keine Probleme.
Wuppi hat geschrieben:BTW: arbeitest du bei der TSI-Nova?
Ja
Antworten

Zurück zu „Coding & Technik“