Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Java apleti i security

[es] :: Java :: Java apleti i security

Strane: 1 2

[ Pregleda: 5082 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
*.dynamic.sbb.rs.

Sajt: umpirsky.com


Profil

icon Java apleti i security02.10.2008. u 22:51 - pre 189 meseci
Koja je procedura da se omoguci Java apletu pristup fajl sistemu?

Naime, imam ovako nesto:

Code:

public class Crap extends JApplet {
       public void init() {
        JFileChooser fc = new JFileChooser();
        fc.setCurrentDirectory(new File("C:\\"));
        int returnVal = fc.showOpenDialog(Crap.this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File aFile = fc.getSelectedFile();
            String fileName = aFile.getName();
        }
    }
}


ovo radi iz eclipsa, ali kada pokrenem iz browsera

Code:

java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
...


Eclipse generise neki java.policy.applet fajl

Code:

/* AUTOMATICALLY GENERATED ON Tue Apr 16 17:20:59 EDT 2002*/
/* DO NOT EDIT */

grant {
  permission java.security.AllPermission;
};


znaci, sta treba da uradim da bi podigao ovaj JFileChooser iz browsera?
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.com
Via: [es] mailing liste



+64 Profil

icon Re: Java apleti i security03.10.2008. u 04:46 - pre 189 meseci
treba da uradis digitally sign applet
veoma lako ima 1000 tutoriala

 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security03.10.2008. u 07:54 - pre 189 meseci
Toga sam se bojao :)

Ali, kad sam malo bolje procitao http://www-personal.umich.edu/...gned-applet/signed-applet.html , video sam da si u pravu, ne izgleda tesko, pokusacu.

Samo vidim da onda moram da ga exportujem u jar, sto naravno nije problem, ali usporava razvoj :P kad bi umeo da napravim ant, bilo bi cool.

BTW, kad napravim aplet koji ima jednu klasu i default package, onda mi radi bez archive="jar", a kad imam paket onda nece...u cemu je fora? I sta je bolje, sa stanovista performansi jar ili class? I zasto ako vec stavljam archive="x.jar" moram i code="x.class", zasto ne moze samo sa jar?
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10255 Profil

icon Re: Java apleti i security06.10.2008. u 09:00 - pre 189 meseci
1. Nauči ant. Izuzetno je lak i jednostavan, a uštedeće ti MNOGO, MNOGO vremena. Na savladavanje anta utrošićeš tek par sati.
2. Kad savladaš ant, lakše ćeš da "svariš" i potpisivanje apleta

Što se tiče pitanja oko arhive i putanje:

Hoće da radi i ovako i onako. Ako ti je applet u nekom package-u onda treba da napišeš (na primer)
Code:

class=com.tvojdomen.tvojprojekat.GlavnApplet.class

A pri tome applet treba da bude u tom folderu ! Dakle, da napraviš takvu strukturu foldera.

Zašto jar ? Da korisnik ne bi dovlačio jedu po jednu klasu HTTP protokolom, već da dovuče gomilu klasa (zipovanih) odjenom. I ne samo klasa već i ostalih resursa (slike na primer ili neki drugi fajlovi). Inače, kad se klase već dovuku, onda se preformanse izvođenja ne razlikuju.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
217.26.78.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Java apleti i security06.10.2008. u 16:51 - pre 189 meseci
Citat:
Java Beograd: 1. Nauči ant. Izuzetno je lak i jednostavan, a uštedeće ti MNOGO, MNOGO vremena. Na savladavanje anta utrošićeš tek par sati.
2. Kad savladaš ant, lakše ćeš da "svariš" i potpisivanje apleta

Što se tiče pitanja oko arhive i putanje:

Hoće da radi i ovako i onako. Ako ti je applet u nekom package-u onda treba da napišeš (na primer)
Code:

class=com.tvojdomen.tvojprojekat.GlavnApplet.class

A pri tome applet treba da bude u tom folderu ! Dakle, da napraviš takvu strukturu foldera.

