Avatar billede thomaz Nybegynder
29. maj 2001 - 12:57 Der er 10 kommentarer og
3 løsninger

Security Managers \'1

Har et generet spørgsmål vedr. security managers. Hvordan kan jeg, når jeg har installeret min security manager, sørge for at klienter der tilgår min server kun har adgang til et bestem direktorat på min server. Har prøvet men før en bl.a. følgende fejl SecurityException Access to file: c:\\jdk\\jre\\rt.jar

Hvordan opsætter jeg en sti i min security policy ??
Avatar billede agermose Nybegynder
29. maj 2001 - 13:06 #1
http://java.sun.com/docs/books/tutorial/security1.2/

generelt er det nok nemmest at bruge det tilhørende policytool, som følgermed java2

Avatar billede rickypriv Nybegynder
29. maj 2001 - 13:30 #2
Yeb. policy tool findes i jdk\'s \\bin direktory.
Husk at .java.policy files skal iigge der hvor den siger at den ikke kan finde filen, når du starter den op..
som reges c:\\windows\\
Avatar billede logical Nybegynder
29. maj 2001 - 16:56 #3
Nu kan der ligge mange ting i dit spørgsmål, men istedet for at lade klienter rode direkte på servermaskinens bibliotek, kan du lade det ske indirekte gennem et evt. serverprogram.

Hvis du er i et appletscenario, og vil give io permissions så er det permissions til din javakode på klientmaskinen, og ikke på serveren, så.
Avatar billede thomaz Nybegynder
29. maj 2001 - 17:03 #4
Lad mig lig opsumere. Er det ikke rigtigt at det er på serveren jeg skal bestemmet om klienterne kan tilgå et bestemt direktorat. Selvfølgelig kan jeg bestemme om klientern måtilgå en bestemt server, men kan jeg også bestemm om de via deres policy file må tilgå et bestemt direktorat ???, f.eks. har jeg en grant permission til en http server hvor jeg laver dynamisk classloading.

Det jeg egentlig mangler er hvordan jeg skal skrive filen på serveren når den startes.
Avatar billede agermose Nybegynder
30. maj 2001 - 10:01 #5
de permissions du sætter på serveren gælder kode ekseveret på serveren. Hvis det er et C/S setup du bruger, skal clienten kontrolleres gennem f.eks. JAAS. Hvis dine klienter (koden) er signet, kan de læse certifikatet og sende det til serveren, som på baggrund af dette kan kigge i policyfilen på serveren. Umiddelbart mener jeg dog det er noget du selv skal kode dig ud af.

policy filer gennem std. java er et spørgsmål om at identificere hvor KODEN kommer fra, og så afgøre hvilke rettigheder der gælder.

JAAS derimod er spørgsmålet om, HVEM der KØRE koden, og hvilke rettigheder der så følger heraf. Det lyder lidt som om det er det du har brug for?
Avatar billede logical Nybegynder
30. maj 2001 - 10:29 #6
thomaz >> Er det du mener, at dine klienter skal kunne tilgå en bestemt URL på din server, som f.eks. http://myserver.com/dynamic/classes hvor der ligger yderligere klasser.

Er dine klienter applets (til 1.1 eller 1.2 platform), og bliver de i forvejen downloaded fra myserver.com ?
Avatar billede thomaz Nybegynder
30. maj 2001 - 20:54 #7
Logical>> lige netop. Mine klienter tilgår en bestemt URL. På denne server har jeg diverse klasse liggende. Klienterne skal kun have adgang til det direktorat klasserne ligger i. Det skal ikke være muligt for dem at rode rund på harddisken på min http server.
Avatar billede logical Nybegynder
30. maj 2001 - 21:28 #8
Det kan de heller ikke. Det er webserveren eller http-listeneren (som sådan en hedder idag), der står for at lave mapningen. Din opsætning af den siger bare, at man kun kan tilgå en bestemt url, alt andet fejler.

Jeg går ikke ud fra, du har andre servere stående, som dit program snakker med, f.eks. en RMI server, så det er ren webserver arkitektur. Hvis den er sat op til kun at kunne anvende en url, f.eks. /classes, så kan man ikke finde andet, og ligegyldigt hvad har man ikke ubegrænset adgang til serverens harddisk.
Avatar billede logical Nybegynder
30. maj 2001 - 21:31 #9
Og så skal du ikke bruge policy filer.
Avatar billede thomaz Nybegynder
30. maj 2001 - 21:50 #10
Lige til info så ligger min server på et LAN dvs. forskellige klienter skal tilgå denne via LAN\'et.(via IP) Selvfølgelig når jeg har optimeret min server skal en webserver laver mapningen, men ikke lige pt.
Avatar billede logical Nybegynder
30. maj 2001 - 22:08 #11
Jeg tror vi taler lidt forbi hinanden her :-)

Det kan godt være du har en IP, men en IP er ikke nok. Der bliver som regel nød til at være en server service kørende på en netværksport på maskinen, som kan tage imod requests. Sådan gør en webserver på port 80.

I de fleste styresystemer kan man mappe et serverdrev til et drev på sin maskine, men derved bliver netværket transparent for brugen, og det kunne lige så godt have været lokalt.

Du skriver selv, at dine klienter tilgår en bestemt url på en http server. Så har du allerede din server service kørende. Hvis dit spørgsmål går mere på at din applet kan se både http://myserver.com/dynamic/classes og http://myserver.com/static/url/or/something, så er det ikke noget du begrænser i policyfiler.

En anden ting..

Dine klienter skal hente yderligere klasser. Jeg har på fornemmelsen (efter at have set dine andre spørgsmål), at du ikke selv har skrevet en ClassLoader, og du måske derfor bare har misforstået noget omkring afviklingen af applets.

Hvis du har en applet (lad os kalde den A), som refererer til en anden klasse (lad os kalde den for B), så for at klasse B kan blive brugt i appletten korrekt, skal du bare ligge klasse A og B i samme bibliotek, og så sørger browseren for at hente klassen B efter behov.
Avatar billede thomaz Nybegynder
31. maj 2001 - 16:36 #12
logical>> nej jeg har ikke selv skrevt min classloader. Men jeg har altså selv skrevet en server der lytter på port 1024. Hver gang denne får et request starter den en tråde. Denne tråd søger så på HD efter den fil der er blevet requestet. Derefter outstreamer Serveren så filen så klieten kan downloade den. Min Filserver virker findt når jeg ikke har en securityManager installeret. 

Avatar billede logical Nybegynder
31. maj 2001 - 18:14 #13
Fint, så er der vel ikke noget problem. Jeg blev bare lidt forvirret over dine spørgsmål, og kunne ikke helt forstå hvormeget du havde forstået på forkant.

Jeg går ud fra, at du sender oplysninger om hvilken fil du vil have over, som f.eks. et filnavn. Bruger du så det (som et absolut stinavn) ?

F.eks. hvis de beder om at se \"C:\\\\autoexec.bat\", så åbner du en File med navnet, og læser den ?

For så vil jeg foreslå dig at arbejde relativt, så klienten kun sender f.eks. autoexec.bat, og så prefixer serveren med en bestemt lokation , f.eks. C:\\\\filserverFiles.

Ellers skal du have adgangskontrol på fil niveau i dit styresystem, hvis du f.eks. anvender Unix, kan du lave en bruger \"filserver\" i sin egen gruppe, så kan du begrænse den vej igennem.

Din server er formodentlig en normal applikation, og er derfor ikke bundet af en stram policy. Du kan lave FilePermissions til din server, og så bruge dem, til at udlukke visse biblioteker.

Er det i den retning, vi skal gå?
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