Avatar billede madah Nybegynder
25. juni 2003 - 11:30 Der er 17 kommentarer og
1 løsning

Java Applet + conection til MySQL + Permission

Vi har et problem.

Vi har lavet en applet, som connecter til en MySQL database. Vi tror at den faktisk connecter men der kommer en fejl.

"Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.util.PropertyPermission file.encoding read)"

Det skal siges at det er den samme fejlmeddelse der kommer om man køre det på selve serveren eller på lokalnettet eller internettet.

Hvis man køre programmet som application så virker det fint både indsæt og hive data ud også over lokalnettet.

Med hensyn til løsningen så er vi ikke sarte for at lække på sikkerheden da vi er lidt i tidspres.

Programmer:
Apache 1.3.27
MySQL 4.0.13
mysql-connector-java-3.0.8-stable-bin.jar
Java v 1.4.1_03 SDK
Windows 2000 SP3

Koden og et eksempel kan hentes på:
www.skolesystem.dk/jetamb
Avatar billede arne_v Ekspert
25. juni 2003 - 11:58 #1
Din applet forsøger at læse en property og det har appletten ikke
default adgang til.

Det er ikke sikkert at det er din kode, det kan også være MySQL JDBC
driveren.

Jeg kan se 2 løsninger:

1)  Giv appleten priviligie til at læse properties.

2)  Omstrukturer fra:

    applet--database

    til:

    applet--JSP/servlet--database
Avatar billede arne_v Ekspert
25. juni 2003 - 12:08 #2
Den kode der genererer fejlen vil se ud som:

System.getProperty("file.encoding")

og bruges til at bestemme det karakter sæt man default kører med.
Avatar billede madah Nybegynder
25. juni 2003 - 12:13 #3
Ok men med databasen virker det fint. Jeg kan ikke forestille mig det er JDBC forbindelsen da det jo som application virker fint. Jeg vil derfor foretrække din løsning 1 med at give privilegierne dertil. Men en løsning på dette ville være meget rart. Dokumentationen til at ændre de Java security policies er ikke ret lette at forstå. Så jeg ved ikke helt hvordan det skal gøres.
Avatar billede arne_v Ekspert
25. juni 2003 - 12:20 #4
En applikation har default alle priviligier inklusive adgang til
at læse properties.

En applet har default meget få priviligier.
Avatar billede arne_v Ekspert
25. juni 2003 - 12:20 #5
Med hensyn til at ændre permissions.

Hvilken JVM bruger du ?
Avatar billede arne_v Ekspert
25. juni 2003 - 12:21 #6
NB: Er du iøvrigt opmærksom på muligheden af at folk downloader din
applet, decompiler den og læser brugernavn/password til din MySQL
database ?
Avatar billede arne_v Ekspert
25. juni 2003 - 12:22 #7
(det problem løser #2 også)
Avatar billede madah Nybegynder
25. juni 2003 - 12:24 #8
Jo jo men det med kode er som sagt ikke noget problem, da det ikke er vigtigt og den vil ikke kunne hentes af alle. Omkring JVM bruger vi JRE 1.4.1 på de maskiner vi har prøvet med indtil nu.
Avatar billede madah Nybegynder
25. juni 2003 - 12:36 #9
er enig med at løsning 2 er en god ide men vi er det svære bundet til at det skal forgår på igennem den java connecter.
men er der en nem måde at løse op for de privilegere (har læst en del om det men forstår det simpelhen ikke) ved godt det ikke er så sikkeret men det køre på en dummy server så der ikke rigtig noget på den.
Avatar billede madah Nybegynder
25. juni 2003 - 12:38 #10
ups kom til at give dig point har egentlig ikke fået helt det svar jeg godt kunne tænke mig.
Avatar billede arne_v Ekspert
25. juni 2003 - 12:42 #11
Hvis jeres setup er sådan at det ikke er noget problem, så er det
ike noget problem.

Jeg skulle bare lige sikre mig at du var klar over det.
Avatar billede arne_v Ekspert
25. juni 2003 - 12:43 #12
Med alle brugere på 1.4.1 så burde det være til at gå til.

Jeg kan godt prøve at strikke en vejledning sammen.
Avatar billede arne_v Ekspert
25. juni 2003 - 12:44 #13
Med hensyn til point så kan vi enten fortsætte til du har fået løst dit
problem eller så laver jeg bare en point overførsel til dig med
de 30 point.
Avatar billede madah Nybegynder
25. juni 2003 - 12:47 #14
det er i ordent arne du må med glæde få 60 mere hvis du laver en god vejledning.
Avatar billede arne_v Ekspert
25. juni 2003 - 12:54 #15
OK.

Jeg kan godt finde links nu.

Men hvis jeg skal lave en rigtig vejledning, som jeg selv har testet, så
bliver det først i aften.
Avatar billede madah Nybegynder
25. juni 2003 - 12:56 #16
Kanont. Jeg vil meget gerne have en fornuftig vejledning så hvis du vil lave det til i aften er det helt perfekt.
Avatar billede arne_v Ekspert
25. juni 2003 - 19:49 #17
Lad os først se om vi kan undgå at kaste os ud i det helt store
med signing etc..

Prøv og editer filen:
  C:\Program Files\Java\j2re1.4.0_03\lib\security\java.policy

[erstat stien med din Java version - vær helt sikker på at det er den version
som din browser bruger du retter i]

Nederst i file - lige før det afsluttende "};" sætter du en linie ind med:

        permission java.util.PropertyPermission "file.encoding", "read";

Så lukker du alle instanser af browseren ned og prøver igen.

Nu bør det faktisk virke.

Det er muligt at det alligevel bliver nødvendigt at signe jar fil
og grante specielle priviligier, men den her rettelser er både
dem at lave og helt harmløs.
Avatar billede madah Nybegynder
25. juni 2003 - 20:11 #18
Jamen mange tak. Det var præcis det der manglede. Hvis du lige smider et svar her får du noget ekstra. http://www.eksperten.dk/spm/369272
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester