Voiko apletti hakea muilta sivuilta tietoja ? Esim. voinko laittaa aplettiin tekstikentän, johon käyttäjä syöttää hakusanan ja apletti hakee googlesta googlen hakutulokset listaksi tähän aplettiin. Eli apletin pitäisi lähettää googleen requesti..?
Entä miten tehdään aplettiin linkki -nappi, jota painamalla aukee uusi selainsivu tietyssä osoitteessa?
Entä miten tehdään aplettiin linkki -nappi, jota painamalla aukee uusi selainsivu tietyssä osoitteessa?
Vastaukset 3
Vanhimmat
...osaa tehdä mitä sä laitat sen tekemään, kuten lukea tietoja kovalevyltä, ottaa socketti toiseen osoitteeseen ja tehdä niitä requesteja Googleen jne.. Ongelma vaan on se, että selain, johon appletti ladataan, rajoittaa appletin tekemisiä ja selainten perusasetuksilla et voi tehdä muuta kuin ottaa yhteyden takaisin siihen osoitteeseen josta apletti ladattiin.
Ton kysymäsi rajoituksen voi kiertää siten, että appletti ottaa Googlen sijasta yhteyden takaisin palvelimeesi (siihen josta se ladattiin) ja siellä oleva Java Servlettisi (pyörii Tomcat-palvelimellasi) ottaa appletin puolesta yhteyden Googleen ja palauttaa tiedot appletille. Hieman hönöä kyllä, mutta minkäs teet, kun nykyisten käyttisten turvallisuusarkitehtuuri on täyttä paskaa ja Java pelottaa niitä.
Tiedoksi: Appletista voi helposti tehdä myös ns. StandAlone-sovelluksen (toimii kumpana tahansa) ja silloin se voidaan ladata ilman selainta dynaamisesti verkon läpi asiakkaan koneeseen ilman harmillisia selaimen turvallisuusasetuksia. Silloin asiakkaan koneessa pitää tosin olla pieni muutaman kilotavun JarRunner-ohjelma, joka hoitaa lataamisen selaimen puolesta. Niin ja silloin sinun tehtäväsi on huolehtia sovelluksen luku-, kirjoitus- ja verkko-oikeuksista tai muuten se pyörii täysillä ajo-oikeuksilla...
Ajo-oikeuksien rajoitus tehdään tyyliin:
- luodaan oma sertifikaatti (KeyTool)
- sovellus allekirjoitetaan digitaalisesti sertifikaatilla (KeyTool)
- sertifikaatti exportoidaan/importoidaan asiakkaan koneeseen (KeyTool) ja määritetään allekirjoitusta vastaavat ajo-oikeudet (policyTool)
- asiakkaan java.securityManager kytketään päälle ja pyydetään sitä verfioimaan allekirjoitus latauksen yhteydessä ja huolehtimaan ajo-oikeuksien noudattamisesta (throws SecurityException).
-Jonttu-
Hei Jonttu,
voitko kertoa lyhyesti enemmän tuosta StandAlone hommasta? Jos haluan antaa kavereilleni jonkun pienen Java-ohjelman ajettavaksi kaikilla oikeuksilla (valokuvien lataus kovalevyltä serverille), mitä minun pitäisi tehdä että he saisivat helposti asennettua tuollaisen JarRunner valmiuden? Onko olemassa mitään helppoa tapaa levittää ohjelmaani tietokoneista tietämättömille?
Käytännössä homma on melko simppeliä, kun sen JarRunnerin voi ladata Sun Microsystems:n sivulta ja customoida sitten omiin tarpeisiin, mikäli tarvetta: http://java.sun.com/docs/books/tutorial/jar/api/index.html
Eli, käännät kyseiset filut koneellesi ja kokeilet ekaks tsydeemin toimintaa koneellasi (vaatii Javan ja web-palvelimen). Muista laittaa classpath-muuttuja osoittamaan JarRunnerin kansioon ja käynnistä komennolla:
java JarRunner http://www.xxx.yyy/TargetApp.jar
Tuosta samasta http-osoitteesta löytyy lisäinfoa siitä miten sovellus käynnistetään java.SecurityManager:n kanssa ja miten komentoriviin lisätään myös mahdollinen proxy-palvelin portteineen. Huomaa kuitenkin, että toi SecurityManagerin käyttö edellyttää myös sen JarRunner-paketin allekirjoittamista, koska manageri on kytkettynä päälle.
Tiedoksi vielä, että komentoriviparametrien välittäminen ladatulle ohjelmalle onnistuu myös melko helposti. Ohjeita asiaan löytyy varmaan tuolta sivulta, mutta hätätapauksessa voin kaivaa lisää tietoja asiasta jostain arkistoistani (en nyt jaksa).
-Jonttu-