De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie.

Verwante presentaties


Presentatie over: "Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie."— Transcript van de presentatie:

1 Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie

2 Deel XIX Security, Servlets & authenticatie2 Inhoud  Herhaling: verband tussen JSP en Java: servlets  De plaats van servlets in een JSP-applicatie  Als hulpmiddel voor jsp’s  Als controller in MVC  De servlet-architectuur  Een servlet laten draaien  VoorbeeldServlet.java  web.xml  Authenticatie met servlets  Basic  Form based

3 Deel XIX Security, Servlets & authenticatie3 Even herhalen: Verband tussen JSP en Java: Servlets 1. Iemand schrijft een JSP, bvb hallo.jsp:  HTML  script-tags met java-code ertussen -> deze code hoef je zelf niet te compileren  Eventueel speciale tags om JavaBeans te gebruiken 2. Hallo.jsp wordt opgevraagd in een request. De ‘java- enabled web container’ (bij ons de Tomcat web server) doet het volgende:  zet hallo.jsp om naar hallo_jsp.java die een zogenaamde servlet is  compileert dit bestand tot hallo_jsp.class.

4 Deel XIX Security, Servlets & authenticatie4 Even herhalen: Verband tussen JSP en Java: Servlets 3. De servlet (letterlijk servertje) zal dan  dynamisch html-pagina’s genereren  ze doorsturen naar de browsers. (View/Source geeft jsp-bestand niet weer) 4. Van zodra de hello.jsp-broncode is veranderd, en een request dit bestand opnieuw aanvraagt, dan zal Tomcat dit merken en hello_jsp.java en hello_jsp.class overschrijven met nieuwe versies.

5 Deel XIX Security, Servlets & authenticatie5 De plaats van servlets in een JSP- applicatie  Als hulpmiddel om JSPs te kunnen gebruiken  De gegenereerde _jsp.java-bestanden NIET manueel wijzigen!  Als controller in een MVC-architectuur.  Wij hebben bij de MVC-les een jsp gebruikt als controller. Normaal wordt een servlet gebruikt. N.B. servlets zijn ouder dan jsp’s.

