[Java] AccessControlException

Pagina: 1
Acties:

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Ik heb een applet geschreven in de JBuilder dat verbinding moet maken met een server via een socket. In de JBuilder werkt dit perfect. Maar als ik de applet via een html-bestand aanroep krijg ik de volgende foutmelding:

exeption: java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.10.80:8889 connect,resolve)

Ik heb al gezocht en ben het volgende
topic tegengekomen.

Aan de hand hiervan heb ik het volgende stukje code in m'n init() gezet.
code:
1
2
SecurityManager s = System.getSecurityManager();
System.setSecurityManager(null);

Maar het helpt niet.
Op welke maniet is dit anders nog op te lossen??

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Mocht je wanhopig zijn, dan kan je ook je policy bestand aanpassen dunkt me..

Verwijderd

Op woensdag 19 juni 2002 11:06 schreef noot101 het volgende:
code:
1
2
SecurityManager s = System.getSecurityManager();
System.setSecurityManager(null);

Maar het helpt niet.
Op welke maniet is dit anders nog op te lossen??
Ik heb weinig verstand van Java, maar dit dan ?!
code:
1
2
SecurityManager s = System.getSecurityManager();
s.setSecurityManager(null);

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Op woensdag 19 juni 2002 11:08 schreef Dash2in1 het volgende:
Mocht je wanhopig zijn, dan kan je ook je policy bestand aanpassen dunkt me..
Dit heb ik al op meerdere plaatsen gelezen, maar ik heb geen flauw idee waar ik een policy bestand moet vinden.
Kun je een tip geven?

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Op woensdag 19 juni 2002 11:10 schreef noot101 het volgende:
[..]
Dit heb ik al op meerdere plaatsen gelezen, maar ik heb geen flauw idee waar ik een policy bestand moet vinden.
Kun je een tip geven?
Hier (JDK1.3.1 op Win NT) kan ik een java.policy bestand ontdekken in de jre/lib/security directory. In de bin directory van de JDK staat ook een policytool.exe, iets wat ongetwijfeld bedoeld is om policies mee te editten.

With the light in our eyes, it's hard to see.


Verwijderd

komt die applet wel van 192.168.10.80 af? Anders mag je er niet naar connecten... (of je moet je applet sign-en) en hopen dat de user je de permissies geeft

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
zoek naar java.policy

edit:

oops, was niet goed

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Ik heb de java.policy gevonden en hier heb ik de volgende regel in gezet:

permission java.net.SocketPermission "192.168.10.80:8889-", "connect, resolve";

Na opnieuw compilen krijg ik niet meer de error die ik eerst had, maar nu krijg ik een NullPointerException. Die zal er vast wel iets mee te maken hebben, want anders zou het in de JBuilder ook niet werken.

ps. Manier van TizWatt werkt niet. Dit geeft de foutmelding: method setSecurityManager(null) not found

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Zet de applet op dezelfde server als dat het connectie mee moet maken. Het zou nogal wat zijn als een applet zomaar met iedereen een connectie zou kunnen opentrekken.

Om diezelfde reden kan je ook niet de securitymanager gaan uitschakelen in je applet. Ut zou wat zijn, gewoon even de hele sandbox slopen en dan gezellig spywaren en alles opsturen naar ome Gator :P

Dat het in JBuilder wel werkt ligt eraan dat JBuilder je eigen applet 'trusted' maakt. Dat wil zeggen, de Applet mag eigenlijk alles wat SUN verboden heeft :P Denk hierbij aan file input/output, netwerk connecties ed.

Maar mocht het niet mogelijk zijn om de applet op dezelfde server te zetten als degene waar je de socket naar nodig hebt, dan zul je de client moeten vragen z'n policy file te editten of jouwe te accepteren. Hierop zoeken bij http://search.java.sun.com moet de oplossing bieden :)
Dit zou je netjes kunnen doen door de SecurityException af te vangen en dan een melding te geven :)

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
bedankt voor alle info. jullie oplossingen hebben gewerkt. Ik heb de applet nu op dezelfde pc staan als waar de server draait.

Maar nu zit ik met nog een probleem:
Als ik nu de pagina opvraag op een andere pc dan wordt wel gewoon de pagina geladen en voor het applet krijg ik dan de foutmelding:
naamapplet can't be instantiated

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op woensdag 19 juni 2002 13:57 schreef noot101 het volgende:
bedankt voor alle info. jullie oplossingen hebben gewerkt. Ik heb de applet nu op dezelfde pc staan als waar de server draait.

Maar nu zit ik met nog een probleem:
Als ik nu de pagina opvraag op een andere pc dan wordt wel gewoon de pagina geladen en voor het applet krijg ik dan de foutmelding:
naamapplet can't be instantiated
Laat me raden. Je maakt gebruik van JDBC en een Jarfile met de driver :?

MaW meer info!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Eh, ik weet niet welke Jar-file je bedoelt. Maar ik heb het geheel gemaakt in de JBuilder. Deze zal dan vast wel iets van zo'n Jar-file meenemen denk ik.
Wat ik ondertussen al wel gevonden heb is dat net voordat ik die foutmelding van het instantieren krijg, het volgende snel door de statusbalk van IE schiet:

Bezig met het openen van Java-klasse: http://192.168.10.80/javax/swing/JPanel.class

Dit staat natuurlijk niet op de server waarvandaan ik het applet draait. Nu heb ik op m'n eigen pc gezocht naar dit bestand en dat was niet te vinden. Het zal dan dus wel in een of anderen Jar-file te vinden zijn of zo.
wel heb ik het bestand: 'javax.swing.JPanel.pme' gevonden.
Is het voldoende als ik deze in de root zet bij m'n applet of moet ik toch nog iets anders doen?

Hopelijk kun je met deze info iets. Alvast bedankt

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Je hebt het zeker met <APPLET> tags gedaan :? Want swing zit nog niet in de classes van de MS JVM 1.1 :)

Hups, ga daar eens op zoeken, of geef eens wat meer info:

-JRE versie
-Wordt de MS of de Sun JRE gebruikt
-Hoe ziet je HTML eruit :?
-Gebruik je swing of AWT en enz.

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Op woensdag 19 juni 2002 14:50 schreef Glimi het volgende:
Je hebt het zeker met <APPLET> tags gedaan :? Want swing zit nog niet in de classes van de MS JVM 1.1 :)

-JRE versie
-Wordt de MS of de Sun JRE gebruikt
-Hoe ziet je HTML eruit :?
-Gebruik je swing of AWT en enz.
Je hebt gelijk ik heb met <applet>-tags gewerkt.
En ik had al wel zo'n vermoeden dat het zat in de versie van de Virual Machine. Want op de pc waar het wel werkt staat JDK 1.3.1 geinstalleerd en deze wordt ook door IE gebruikt. De andere pc gebruikt de VM van MS, welke swing dus nog niet ondersteund.

Ik zal eens kijken of ik het met een simpele Windows-update kan oplossen.....

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op woensdag 19 juni 2002 15:45 schreef noot101 het volgende:
Ik zal eens kijken of ik het met een simpele Windows-update kan oplossen.....
Bespaar je de moeite ;) ga naar http://java.sun.com en download gewoon 1.4
[edit]En gebruik de HTML converter van Sun!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Daar heb je wel gelijk in. En die heb ik hier ook al wel. Maar het is de bedoeling dat het straks vanaf verschillende pc's gaat werken en voor de meeste mensen is het makkelijker om een Windows-update uit te voeren (als dit helpt) dan om de complete JDK te downloaden.

Maar als de win-update niet help zit er natuurlijk niks anders op....
Bedankt :)
Pagina: 1