Avatar billede sorensen_dk Nybegynder
04. november 2004 - 23:19 Der er 9 kommentarer og
1 løsning

java.security.AccessControlException: access denied

Hej, jeg får følgende fejl når jeg forsøger at lægge min applet op på en server.

appletten bliver lagt op således at den ligger på samme host som MySql serveren.

jeg har implementeret mysql driveren i min manifest fil.

det hele virker så længe det ikke kører over http... hvad kan der være galt og hvordan kan jeg rette det?

Exception: Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)

** BEGIN NESTED EXCEPTION **

java.security.AccessControlException
MESSAGE: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)

STACKTRACE:

java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
    at java.security.AccessController.checkPermission(AccessController.java:401)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1026)
    at java.net.Socket.connect(Socket.java:446)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:124)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:124)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1779)
    at com.mysql.jdbc.Connection.<init>(Connection.java:450)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at Forespoergsel.udvaelg(Forespoergsel.java:59)
    at DBHaandtering.hentAlleHundeProfiler(DBHaandtering.java:270)
    at DomaeneKontrol.hentAlleHundeProfiler(DomaeneKontrol.java:120)
    at LytOgKontrol.hentAlleHundeprofiler(LytOgKontrol.java:41)
    at HovedMenu.initierHundeListe(HovedMenu.java:226)
    at HovedMenu.<init>(HovedMenu.java:30)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:308)
    at java.lang.Class.newInstance(Class.java:261)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:617)
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1946)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:546)
    at sun.applet.AppletPanel.run(AppletPanel.java:298)
    at java.lang.Thread.run(Thread.java:552)


** END NESTED EXCEPTION **


java.lang.NullPointerException
    at DBHaandtering.hentAlleHundeProfiler(DBHaandtering.java:273)
    at DomaeneKontrol.hentAlleHundeProfiler(DomaeneKontrol.java:120)
    at LytOgKontrol.hentAlleHundeprofiler(LytOgKontrol.java:41)
    at HovedMenu.initierHundeListe(HovedMenu.java:226)
    at HovedMenu.<init>(HovedMenu.java:30)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:308)
    at java.lang.Class.newInstance(Class.java:261)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:617)
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1946)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:546)
    at sun.applet.AppletPanel.run(AppletPanel.java:298)
    at java.lang.Thread.run(Thread.java:552)
Avatar billede sorensen_dk Nybegynder
04. november 2004 - 23:23 #1
der ligger også en java.policy.applet fil ved siden af applet.jar med indholdet :
grant {
  permission java.security.AllPermission;
};

jeg ved ikke om det hjælper overhovedet, og den er ikke implementeret i min manifest fil, jeg har prøvet at putte den ind efter mysql driveren i classpath men det hjalp ikke noget
Avatar billede arne_v Ekspert
05. november 2004 - 07:40 #2
applet kører på client

tilsyneladende connecter JDBC koden til jdbc:mysql://localhost/dindb

og der kører ikke en MySQL på client PC

og appletten har ikke lov til at tilgå en MySQL på client PC

og applet bruger naryrligvis en policy fil på client PC ikke en på server
(ellers var der jo ikke meget security i det)
Avatar billede sorensen_dk Nybegynder
05. november 2004 - 09:36 #3
ok.. dvs at jeg skal ændre localhost til serverens ip, men skal jeg give appletten nogle særlige rettigheder for at den så vil oprette forbindelse til databasen?
og hvordan kan jeg evt. gøre det?
Avatar billede arne_v Ekspert
05. november 2004 - 09:55 #4
Hvis MySQL databasen og web serveren er samme IP så behøver du ikke give appletten specielle privs.
Avatar billede arne_v Ekspert
05. november 2004 - 09:56 #5
Hvis du skal give en applet specielle privs, så skal den i jar fil, jar filen
skal signes og der skal ligges noget ind i policy på client PC.
Avatar billede arne_v Ekspert
05. november 2004 - 09:57 #6
PS: Vær opmærksom på at applets kan downloades og decompiles og at username/password
brugt til at connecte til databasen kan afsløres. Derfor skal disse ikke have
for meget adgang.
Avatar billede sorensen_dk Nybegynder
08. november 2004 - 13:02 #7
hmm.. efter nogle overvejelser er jeg hoppe fra appletten og kører det i en JFrame i stedet jeg kunne ikke få appletten til at virke kombineret med sikkerhedshensyn er en applet ikke den rigtige løsning.. men lig et svar så får du pointene.
Avatar billede arne_v Ekspert
08. november 2004 - 13:09 #8
ok
Avatar billede arne_v Ekspert
21. november 2004 - 20:30 #9
Så mangler du bare at acceptere
Avatar billede sorensen_dk Nybegynder
21. november 2004 - 22:00 #10
sorry det tog så lang tid :)
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