dodatek
Transkript
X33EJA – Enterprise Java Petr Šlechta Sun Microsystems [email protected] Web Services (dodatek) Dynamické vyvolání WS ● ● ● Pomocí SAAJ (SOAP with Attachments API for Java) Dynamicky vytvořit SOAP zprávu (např. na základě dat vyčtených z WSDL) a poslat ji Ukázka kódu Struktura SOAP zprávy v SAAJ Java Naming and Directory Interface (JNDI) JNDI ● ● Naming/directory/lookup služby (services) – Mapování: jméno → hodnota (object) – Příklady: UNIX file system, DNS, LDAP Stromový/adresářový koncept – Adresář má atributy a položky – Základní akce: přidávání/modifikace atributů a položek, hledání informace – Většinou 90% vyhledávání informací, jen 10% modifikace JNDI – podporované technologie ● Návrh JNDI je rozšiřitelný – ● API / SPI koncept Standardně podporované technologie – Lightweight Directory Access Protocol (LDAP) – Common Object Request Broker Architecture (CORBA) Common Object Services (COS) name service – Java Remote Method Invocation (RMI) RegistryPackages JNDI JNDI ● Vlastní hledání je jednoduché – Printer printer = (Printer)ctx.lookup("Xerox-312"); JNDI – kompletní příklad Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial"); DirContext ctx = new InitialDirContext(env); try { // Create the initial directory context DirContext ctx = new InitialDirContext(env); // Ask for all attributes of the object Attributes attrs = ctx.getAttributes("cn=Ted Geisel, ou=People"); // Find the surname attribute ("sn") and print it System.out.println("sn: " + attrs.get("sn").get()); } catch (NamingException e) { System.err.println("Problem getting attribute:" + e); } LDAP (Lightweight Directory Access Protocol) ● ● Protokol pro přístup k serverům s adresářovými službami (LDAP servery) LDAP server – Distribuovaná stromová databáze – Obsahuje většinou údaje o zaměstnancích a organizační struktuře firmy – U každého zaměstnance mohou být uloženy konfigurační data pro různé aplikace (hesla, ...) – Typicky je systém i jeho zpráva distribuovaná – Optimalizováno na čtení dat, zápisování není časté – Centrální authentikace uživatele (SSO) Nástroje pro práci s LDAP servery ● JXplorer – ● Java prohlížeč obsahu LDAP databáze Ukázka – Offline prohlížení LDIF souboru – o=organization, ou=organization unit, cn=common name, c=country, gn=given name, sn=surname, st=state, ... JNDI na aplikačním serveru ● ● JNDI je součást Java EE specifikace Použití pro přístup ke konfiguračním datům AS a pro vyhledávání instancí objektů vytvořených AS – ● EJB, JDBC connection pool, JMS destination, … Ukázka – Příklad kódu v NB Java Mail API Java Mail ● API pro čtení, tvorbu a odesílání e-mailů ● Podporované technologie (lze rozšiřovat, SPI) – Simple Mail Transfer Protocol (SMTP) ● – Post Office Protocol (POP) ● – Definuje mailbox pro uživatele, nejrozšířenější Internet Message Access Protocol (IMAP) ● ● – Zasílání e-mailů přes SMTP server Více složek na straně serveru, lze je sdílet Méně rozšířený, klade větší požadavky na mail server Multipurpose Internet Mail Extensions (MIME) ● Definuje jak zakódovat obsah e-mailu: části zprávy, přílohy, ... Java Mail ● Balíčky – ● javax.mail, javax.mail.event, javax.mail.internet, javax.mail.search, javax.mail.util Ukázka kódu Java Mail na AS ● Anotace a injection – ● @Resource private javax.mail.Session session; Konfigurace na straně serveru Java Transaction API (JTA) JTA ● ● Definuje API pro interakci mezi transakčním managerem a – Resource managerem – Aplikačním serverem – Aplikací používající transakce Podporuje distribuované transakce nad více zdroji ● JSR 907 ● Balíčky – javax.transaction, javax.transaction.xa JTA ● Transakce musí být ACID – ● Atomic (lze provést rollback), Consistent (přechody pouze mezi konzistentními stavy databáze), Isolated (mezivýsledky nejsou viditelné pro ostatní), Durable (výsledek je uložen) Distribuované transakce – Zdroj můsí implementovat JDBC 2.0 + XADataSource, XAConnection (javax.sql) + XAResource (javax.transaction.xa) ● Dvoufázový commit, transakční log ● Ukázka kódu Java Transaction Service (JTS) JTS ● ● ● ● Jedna z implementací JTA Transakční manažer využívající Object Transaction Service od OMG (Object Management Group) z CORBA specifikace CORBA (Common Object Request Broker Architecture) využívá GIOP na propagaci transakcí mezi různými transakčními manažery – GIOP = General Inter-ORB Protocol – IIOP = Internet Inter-ORB Protocol Umožňuje provádět transakce nad více zdroji na různých počítačích spojených sítí JTS Java EE Connector Architecture (JCA) JCA ● ● Integrace AS s ostaními (většinou legacy) systémy – EIS = Enterprise Information System – ERP = Enterprise Resource Planning – CRM = Customer Relationship Management – Jiné databáze, aplikace, mainframes Resource Adapter – Implementuje JCA – Umožňuje přístup k danému zdroji – Přístup pomocí API, které je podobné JDBC JCA ● ● Hlavní podoporované oblasti – Connection management, transaction management, a security – Common Client Interface (CCI) – Standardní deployment (RAR soubor) Balíčky – ● javax.resource, javax.resource.cci, javax.resource.spi, javax.resource.spi.* Vstupní bod – javax.resource.spi.ResourceAdapter Security Security konfigurace ● Security se konfiguruje (jako většina nastavení pro AS) ve dvou deskriptor souborech – web.xml – standardizovaná část – xxx-web.xml – část specifická pro daný AS (např. sun-web.xml pro Glassfish, nebo jboss-web.xml pro JBoss) Security constraints ● Nejdříve je nutné definovat, které části aplikace budou mít omezený přístup a kdo k nim bude moci přistupovat web.xml: <security-constraint> <web-resource-collection> <web-resource-name>catalog</web-resource-name> <description>cust's catalog</description> <url-pattern>/catalog/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>RegisteredUser</role-name> </auth-constraint> </security-constraint> Login ● Dále je nutno specifikovat jak má probíhat přihlašování uživatele web.xml: <login-config> <auth-method>BASIC</auth-method> <realm-name>Shop Realm</realm-name> </login-config> Login ● Podporované metody přihlášení (autentikace) – None – bez přihlašování uživatele – Digest – klient spočítá digest (pomocí obsahu zprávy a svého hesla) a tím se autentikuje – Client certificate – klient (popř. i server) si pošlou veřejné certifikáty a pomocí nich ověří svoji totožnost (jako digitální podpis, X.509 standard) – Basic – ověření jména a hesla v realmu – Form – specifikované JSP stránky jsou použity pro kontrolu přihlašovacích údajů Ochrana přenášených dat ● User data constraint v web.xml – None – žádná ochrana – Integral – je požadována ochrana před pozměněním zprávy v průběhu přenosu – Confidential – je požadována ochrana obsahu zprávy při přenosu (obsah zprávy nesmí být dostupný třetí straně) Mapování rolí ● ● ● Role definované ve webové aplikaci je nutno namapovat na uživatele a skupiny definované v aplikačním serveru Toto mapování se provádí v deskriptoru specifickém pro daný AS Ukázka (Glassfish) Form-based autentikace <form action="j_security_check" method="post"> Name: <input type="text" name="j_username"> Password: <input type="password" name="j_password"> <input type="submit" value="Log me in!"> </form> web.xml: <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/login.jsp</form-login-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config>
Podobné dokumenty
webová služba pro posílání dávek dat do DB NOR a
Nahrání nové dávky provede webová služba „NorWS“ metoda „uploadData“ s parametrem
„Ps_data“ .
Pro přístup na webový server je nutno autorizovat uživatele. Je zobrazena výzva k zadání
uživatelského ...
manual_Regent_TV7_7_TV8_CZ_v1_00 (1)
5.5 Nastavení WiFi sítí...........................................................................................11
5.6 Základní aplikace..............................................................
Produktová řada Progress Actional
P i vyhodnocování politik se používá dvoustup ový resp. dvouprahový systém upozor ování. Po
p ekro ení první prahové hodnoty dojde pouze k varování, p i p ekro ení druhé prahové hodnoty již dojde
k...
Distribuované systémy a výpočty
- konsorcium OMG (Object Management Group)
- standard pro podporu komunikace v DS
- pouze specifikace
Pay MUZO - forum.privet.cz
Global Payments Europe, a. s.
Určeno pouze pro interní potřebu obchodníků systému Pay MUZO
Technická dokumentace pro implementaci mojeID Vydání . CZ.NIC
nepřímo skrze přesměrování uživatelova prohlížeče odešle na koncový bod poskytovatele
OpenID, kde se uživatel autentizuje.
4. Provedení autentizace – Uživatel se na přihlašovací stránce mojeID přih...
Špičková kvalita záznamu
• Pohybový senzor vám udrží baterii déle nabitou
Navrženo pro profesionály
• Šifrování souborů a ochrana diktafonu PIN kódem zajistí naprostou bezpečnost dat
• Integrovaná čtečka čárových kódů p...