Zašto jar ? Da korisnik ne bi dovlačio jedu po jednu klasu HTTP protokolom, već da dovuče gomilu klasa (zipovanih) odjenom. I ne samo klasa već i ostalih resursa (slike na primer ili neki drugi fajlovi). Inače, kad se klase već dovuku, onda se preformanse izvođenja ne razlikuju.


ja bi radje preporucio maven. Zbog lakog dodavanja biblioteka i vece automatizacije build procesa

 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security07.10.2008. u 07:17 - pre 189 meseci
@Java Beograd

Potpisao sam ga. Sad mi je jasno zasto jar...i cela priča sa paketima i pakovanjem, hvala.

Naravno da ću se pozabaviti mravom ;)
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security08.10.2008. u 11:03 - pre 189 meseci
Dobar je mrav, svidja mi se. Napravio sam ovakav build.xml

Code:

<project name="UmpirskyUploader" default="dist" basedir=".">
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="bin"/>
  <property name="dist"  location="bin"/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile" description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/release"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/release/UmpirskyUploader-${DSTAMP}.jar" basedir="${build}"/>
  </target>
    <!-- Copy static files -->
  <copy file="${src}/www/index.html" todir="${dist}/release"/>
  <copy file="${src}/www/callback.js" todir="${dist}/release"/>

    <!-- Sign jar -->
  <signjar jar="${dist}/release/UmpirskyUploader-${DSTAMP}.jar" alias="umpirsky" storepass="*****"/>

  <target name="clean" description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>


Sve lepo radi, kompajlira, kopira, jaruje....ali nece da potpise jar fajl.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10255 Profil

icon Re: Java apleti i security08.10.2008. u 12:31 - pre 189 meseci
Možda sam nešto prevideo, ali koliko vidim ti ni ne pozivaš potpisivanje.
U project tagu se kaže da treba startovati dist
U dist se kaže da prtehodno treba uraditi compile
U compile se kaže da prethodno treba uraditi init

Ne vidim odakle ti to pozivaš potpisivanje, a koliko vidim ni clean ti ne radi.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security08.10.2008. u 12:45 - pre 189 meseci
Pazi, jesam apsolutni početnik...ali ovo kompajliranje definitivno radi, kao i jarovanje, e sad, za čišćenje me za sad i nije briga.

Ovo:

Code:

<signjar jar="${dist}/release/UmpirskyUploader-${DSTAMP}.jar" alias="umpirsky" storepass="*****"/>


bi trebalo da ga potpiše...

Ovako ja to radim ručno:
Code:

keytool -genkey -alias umpirsky
keytool -export -alias umpirsky -rfc -file cert
jarsigner {path}file.jar cert




 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10255 Profil

icon Re: Java apleti i security08.10.2008. u 14:16 - pre 189 meseci
Ma nije poenta da li te briga ili ne.
ant radi tako da jedna "procedura" poziva drugu. U ovom tvom ant fajlu nigde se ne poziva potpisivanje i clean.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security08.10.2008. u 14:42 - pre 189 meseci
Hm...da, da, zato kad pokrenem ant po drugi put ok kaze da neki zip poziva sam sebe..i onda ja obrisem generisani jar i on opet radi.

Kako si ustanovio da ne radi clean?
Ako mozes da na brzinu izmenis build.xml, kako od prilike treba da izgleda...valjda ce mi tada biti jasnije...bio bih ti veoma zahvalan.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10255 Profil

icon Re: Java apleti i security08.10.2008. u 14:58 - pre 189 meseci
Evo ti slikovito kako se odvijaju operacije. Očigledno je da clean neće biti pozvan, a ono oko potpisivanja "visi".






Evo kako bi to trbalo, ali nisam siguran pošto pišem "napamet". Ti proveri da li radi.

Code:

