Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE



Podobné dokumenty
X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

Informační systém pro e-learning manuál

Instalace Microsoft SQL serveru 2012 Express

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

KIV/PIA 2013 Jan Tichava

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Web Services na SOAP

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Inovace a zkvalitnění výuky prostřednictvím ICT Tvorba webových stránek. Ing. Zelinka Pavel Číslo: VY_32_INOVACE_35 17 Anotace:

Instalace MS SQL Server Express a MS SQL Server Management Express

Nastavení ového klienta

Vzdálené ovládání dotykového displeje IDEC HG3G pomocí routeru VIPA TM-C VPN

Nastavení ového klienta NEOFEMA s.r.o. server Slunečnice

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

FFUK Uživatelský manuál pro administraci webu Obsah

NÁVOD K POUŽITÍ. IP kamerový systém.

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Instalace SQL 2008 R2 na Windows 7 (64bit)

Tvorba informačních systémů

M E T O D I K A W I K I

Návod pro použití aplikace crisp [vyjádření]

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

WNC::WebNucleatCreator

Návod na použití univerzitní aplikace

a autentizovaná proxy

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Rychlý průvodce instalací

Návod na používání webmailu

Tvorba informačních systémů

BI-VWS. Vybrané partie z administrace Webového Serveru Autetizace, autorizace a kontrola přístupu Apache httpd

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

NÁVOD K POUŽITÍ. IP kamerový systém. Aplikace pro tablety a telefony: SW pro instalaci v PC můžete stáhnout zde:

Survey 123. Jak na sběr (nejen) prostorových dat v terénu

(Enterprise) JavaBeans. Lekce 7

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Uživatelská příručka 6.A6. (obr.1.)

Postup instalace ČSOB BusinessBanking pro MS SQL 2005/2008

PORTÁL KAM NA ŠKOLU VE ZLÍNSKÉM KRAJI (stručný návod pro ředitele a administrátory škol)

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

EMBARCADERO DATASNAP. OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7

Uživatelská příručka

Na vod k nastavenı ovy ch schra nek Administrace

Tvorba webových stránek na google Sites (1.)

1 Příručka používání Google Apps

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Návod na nastavení bezdrátového routeru Asus WL-520g Deluxe v režimu klient

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse

NÁVOD K OBSLUZE ARC Wireless: SplitStation5 (+ iflex2 - vnitřní AP 2,4 GHz vč. 3 dbi antény)

Přihlášení určeno pro přihlášení mapovatele či sčitatele

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Rychlý postup k nastavení VoIP gatewaye ASUS VP100

Uživatelský manuál pro lektora e-learningového portálu MAFIDIS+

Administrace služby - GTS Network Storage

MS Office 365/2016, Windows 10 EDU

Programování v jazyku C# II. 8.kapitola

Postup pro přihlášení s autorizaci epusa a řešení problémů s přihlášením. V

Jak vytvořit vlastní ikonu bloku a faceplate v PCS7 V6.x a 7.x

Lokality a uživatelé

Pro další je postup je důležité zjistit IP adresu zařízení. Její zjištění můžeme provést např. následovně:


Informační manuál ZVEŘEJŇOVÁNÍ STUDIJNÍCH MATERIÁLŮ PROSTŘEDNICTVÍM PORTÁLU STUDENT.CZU.CZ

Informační systém pro nemocnici

Rezervační systém Tvorba WWW stránek

X33EJA Enterprise Java

Podrobný návod pro administraci zákaznických účtů na portálu Czechiatour.eu

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

ZSF web a intranet manuál

VKLÁDÁNÍ, EDITACE, SPRÁVA ZÁZNAMŮ PUBLIKACÍ V ÚČTU RID POMOCÍ ENDNOTE WEB

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

IP telefon Cisco SPA303g (SIP) Stručný průvodce instalací a konfigurací

II. Elektronická pošta

DUM 14 téma: Interakce s uživatelem

Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

TACHOTel manuál 2015 AURIS CZ

APS 400 nadministrator

Metodicky na vod pro Roc nı hodnocenı ISP DSP

Pravidla a plánování

Tvorba aplikací v Oracle Application Express

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

Přidání zařízení do aplikace FREE IP pro vzdálený dohled na mobilních zařízeních

Flash - animace. 17. Změna tvaru - Flash. Vytvořila: Radka Veverková Vytvořeno dne: Flash. DUM číslo: 16 Název: Flash

Tvorba informačních systémů

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Administrace webu Postup při práci

DOKUMENTACE MTJ SERVICE S.R.O.

Návod: Připojení ke školnímu FTP serveru. Návodu sloužící k přípojení k FTP serveru pomocí: Total Commander Webové rozhraní FTP Novell Client

Registr práv a povinností

Postup pro přihlášení s autorizaci epusa a řešení problémů s přihlášením. V

Evidence Popis aplikace QUANTUM a.s. Verze pro OS Android

Linksys SPA3102 ATA - Jak jej použít pro připojení 2N Helios IP k analogové ústředně

NOVINKY VERZE

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

1. Základní pojmy, používané v tomto manuálu. 2. Stránky

Transkript:

X33EJA Security, Realms Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE 'web.xml' 'glassfish-web.xml' dále nutno nastavit realm v admin. konzoli GF 1

