• Nie Znaleziono Wyników

Dr inż. Zofia Kruczkiewicz Programowanie aplikacji

N/A
N/A
Protected

Academic year: 2021

Share "Dr inż. Zofia Kruczkiewicz Programowanie aplikacji "

Copied!
65
0
0

Pełen tekst

(1)

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

(2)

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.

(3)

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.

(4)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

4

(5)

dr inż. Zofia Kruczkiewicz, 5

(6)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

6

(7)

dr inż. Zofia Kruczkiewicz, 7

(8)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

8

(9)

dr inż. Zofia Kruczkiewicz, 9

(10)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

10

(11)

dr inż. Zofia Kruczkiewicz, 11

(12)

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

(13)

dr inż. Zofia Kruczkiewicz, 13

Plik html, wygenerowany automatycznie, do uruchamiania apletu

(14)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

14

Okno Properties projektu z wybraną opcją Web Start

(15)

dr inż. Zofia Kruczkiewicz, 15

VM Option – argumenty linii polecenia dla appletviewer

(16)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

16

(17)

dr inż. Zofia Kruczkiewicz, 17

Projekt apletu za pomocą GUI BUILDER

(18)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

18

Wygenerowany kod za pomocą Gui Builder

(19)

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

(20)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

20

Edycja kodu pliku typu Java Class wstawionego do projektu (1)

(21)

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);

}

}

(22)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

22

Edycja kodu pliku typu Java Class wstawionego do projektu (3)

(23)

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;

}

}

(24)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

24

Uruchomienie apletu (Run File) za pomocą

programu AppletViewer

(25)

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.

(26)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

26

(27)

dr inż. Zofia Kruczkiewicz, 27

(28)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

28

(29)

dr inż. Zofia Kruczkiewicz, 29

(30)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

30

VM Option – argumenty linii polecenia dla appletviewer

(31)

dr inż. Zofia Kruczkiewicz, 31

Uruchomienie apletu (Run File) za pomocą

programu AppletViewer

(32)

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

(33)

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

(34)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

34

Ad1. – Appletviewer (maksymalne uprawnienia)

Plik applet.policy w katalogu głównym projektu – jego domyślna zawartość

(35)

dr inż. Zofia Kruczkiewicz, 35

Edycja pliku applet.policy za pomocą narzędzia PolicyTool

(36)

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

(37)

dr inż. Zofia Kruczkiewicz, 37

(38)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

38

(39)

dr inż. Zofia Kruczkiewicz, 39

a) Plik applet.policy w katalogu głównym projektu – jego domyślna zawartość

(40)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

40

Plik applet.policy w katalogu głównym projektu używany przez

appletviewer

(41)

dr inż. Zofia Kruczkiewicz, 41

Uruchomienie apletu (Run File) za pomocą programu Applet

Viewer

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

dr inż. Zofia Kruczkiewicz, 47

b) Poprawne wywołanie operacji plikowych dla wybranych apletów

(48)

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

(49)

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

(50)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

50

Podpisywanie kodu aplikacji przez programistę, uruchamianej

przez program java

(51)

dr inż. Zofia Kruczkiewicz, 51

Uwierzytelnianie kodu aplikacji przez

użytkownika,

uruchamianej przez

program java

(52)

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

(53)

dr inż. Zofia Kruczkiewicz, 53

(54)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

54

d) Export certyfikatu przez programistę oraz jego import przez użytkownika

(55)

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

(56)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

56

Ad1. – Appletviewer

Plik applet.policy w katalogu głównym projektu – jego zawartość po pierwszym

kroku zabezpieczania

(57)

dr inż. Zofia Kruczkiewicz, 57

Uzupełnienie pliku applet.policy o informacje związane z podpisem

cyfrowym – za pomocą narzędzia PolicyTool

(58)

dr inż. Zofia Kruczkiewicz, Programowanie aplikacji

internetowych

58

(59)

dr inż. Zofia Kruczkiewicz, 59

a) Rozpoznanie podpisanego

apletu spakowanego w pliku

pcApletPliki2.jar - można

wykonywać operacje plikowe

(60)

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

(61)

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)

(62)

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

(63)

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

(64)

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

(65)

dr inż. Zofia Kruczkiewicz, 65

Cytaty

Powiązane dokumenty

Każda pozycja rachunku powinna podać swoją wartość brutto oraz dane produktu oraz ilość zakupionego produktu.. Na rachunku powinna znajdować się wartość łączna

Należy podać atrybuty tytułu: ISBN jako obowiązkowa dana oraz dodatkowo aktor, jeśli poszukiwany jest tytuł książki jako nagranie dźwiękowe.. Tworzony jest tytuł wzorcowy

-zastosowanie klasy Produkt1 oraz klasy Fasada_warstwy_biznesowej w wersji SE – klasa typu Produkt_form do wprowadzanie danych produktu.

http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/Lab8_2018s.pdf formularz rysujący wykres (grafika 2D lub 3D), przedstawiający, ile wprowadzono produktów w.

U01 Absolwent posiada umiejętność opisu wyników obserwacji i eksperymentów, analizy jakościowej i ilościowej obserwowanych zjawisk, formułowania wniosków wynikających z

(rodzaj i zakres oraz miejsce

Anna Struzińska-Walczak, Krzysztof Walczak (1999): Nauka programowania dla

• Mark Mitchell, Jeffrey Oldham, Alex Samuel: Linux Programowanie dla zaawansowanych, RM,