<project name="UmpirskyUploader" default="clean" basedir=".">
    <!-- set global properties for this build -->
    <property name="src" location="src"/>
    <property name="build" location="bin"/>
    <property name="dist"     location="bin"/>

    <target name="init">
        <!-- Create    the time stamp -->
        <tstamp/>
    
        <!-- Create    the build directory structure used by compile -->
        <mkdir dir="${build}"/>
    </target>

    <target name="compile" depends="init"    description="compile the source    " >
        <!-- Compile the java code from ${src} into    ${build} -->
        <javac srcdir="${src}" destdir="${build}"/>
    </target>

    <target name="dist" depends="compile"    description="generate the distribution"    >
        <!-- Create    the distribution directory -->
        <mkdir dir="${dist}/release"/>

        <!-- Put everything    in ${build} into the MyProject-${DSTAMP}.jar file -->
        <jar jarfile="${dist}/release/UmpirskyUploader-${DSTAMP}.jar" basedir="${build}"/>

        <!-- Copy static files -->
        <copy    file="${src}/www/index.html" todir="${dist}/release"/>
        <copy    file="${src}/www/callback.js" todir="${dist}/release"/>

        <!-- DO    OVDE SI    SVE LEPO SMESTIO NA ODGOVARAJUCE FOLDERE, JOS DA POZOVES JAR-OVANJE TJ.    ARHIVIRANJE -->


        <!-- KAD NAPRAVI[ JAR ONDA MOZES I DA GA POTPISES-->
        <!-- Sign jar -->
        <signjar jar="${dist}/release/UmpirskyUploader-${DSTAMP}.jar"    alias="umpirsky" storepass="*****"/>

    </target>

    <target name="clean" depends="dist" description="clean up" >
        <!-- Delete    the ${build} and ${dist} directory trees -->
        <delete dir="${build}"/>
        <delete dir="${dist}"/>
    </target>
</project>

OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Prikačeni fajlovi
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security09.10.2008. u 07:10 - pre 189 meseci
Hvala puno, sad mi je jasno sa slike....nisam obratio pažnju na default, a nisam izgleda ni dobro razumeo šta je depends...nisam dovoljno čitao.

Sinoć sam probao ovo:

Code:

<project name="UmpirskyUploader" default="dist" basedir=".">
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="bin"/>
  <property name="dist"  location="release"/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile" description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/UmpirskyUploader-${DSTAMP}.jar" basedir="${build}"/>
  </target>
    <!-- Copy static files -->
  <copy file="${src}/www/index.html" todir="${dist}"/>
  <copy file="${src}/www/callback.js" todir="${dist}"/>

    <!-- Sign jar -->
    <target name="sign-jar" depends="dist" description="signs jar file">
        <signjar jar="${dist}/UmpirskyUploader-${DSTAMP}.jar" alias="umpirsky" storepass="019808454" verbose="true"/>
    </target>

  <target name="clean" description="clean up" >
    <!-- Delete the ${build} directory trees -->
    <delete dir="${build}"/>
  </target>
</project>



Naravno, potpisivanje nije radilo...sada mi je jasno i zašto.
Hvala još jednom.
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security10.10.2008. u 09:44 - pre 189 meseci
Ovo sad radi sasvim fino:

Code:

<project name="UmpirskyUploader" default="clean" basedir=".">
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="bin"/>
  <property name="dist"  location="release"/>

  <target name="init">
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile" description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}"/>

    <!-- Put everything in ${build} into the MyProject.jar file -->
    <jar jarfile="${dist}/UmpirskyUploader.jar" basedir="${build}"/>
  </target>
    <!-- Copy static files -->
  <copy file="${src}/www/index.html" todir="${dist}"/>
  <copy file="${src}/www/callback.js" todir="${dist}"/>

    <!-- Sign jar -->
    <target name="sign-jar" depends="dist" description="signs jar file">
        <signjar jar="${dist}/UmpirskyUploader.jar" alias="umpirsky" storepass="******"/>
    </target>

  <target name="clean" depends="sign-jar" description="clean up">
    <!-- Delete the ${build} directory trees -->
    <!-- <delete dir="${build}"/> -->
  </target>
</project>


Clean sam iskomentarisao, da mi se eclips ne bi bunio, ali i to radi.

Samo sad imam drugi problem. Ovaj applet mi je potpisan...i radi, ali kad pozovem metod appleta iz javascripta, javlja se :

Code:

uncaught exception: Error calling method on NPObject! [plugin exception: java.security.AccessControlException: access denied (java.io.FilePermission C:\Users\Sale\AppData\Roaming\Microsoft\Windows\Recent read)].


(ovo je iz firebug konzole).

I sad ja guglam da nadjem resenje, i vidm da ima takvih problema http://www.velocityreviews.com...unch-a-signed-java-applet.html

I onda pocinje neka prica o potpisanom javascript kodu, pakovanje javascripta u jar...zna li neko nesto vise o tome?
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security10.10.2008. u 09:53 - pre 189 meseci
Izgleda mora novi thread koji osluskuje da li je javascrip[t pozvan da se pokrene...to narusava performanse verovatno..a i malo komplikuje implementaciju.

http://www.snowbound.com/tech_tips/g_security_applet_java.html

Probacemo...
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
*.dynamic.sbb.rs.

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security11.10.2008. u 00:13 - pre 189 meseci
Metod apleta zaista možete pozvati iz javascripta ovako :

Code:

document.appletName.methodName();


čak i ako je aplet potpisan, ali metod mora da izgleda ovako :

Code:

public void methodName() {
        AccessController.doPrivileged(new PrivilegedAction<Object>() {
            public Object run() {
                // do something
                return null;
            }
        });
    }


Jedini problem je što iz nekog meni nepoznatog razloga, pri prvom pozivu kašnjenje je oko 4-5 sekundi, dok je kod svakog narednog momentalan odziv.

Da li neko zna u čemu je problem i kako može biti rešen?
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security14.10.2008. u 13:25 - pre 189 meseci
Izgleda da je problem performansi izazvan JFileChooser-om. On troši vreme...

Napravio sam browse link na strani, kad se klikne na njega, pozovem metodu apleta koja kreira JFileChooser:

Code:

private ArrayList<File> browseHandler() {
            this.fileChooser = new JFileChooser();
            // neka inicijalizacija
            int action = this.fileChooser.showOpenDialog(this);
            // i tako dalje...
}


Dakle, tu se troši vreme. Da bih ovo izbegao, mislio sam da ovaj deo oko kreiranja i inicijalizacije prebacim u init() metodu, međutim, kada sam to učinio, ubrzanje nisam dobio (bar mi se tako čini), ali sam dobio to da ne mogu da selektujem više fajlova od jednom sa "ctrl + a" a kada selektujem sa ctrl + click, dobijem selekciju u text field-u choosera, ali se ne vidi da su ikonice fajlova selektovane.

Interesantno je takođe, da je sve ovo sporo i nestabilno (koči se kad kliknem van JFileChoosera, pozadina se ne repaintuje kad pomeram JFileChooser...) pod win XP, a na visti radi sasvim fino.
 
Odgovor na temu

gajo2
Budapest

Član broj: 62614
Poruke: 518
*.i-rose.si.

Sajt: b.flyingoranges.com


+117 Profil

icon Re: Java apleti i security14.10.2008. u 14:42 - pre 189 meseci
JFileChooseru treba mnogo vremena da se inicijalizuje, ali posle toga radi bez problema. Ne znam da li postoji neko bolje resenje, pogledaj na googlo mozda je neko napravio neki custom component, mada sumnjam...
 
Odgovor na temu

umpirsky
Saša Stamenković
Niš

Član broj: 160299
Poruke: 65
212.200.237.*

Sajt: umpirsky.com


Profil

icon Re: Java apleti i security14.10.2008. u 14:53 - pre 189 meseci
Samo kad bi mogo da ga inicijalizujem u init(), tu bih uštedeo, ali kao što sam napisao...onda imam druge probleme.
 
Odgovor na temu

gajo2
Budapest

Član broj: 62614
Poruke: 518
*.i-rose.si.

Sajt: b.flyingoranges.com


+117 Profil

icon Re: Java apleti i security14.10.2008. u 15:02 - pre 189 meseci
Nisam probao, ali mozda bi mogao da prebacis tu inicijalizaciju u neki thread, pa ga pozoves onda kada se i applet inicijalizuje. Pa se nadaj da korisnik nece odmah u prvih 5 sekundi da klikne na Browse (ili sakrij dugme )
 
Odgovor na temu

[es] :: Java :: Java apleti i security

Strane: 1 2

[ Pregleda: 5082 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.