Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [java] Pc come Server

  1. #1
    Utente di HTML.it L'avatar di breiko
    Registrato dal
    Jan 2003
    Messaggi
    53

    [java] Pc come Server

    Ciao, ho un problema che nn riesco a risolvere..

    Ho programmato una chat in java (modificando una vecchia chat open-source) e voglio fare girare il programma server sul mio pc di casa visto che ho un'adsl 24ore.

    Volevo sapere visto che nn riesco a farla funzionare dove sbaglio.
    Nel pc di casa eseguo il file ServerChat semplicemente con il comando java ServerChat.
    L'applet che risiede in una pag online si collega al mio pc con indirizzo ip e porta.

    Ecco il messaggio della console
    java.security.AccessControlException: access denied (java.net.SocketPermission 82.50.181.93:6968 connect,resolve)
    at java.security.AccessControlContext.checkPermission (Unknown Source)
    at java.security.AccessController.checkPermission(Unk nown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkConnect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at ChatApplet.run(ChatApplet.java:58)
    at java.lang.Thread.run(Unknown Source)
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Purtroppo per poter utilizzare classi di comunicazione I/O (come appunto le Socket) all'interno di una APPLET sono necessari degli accorgimenti ulteriori: certificazione dell'applet e impostazione di Policy...

    Non ho esperienze di questo tipo, per cui non ti posso aiutare, ma qualcun altro nel forum che ha già avuto a che fare con queste cose, probabilmente ti potrà essere d'aiuto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Per far uscire le applet dalla sandbox ci sono svariati sistemi, alcuni molto bigolosi. Java 2 ha un tool molto semplice ed efficiente: le applet firmate rsa; appena eseguita l'applet viene chiesto se eseguire o no, se si dice si l'applet ha TUTTI i permessi, sennò no.

    Leggi qui: http://www.mokabyte.it/1999/11/signedapplet.htm
    Puoi fermarti al punto 4 ed inserire nella pagina web il file jar generato col seguente tag html:

    codice:
    <applet code="ClasseMain.class"
    archive="jarfirmato.jar"
    width=400 height=400>
    </applet>
    Attento che nell'articolo le " usate sono strane e a me non funzionano, quindi ho dovuto riscriverle.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  4. #4
    Utente di HTML.it L'avatar di breiko
    Registrato dal
    Jan 2003
    Messaggi
    53
    Ciao a tutto il forum..

    Sto programmando una chat in java da caricare su un sito web creando server e client(applet).
    La chat funziona benissimo se sullo stesso pc eseguo sia server che client ma se il client è un'altro pc mi imbatto su errori di Access Denied e non so più come fare..

    Ho provato a seguire i consigli ma niente da fare..

    Ancora l'errore

    codice:
    Access denied (java.net.SocketPermission 192.168.0.10:6968 connect,resolve)

    Ho seguito le istruzioni creando l'applet firmata Rsa ma quando la eseguo nn ricevo alcuna richiesta per i permessi..

    Ecco il codice:

    codice:
    <applet code="ClasseMain.class"
    archive="jarfirmato.jar"
    width=400 height=400>
    </applet>
    Dove sbaglio? Forse dimentico qualcosa?

    Grazie

  5. #5
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    l'applet l'hai aperta col Browser non con l'appletviewer, vero?

    Se l'hai aperta col browser e non ti è uscito niente vuol dire che hai sbagliato la firma (purché il browser sia IE o Netscape o Mozilla altrimenti non so). Assicurati di averla fatta corettamente. Avevo avuto anche io in passato lo stesso problema di diritti ma con la firma si è sistemato tutto, ed è proprio grazie all'amico netarrow che mi disse come fare
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da breiko
    Ciao a tutto il forum..

    Sto programmando una chat in java da caricare su un sito web creando server e client(applet).
    La chat funziona benissimo se sullo stesso pc eseguo sia server che client ma se il client è un'altro pc mi imbatto su errori di Access Denied e non so più come fare..

    Ho provato a seguire i consigli ma niente da fare..

    Ancora l'errore

    codice:
    Access denied (java.net.SocketPermission 192.168.0.10:6968 connect,resolve)

    Ho seguito le istruzioni creando l'applet firmata Rsa ma quando la eseguo nn ricevo alcuna richiesta per i permessi..

    Ecco il codice:

    codice:
    <applet code="ClasseMain.class"
    archive="jarfirmato.jar"
    width=400 height=400>
    </applet>
    Dove sbaglio? Forse dimentico qualcosa?

    Grazie
    In locale ti funziona perchè i socket possono connettersi solo a 127.0.0.1. secondo le sandbox rulez

    Ma hai scritto veramente i tag html come stavano? ClasseMain.class è la classe principale dell'applet, quella che estende Applet; in jarfirmato.jar scrivi il nome del jar che genera il jarsigner.

    Ecco un esempio di firma alternativo a quello di prima:
    1) jar cvf Chat.jar *.class //crea un jar che contiene tutti i class
    2) keytool -genkey -alias KeyStore //crea un keystore, dovrai inserire una password e i tuoi dati(se sono falsi firma cmq, però dubito che uno accetti la firma di "afdagaga" della "_dgashSOFT" )
    3) jarsigner Chat.jar KeyStore // il jar creato prima sarà firmato secondo il profilo che è nel certificato KeyStore

    Inserisci il codice html di prima, adattandolo al tuo caso ovviamente e se non va neanche sta volta, controlla che il tuo browser non abbia le impostazioni di sicurezza "alla fort nox" o di aver firmato correttamente.

    P.S
    Se dopo la firma non vuoi conservarti il KeyStore devi usare il comando:

    keytool -delete -alias KeyStore

    Immettere la password e sarà eliminato, oppure lo tieni e lo riusi per più firma.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.