6 Deel XIX Security, Servlets & authenticatie6 De Servlet-architectuur (GRATIS tool voor klassen- en packagediagrammen: http://argouml.tigris.org) Dit is je eigen servlet

7 Deel XIX Security, Servlets & authenticatie7 De Servlet-architectuur

8 Deel XIX Security, Servlets & authenticatie8 Een servlet laten draaien: VoorbeeldServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class VoorbeeldServlet extends HttpServlet { public void doGet(HttpServletRequest request, public void doGet(HttpServletRequest request, HttpServletResponse response) HttpServletResponse response) throws ServletException, IOException { throws ServletException, IOException { response.setContentType("text/html"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); PrintWriter out = response.getWriter(); out.println(" Servlet says Hello "); out.println(" Servlet says Hello "); out.close(); out.close(); } public void doPost(HttpServletRequest request, public void doPost(HttpServletRequest request, HttpServletResponse response) HttpServletResponse response) throws ServletException, IOException { throws ServletException, IOException { doGet(request, response); doGet(request, response); }}

9 Deel XIX Security, Servlets & authenticatie9 Een servlet laten draaien: web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app> invoker invoker /servlet/* /servlet/* </web-app>

10 Deel XIX Security, Servlets & authenticatie10 Een servlet laten draaien  Bewaar de broncode van VoorbeeldServlet.java in de map../webapps/hfdst19/WEB-INF/classes  Compileer VoorbeeldServlet.java  Bewaar het bestand web.xml in../webapps/hfdst19/WEB-INF  Tomcat afsluiten en heropstrarten  In Start/Run of in je browser tik je: http://localhost:8080/hfdst19/servlet/VoorbeeldServlet

11 Deel XIX Security, Servlets & authenticatie11 Resultaat

12 Deel XIX Security, Servlets & authenticatie12 Authenticatie met servlets  Gebruikersauthenticatie Betekent: controle of de gebruiker wel is wie hij beweert te zijn: iemand met bepaalde rechten. De servlet 2.3-specificatie voorziet:  HTTP Basic  HTTP Digest (niet behandeld, zoals HTTP Basic, maar veiliger)  Form based  HTTPS client (niet behandeld, gebruikt certificaten en de secure sockets layer)

13 Deel XIX Security, Servlets & authenticatie13 HTTP Basic Authenication  Maakt gebruik van ingebouwd dialoogvenster  Nodig:  Een servlet  Een goed ingevuld web.xml-bestand

14 Deel XIX Security, Servlets & authenticatie14 HTTP Basic: ProtectedServlet.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.security.*; public class ProtectedServlet extends HttpServlet { public void init(ServletConfig cfg) throws ServletException public void init(ServletConfig cfg) throws ServletException { super.init(cfg); super.init(cfg); } public void doGet(HttpServletRequest req, HttpServletResponse res) public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException throws IOException, ServletException { res.setContentType("text/plain"); res.setContentType("text/plain"); PrintWriter out = res.getWriter(); PrintWriter out = res.getWriter(); String authType = req.getAuthType(); String authType = req.getAuthType(); out.println("U mag deze pagina bekijken"); out.println("U mag deze pagina bekijken"); out.println("De authenticatiemethode hier gebruikt is de " + authType + " authenticatiemethode"); out.println("De authenticatiemethode hier gebruikt is de " + authType + " authenticatiemethode"); Principal princ = req.getUserPrincipal(); Principal princ = req.getUserPrincipal(); out.println("De gebruiker is: " + princ.getName()); out.println("De gebruiker is: " + princ.getName()); }}

15 Deel XIX Security, Servlets & authenticatie15 HTTP Basic: web.xml protected protected ProtectedServlet ProtectedServlet <servlet-mapping> protected protected <url-pattern>/protected</url-pattern> Protected Area Protected Area <url-pattern>/protected</url-pattern></web-resource-collection><auth-constraint> begjsp3 begjsp3 </auth-constraint> <login-config> BASIC BASIC Dit is HTTP-Basic-authenticatie2 Dit is HTTP-Basic-authenticatie2 </login-config>

16 Deel XIX Security, Servlets & authenticatie16 HTTP Basic: tomcat-users.xml <tomcat-users> </tomcat-users>

17 Deel XIX Security, Servlets & authenticatie17 HTTP Basic: test  Bewaar en compileer de broncode van ProtectedServlet.java in de map ProtectedServlet.java in de map…/webapps/hfdst19/WEB-INF/classes  Overschrijf het bestand web.xml in …/webapps/hfdst19/WEB-INF  Pas het bestand tomcat-users.xml aan in …/conf  Tomcat afsluiten en heropstrarten  In Start/Run of in je browser tik je: http://localhost:8080/hfdst19/protected

18 Deel XIX Security, Servlets & authenticatie18 Resultaat

19 Deel XIX Security, Servlets & authenticatie19 Resultaat

20 Deel XIX Security, Servlets & authenticatie20 Form Based Authentication  Nodig:  Een klein bestand login.jsp, die aan bepaalde vormeisen voldoet.  Een klein bestand error.jsp, die automatisch aangeroepen wordt bij inlogproblemen  Een beschermd jsp-bestand.  Een correct bestand web.xml

21 Deel XIX Security, Servlets & authenticatie21 Form Based: index.jsp <html> Beschermde pagina Beschermde pagina <% <% out.println(" Authenticatiemethode is " out.println(" Authenticatiemethode is " + request.getAuthType() + " "); + request.getAuthType() + " "); %> %> </html>

22 Deel XIX Security, Servlets & authenticatie22 Form-based: login.jsp <html> Inlogpagina Inlogpagina </html> VERPLICHT DEZE NAMEN

23 Deel XIX Security, Servlets & authenticatie23 Form Based: error.jsp <html> Foutpagina Foutpagina Inloggen mislukt. Inloggen mislukt. Ga naar de Ga naar de loginpagina(login.jdp) loginpagina(login.jdp) </html>

24 Deel XIX Security, Servlets & authenticatie24 Form Based: web.xml Protected Area Protected Area /* /* begjsp3 begjsp3 FORM FORM /login.jsp /login.jsp /error.jsp /error.jsp

25 Deel XIX Security, Servlets & authenticatie25 Form Based: test  Overschrijf het bestand web.xml in …/webapps/hfdst19/WEB-INF  Bewaar de jsp-bestanden op de normale plaats in …/webapps/hfdst19  Tomcat afsluiten en heropstrarten  In Start/Run of in je browser tik je: http://localhost:8080/hfdst19/http://localhost:8080/hfdst19/ OF http://localhost:8080/hfdst19/ http://localhost:8080/hfdst19/index.jsp http://localhost:8080/hfdst19/

26 Deel XIX Security, Servlets & authenticatie26 Resultaat

27 Deel XIX Security, Servlets & authenticatie27 Hoe uitloggen ? Pas index.html aan <html> Beschermde pagina Beschermde pagina <% <% out.println(" Authenticatiemethode is " + request.getAuthType() + " "); out.println(" Authenticatiemethode is " + request.getAuthType() + " "); %> %> log out log out </html>

28 Deel XIX Security, Servlets & authenticatie28 Maak logout.jsp <html> <% <% session.invalidate(); session.invalidate(); %> %> </html>

29 Deel XIX Security, Servlets & authenticatie29 Hoe controleren of je echt uitgelogd bent ?  Tik in:  http://localhost:8080/hfdst19/index.jsp http://localhost:8080/hfdst19/index.jsp Of  http://localhost:8080/hfdst19/ http://localhost:8080/hfdst19/  Je moet nu inloggen (login.jsp wordt getoond)  Je geraakt binnen (je komt in index.jsp)  Nu alle browservensters sluiten en opnieuw tikken:  http://localhost:8080/hfdst19/index.jsp http://localhost:8080/hfdst19/index.jsp  Je komt ineens in index.jsp, je bent nog steeds ingelogd !

30 Deel XIX Security, Servlets & authenticatie30 Hoe controleren of je echt uitgelogd bent ? (vervolg)  Klik nu op logout  Sluit all browservensters  Tik:  http://localhost:8080/hfdst19/index.jsp http://localhost:8080/hfdst19/index.jsp  Je moet nu weer inloggen. Blijkbaar ben je effectief uitgelogd


Download ppt "Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie."

Verwante presentaties


Ads door Google