Rozšíření DB modelu V DB modelu je třeba mít informace o uživatelích, které mohou přistupovat k aplikaci: přihlašovací jméno, heslo, skupinu Modře vždy ukázka na příkladu ze cvičení (navazuje na projekt x33eja jsf) Přidat proměnné v entitě Person: String login, String password (+gettery,settery) Jako skupinu použijeme diskriminátor v inheritanci entity Person (student,teacher) jméno diskriminátoru specifikujeme anotací třídy Person: @DiscriminatorColumn(discriminatorType=Discrimi natortype.string, name="groupname") 2

Naplnění DB daty K příkladu je přiložen skript na vložení dat, ten je kvůli změně modelu potřeba upravit. Vložení dat je nutné, abychom se později mohli přihlásit. Stačí upravit data do tabulky person: VALUES (1, 'student', 'Novak', 'Frantisek', 'novak', 'n'); VALUES (2, 'teacher', 'Kremen', 'Petr', 'kremen', 'k'); VALUES (3, 'student', 'Blazkova', 'Hana', 'blazkova', 'b'); VALUES (4, 'teacher', 'Kouba', 'Zdenek', 'kouba', 'k'); VALUES (5, 'teacher', 'Valek', 'Frantisek', 'valek', 'v'); VALUES (6, 'teacher', 'Smid', 'Marek', 'smid', 's'); VALUES (7, 'student', 'Kozina', 'Jan', 'kozina', 'k'); 3

Konfigurace Glassfish Je třeba vytvořit security realm v Glassfishi, což je serverově závislá operace, a ani Netbeans na to nemají podporu V administrační konzoli Glassfish (std. na portě 4848) vybereme v levém stromečku Configuration / Security / Realms / tlačítko New Realm si zde pojmenujeme, jako třídu vybereme JDBCRealm (čtení uživatelů z DB), JAAS context nastavíme na jdbcrealm, JDNI nastavíme na spojení s DB (JDBC resource), vyplníme jména a sloupce tabulek s informacemi o uživatelích, zbytek necháme prázdný. Jen ještě Digest algorithm je nutno vyplnit hashovací funkcí pro hesla (none, MD5...) Realm si pojmenujeme eja_security, vybereme JDBCRealm, a vyplníme: JAAS Context = jdbcrealm JNDI = jdbc/jpa example User table = person User name column = login Password column = password Group table = person Group name column = groupname Digest algorithm = none 4

Konfigurace webového projektu Dále nastavíme security ve web.xml ve web. Projektu. Otevřeme web.xml a v grafickém editoru přepneme na záložku Security. V sekci Login configuration vybereme Form (přihlašovaní pomocí stránky) a nastavíme Form Login a Error Page, kde je formulář na přihlášení (viz příklad). Realm name musí odkazovat na vytvořený Realm v Glassfish konzoli. V sekci Security roles vyjmenujeme role, které chceme v aplikaci pro bezpečnost využívat (nemusejí se shodovat se skupinami v DB, mapování viz dále) Přidáme Security constraint, která řekne, pro které stránky musí být uživatel přihlášen. Vyplníme jméno, přidáme Web resource collection (např. URL pattern = /* pro ochranu všech stránek) a zapneme Authentication constraint, kde vyjmenujeme povolené role. Je zde také možno zapnout User data constraint, která v případě Transport guarantee = confidential vynutí použití SSL. 5

Konfigurace webového projektu web.xml / security: Login configuration: Form, Form Login Page = Form Error Page = /login.xhtml Realm name = eja_security Security roles: student, teacher New security constraint: name= secured, resource collection: web sites, URL pattern: \*, all HTTP methods Enable authentication constraint: role names = student, teacher 6

Konfigurace webového projektu Dále nutno nastavit konfiguraci specifickou pro Glassfish v glassfish-web.xml. Opět v grafickém editoru v záložce Security: Zde nastavíme mapování skupiny (groups, v DB) role (roles, zabezpečení aplikace) Do role teacher přidáme pouze skupinu teacher, do role student skupinu student 7

Vytvoření přihlašovací stránky Je nutno vytvořit stránku, na kterou bude uživatel přesměrován pokud není přihlášen, a snaží se přistoupit na zabezpečenou stránku. Přihlašovací stránka pošle vyplněné údaje Glassfishi, který je ověří proti nastavenému Realmu Ve stránce musí být formulář: <form action="j_security_check" method="post"> Login: <input type="text" name="j_username" /> Password: <input type="password" name="j_password" /> <input type="submit" value="login" /> </form> V příkladu založíme JSF stránku login.xhtml, do které vložíme uvedený formulář 8

Použití security v JSF Ve webové vrstvě nejde příliš o zabezpečení, spíš o měnění vzhledu pro různé skupiny uživatelů to lze zajistit XML atributem rendered u JSF komponent, který odkážeme na boolean metodu v backing beaně V této metodě můžeme použít FacesContext.getCurrentInstance().getExternalContext().isUserInRole("teacher"); Pro zjištění jména přihlášeného uživatele: FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal().getName(); Pro odhlášení lze použít: HttpSession sess = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false); sess.invalidate(); 9

Zabezbečení EJB Jednotlivé metody v EJB session beanách lze jednoduše ochránit vymezením rolí, které mohou metodu volat pomocí anotace: @RolesAllowed({ teacher,... }) public void ejbmetoda(...) { } Pro další používání security lze injekcí získat SessionContext: @Resource SessionContext ctx; ctx.getcallerprincipal().getname(); ctx.iscallerinrole( teacher ); 10