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

Slides:



Advertisements
Verwante presentaties
Het Forum Hoe ga je te werk met het forum?
Advertisements

Httpd.conf Aanpassen van het Apache 2 configuratiebestand om mod_rewrite via.htaccess toe te staan.
Deel XVII: JSP-applicatiearchitectuur 1 Internetapplicaties Deel 17: JSP-applicatiearchitectuur Model 2 = MVC = Model View Controller.
Internet College 2 Architecturen. Architectuur van netwerktoepassingen •Peer to peer –Windows werkgroep •File- en printer sharing •Internet connection.
Databases via internet
OpenGIS Web Feature Services om kadastrale data te bewerken Afstudeervoordracht - 14 mei 2004 Thijs Brentjens – GISt, TU Delft.
JQuery en ASP.NET Bart De Meyer.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Internetapplicaties - II Gegevensinvoer 1 Internetapplicaties Deel 2: Gegevensinvoer: HTML-forms, JavaScript en JSP.
Programmeren in Java met BlueJ
Lucene/SOLR 1: inleiding + indexering
Webapplicaties: de serverkant
OOP met Java Sessie 1.
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
Internetapplicaties Niki Meulemans
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
Presentatie IA Solutions 2005: Programma generatie voor: PLC en SCADA Een update van deze PPT is te downloaden op: Rob Kits - Technisch.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Faculteit Ingenieurswetenschappen & Wetenschappen Software Engineering Publicatie Management Systeem Groep se1 Software Engineering Thierry Coppens.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Turnitin rapport opvragen / Turnitin inbox inhoud van een rapport
PLDA – Connectiviteit Rudolf de Schipper Geoffroy Fauveaux 09/11/2004.
Server side scripting 1 Webtechnologie Lennart Herlaar.
HTML elements en CSS Commando's Lenonardo Lyceum centrum voor deeltijds onderwijs Hoboken Schooljaar
JAVA -- H81 Exception: ongewone of foutieve situatie->prog. mislukt kan onderschept en afgehandeld worden. = een object van de klasse Throwable, gegenereerd.
CONTROLESTRUCTUREN (DEEL 2)
Hibernate Object relational mapping
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
Visual Basic.Net - Overzicht
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Hoofdstuk 16 en 19 PHP en MYSQL
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
WEBBUILDING 07/03/2005 Saartje De Geyter.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Internetapplicaties - VI Herhaling 1 Internetapplicaties Deel 6: Herhaling.
Internetapplicaties - V Sessies 1 Internetapplicaties Deel 5: Sessies.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Internetapplicaties - VII Error Handling 1 Internetapplicaties Deel 7: Error Handling.
Deel XX Hosting 1 Internetapplicaties Deel XX Hosting.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Web Applicaties Bouwen met Visual Studio .NET
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
We zijn toch allemaal zoekende?
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
In samenwerking met HowITsDone JSF versus AngularJS client-server 2.0.
In samenwerking met HowITsDone Spring as legacy Hoe innovatie legacy kan worden.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Web 1.0 HTMLAfbeeldingen FlashHyperlinks CSS Participation AJAX Usability Design Ruby on Rails.
Les 2: Zaterdag 1 maart 2014 Wim Peeters
JAVA: een platformonafhankelijke taal
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
Java & het Web Programma: Beveiliging Filters. Security.....wat is dat(1)? Beveiliging draait om 4 belangrijke steunpilaren: 1.Authenticatie: is de persoon.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Java & het Web Programma: De essentie van een web applicatie (webapp) Protocol van een webapp Talen van het web Java Servlets & Containers.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Java & het Web Programma: JSP. JSP....herhaling Welke van de volgende expressions is geldig/ongeldig? %>
Java & het Web Programma: JSTL Uitgebreide demo. JSP....herhaling Standard actions en (E)xpression (L)anguage: -Standard actions hebben de syntax:
Codetuts Academy Les 2 Module 2a Php Fundamentals 1.
ASP.NET MVC Web Development
– Software development fundamentals
– Software development fundamentals
Transcript van de presentatie:

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

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

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.

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.

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.

Deel XIX Security, Servlets & authenticatie6 De Servlet-architectuur (GRATIS tool voor klassen- en packagediagrammen: Dit is je eigen servlet

Deel XIX Security, Servlets & authenticatie7 De Servlet-architectuur

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

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" " " invoker invoker /servlet/* /servlet/* </web-app>

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:

Deel XIX Security, Servlets & authenticatie11 Resultaat

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)

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

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

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>

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

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:

Deel XIX Security, Servlets & authenticatie18 Resultaat

Deel XIX Security, Servlets & authenticatie19 Resultaat

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

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>

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

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>

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

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: OF

Deel XIX Security, Servlets & authenticatie26 Resultaat

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>

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

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

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