Sposoby tworzenia projektu
zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia
komputera użytkownika przed działaniem apletu.
Dr inż. Zofia Kruczkiewicz Programowanie aplikacji
internetowych
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
2
Dwa sposoby tworzenia apletów
Dwa sposoby tworzenia apletu:
1. W ramach projetu typu Java Application o charakterze Java WebStart i
deskryptora apletu (applet descriptor) wyspecyfikowanego w pliku JNLP.
2. W ramach typu projektu Java Class
Library, który jest biblioteką projektu typu
Web Application.
dr inż. Zofia Kruczkiewicz, 3
Pierwszy sposób tworzenia apletów
1. Wybierz File > New Project. Z okienka Categories wybierz Java. Z okienka Projects, wybierz Java Application. Dokończ projekt (podaj nazwę projektu np..ApletPliki1 i katalog).
2. W oknie Projects kliknij prawym klawiszem na nazwę projektu i wybierz New >
Other. Z okienka Categories, wybierz Swing GUI Forms. Z okienka File Types, wybierz JApplet Form. Kliknij na Next.
3. W polu Class Name należy podać nazwę apletu (np. ApletPliki1 ). W polu
Package należy wybrać pakiet, do którego należy aplet, lub zdefiniować nazwę nowego pakietu (np. apletpliki1).
4. Naciśnij przycisk Finish. Projekt zawiera aplet w podanym pakiecie. Plik apletu staruje w oknie edytora.
5. Zaprojektuj aplet za pomocą GUI Builder w trybie Design i kod w trybie Source.
6. Dodaj podobnie plik typu Java Class (np. Testpliki.java) i napisz kod źródłowy programu.
7. Kliknij prawym klawiszem na nazwę pliku w widoku Projects i wybierz pozycje Properties, a następnie wybierz panel Web Start.
8. Zaznacz przycisk Enable Web typu checkbox.
9. Wybierz przycisk Applet Descriptor typu radio i upewnij się, czy tworzony aplet jest wybrany w liście Applet Class typu combo box.
10. Zamknij formularz Properties projektu.
11. Kliknij prawym klawiszem i wybierz pozycję Build z wyskakującego menu.
12. Kliknij prawym klawiszem na plik typu applet (tutaj ApletPliki1) i wybierz pozycję
Run File z wyskakującego menu.
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
4
dr inż. Zofia Kruczkiewicz, 5
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
6
dr inż. Zofia Kruczkiewicz, 7
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
8
dr inż. Zofia Kruczkiewicz, 9
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
10
dr inż. Zofia Kruczkiewicz, 11
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
12
Plik do dostarczania danych do apletu przez znacznik param –
dokonano również zmiany nazwy projektu na ApletPliki1
dr inż. Zofia Kruczkiewicz, 13
Plik html, wygenerowany automatycznie, do uruchamiania apletu
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
14
Okno Properties projektu z wybraną opcją Web Start
dr inż. Zofia Kruczkiewicz, 15
VM Option – argumenty linii polecenia dla appletviewer
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
16
dr inż. Zofia Kruczkiewicz, 17
Projekt apletu za pomocą GUI BUILDER
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
18
Wygenerowany kod za pomocą Gui Builder
dr inż. Zofia Kruczkiewicz, 19
Obsługa zdarzeń typu Action (np. po wybraniu przycisku typu Button w trybie Design lewym klawiszem myszy należy kliknąć prawym klawiszem i z
wyskakującego menu wybrać kolejno Event/Action/
actionPerformed[jButton1ActionPerformed]) i napisać stosowny kod
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
20
Edycja kodu pliku typu Java Class wstawionego do projektu (1)
dr inż. Zofia Kruczkiewicz, 21
Kod źródłowy klasy uniwersalnej do zapisu pliku (2)
import java.io.*;
public class Testpliki {
public void Zapiszplik2(String dane1) { String dane[] = dane1.split(" ");
try {
FileOutputStream plik = new FileOutputStream("c:\\Testplik.dat");
BufferedOutputStream bufor = new BufferedOutputStream(plik);
int size = dane.length;
for (int i = 0; i < size; i++) {
int dane2 = Byte.parseByte(dane[i]);
if (dane2 != -1) {
bufor.write(dane2);
} }
bufor.close();
} catch (Exception e) {
System.out.println("Blad zapisu pliku bajtowego" + e);
}
}
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
22
Edycja kodu pliku typu Java Class wstawionego do projektu (3)
dr inż. Zofia Kruczkiewicz, 23
Kod źródłowy klasy uniwersalnej do zapisu pliku (4)
public String Odczytajplik2() { int dane = 0;
String pom = "";
try {
FileInputStream plik = new FileInputStream("c:\\Testplik.dat");
BufferedInputStream bufor = new BufferedInputStream(plik);
dane = plik.read();
while (dane != -1) { pom += " " + dane;
dane = bufor.read();
}
bufor.close();
} catch (Exception e) {
System.out.println("Blad odczytu pliku bajtowego" + e);
}
return pom;
}
}
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
24
Uruchomienie apletu (Run File) za pomocą
programu AppletViewer
dr inż. Zofia Kruczkiewicz, 25
Drugi sposób tworzenia apletu
1. Wybierz z menu File\ New Project. Na formularzu New Project
wybierz w oknie Categories kategorię projektu Java. W oknie Projects, wybierz typ projektu Java Class Library. Po naciśnięciu klawisza Next dokończ tworzenie pliku na kolejnym formularzu – podaj nazwę (np.
ApletPliki2) i położenie projektu.
2. Kliknij prawym klawiszem na nazwę projektu w oknie Projects. Z
wyskakującego menu wybierz New\Other. Na ukazanym formularzu w oknie Categories, wybierz kategorię pliku Swing GUI Forms. W oknie Files Types wybierz JApplet Form. Naciśnij klawisz Next.
3. Podaj nazwę apletu w polu Class Name (np. apletpliki2). W polu
Package podaj nazwę nowego pakietu, do którego będzie należał aplet (np. apletpliki2).
4. Naciśnij przycisk Finish. Projekt zawiera aplet w podanym pakiecie.
Plik apletu staruje w oknie edytora.
5. Zaprojektuj aplet za pomocą GUI Builder w trybie Design i kod w trybie Source.
6. Dodaj podobnie plik typu Java Class (np. Testpliki.java) i napisz kod źródłowy programu.
7. Kliknij prawym klawiszem i wybierz pozycję Build z wyskakującego menu.
8. Kliknij prawym klawiszem na plik typu applet (tutaj ApletPliki2) i wybierz
pozycję Run File z wyskakującego menu.
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
26
dr inż. Zofia Kruczkiewicz, 27
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
28
dr inż. Zofia Kruczkiewicz, 29
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
30
VM Option – argumenty linii polecenia dla appletviewer
dr inż. Zofia Kruczkiewicz, 31
Uruchomienie apletu (Run File) za pomocą
programu AppletViewer
Zabezpieczenia przed działaniem apletu
Sposób 1
Zabezpieczenie przed działaniem apletu za pomocą pliku typu policy (przez wskazanie adresu url apletu
za pomocą atrybutu CodeBase oraz zdefiniowanie ograniczeń dla działań apletu na komputerze użytkownika za pomocą atrybutu permission)
Wykład: Bezpieczeństwo_apletów1
dr inż. Zofia Kruczkiewicz, 33
1) przy wykorzystaniu appletviewer w
środowisku NetBeans - domyślnie aplet posiada pełne prawa wykonania
wszystkich operacji
2) przy wykorzystaniu przeglądarki
niezaleznie od środowiska NetBeans- domyślnie aplet posiada minimalne
uprawnienia do wykonania operacji np.
plikowych
Sposoby uruchamiania apletów
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
34
Ad1. – Appletviewer (maksymalne uprawnienia)
Plik applet.policy w katalogu głównym projektu – jego domyślna zawartość
dr inż. Zofia Kruczkiewicz, 35
Edycja pliku applet.policy za pomocą narzędzia PolicyTool
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
36
Tworzenie lub edycja pliku zawierającego ograniczenia dla
uruchamianego apletu w CodeBase ustawiono protokół typu file dla apletu uruchamianego bez pośrednictwa serwera www.
Dla protokołu http używanego do pobrania apletu za pośrednictwem serwera www przykładowy CodeBase:
http://sprocket.ict.pwr.wroc.pl/~zkruczkiewicz/wyklady/java
dr inż. Zofia Kruczkiewicz, 37
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
38
dr inż. Zofia Kruczkiewicz, 39
a) Plik applet.policy w katalogu głównym projektu – jego domyślna zawartość
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
40
Plik applet.policy w katalogu głównym projektu używany przez
appletviewer
dr inż. Zofia Kruczkiewicz, 41
Uruchomienie apletu (Run File) za pomocą programu Applet
Viewer
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
42
b) Brak dostępu do operacji plikowych – aplet zapisuje plik
c:\Testplik.dat, natomiast plik java.policy zezwala na zapis
c:\Testplik
dr inż. Zofia Kruczkiewicz, 43
Ad. 2. – Przeglądarka Internet Explorer (minimalne uprawnienia) Zawartość katalogu jre1.6.0_05\lib\security oprogramowania Javy
używanego przez przeglądarkę do uruchamiania apletów. Domyślnie aplet nie może zapisywać ani odczytywać plików - na podstawie plików definiujących
zabezpieczenia programów Javy działających w sieci
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
44
a) Uruchomienie apletu dla domyślnych zabezpieczeń przewidzianych dla apletów –
nie można wywołać operacji
plikowych
dr inż. Zofia Kruczkiewicz, 45
Zmiany w plikach katalogu jre1.6.0_05\lib\security oprogramowania używanego przez przeglądarkę do uruchamiania apletów – dodanie pliku mojapolisa (odpowiednik pliku applet.policy) z definicją zabezpieczeń dla
wybranych apletów, których położenie i rodzaj protokołu określono za
pomocą CodeBase
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
46
Wpisanie do pliku java.security z definicją zabezpieczeń dla programów Javy informacji o pliku mojapolisa z definicją
zabezpieczeń dla wybranej grupy apletów
dr inż. Zofia Kruczkiewicz, 47
b) Poprawne wywołanie operacji plikowych dla wybranych apletów
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
48
c) Po wprowadzeniu do polisy
mojapolisa błędu w nazwie
tworzonych plików operacje
plikowe zostały zablokowane
Zabezpieczenia przed działaniem apletu
Sposób 2
Zabezpieczenie przed działaniem apletu za pomocą podpisu cyfrowego (za pomocą parametru keystore w pliku typu polisa )
Wykład: Bezpieczeństwo_apletów2
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
50
Podpisywanie kodu aplikacji przez programistę, uruchamianej
przez program java
dr inż. Zofia Kruczkiewicz, 51
Uwierzytelnianie kodu aplikacji przez
użytkownika,
uruchamianej przez
program java
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
52
b) Tworzenie nowego certyfikatu kluczFirma i pary kluczy: prywatnego i publicznego a) Utworzony certyfikat kluczFirma jest już przeterminowany
c) Podpisanie apletu ApletPliki2 jako pcApletPliki2
dr inż. Zofia Kruczkiewicz, 53
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
54
d) Export certyfikatu przez programistę oraz jego import przez użytkownika
dr inż. Zofia Kruczkiewicz, 55
1) przy wykorzystaniu appletviewer w
środowisku NetBeans - domyślnie aplet posiada pełne prawa wykonania
wszystkich operacji
2) przy wykorzystaniu przeglądarki
niezaleznie od środowiska NetBeans- domyślnie aplet posiada minimalne
uprawnienia do wykonania operacji np.
plikowych
Sposoby uruchamiania apletów
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
56
Ad1. – Appletviewer
Plik applet.policy w katalogu głównym projektu – jego zawartość po pierwszym
kroku zabezpieczania
dr inż. Zofia Kruczkiewicz, 57
Uzupełnienie pliku applet.policy o informacje związane z podpisem
cyfrowym – za pomocą narzędzia PolicyTool
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
58
dr inż. Zofia Kruczkiewicz, 59
a) Rozpoznanie podpisanego
apletu spakowanego w pliku
pcApletPliki2.jar - można
wykonywać operacje plikowe
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
60
b) Nie można rozpoznać
podpisanego apletu (pomyłka w wartości atrybutu
archive=ApletPliki2.jar) - nie
można wykonywać operacji
plikowych
dr inż. Zofia Kruczkiewicz, 61
Ad. 2. – Przeglądarka Internet Explorer
Modyfikacja systemowego pliku
typu java.security
Uzupełnienie pliku mojapolisa
(odpowiednik pliku
applet.policy)
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
62
a) Nie można rozpoznać podpisanego apletu (pomyłka w wartości atrybutu
archive=ApletPliki2.jar) - nie można wykonywać operacji plikowych
dr inż. Zofia Kruczkiewicz, 63
Z powodu błędu w nazwie pliku typu jar w pliku typu html nie można
wykonać operacji plikowych, ponieważ wskazany plik nie jest podpisany – teraz można wykonać
tylko aplet podpisany w podanej
lokalizacji
dr inż. Zofia Kruczkiewicz, Programowanie aplikacji
internetowych
64
b) Można rozpoznać podpisany aplet (poprawna wartości atrybutu
archive=pcApletPliki2.jar) - można wykonywać operacje plikowe
dr inż. Zofia Kruczkiewicz, 65