dodatek

Transkript

dodatek
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

JMS

JMS X33EJA – Enterprise Java

Více

webová služba pro posílání dávek dat do DB NOR a

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 ...

Více

manual_Regent_TV7_7_TV8_CZ_v1_00 (1)

manual_Regent_TV7_7_TV8_CZ_v1_00 (1) 5.5 Nastavení WiFi sítí...........................................................................................11 5.6 Základní aplikace..............................................................

Více

Produktová řada Progress Actional

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...

Více

Distribuované systémy a výpočty

Distribuované systémy a výpočty - konsorcium OMG (Object Management Group) - standard pro podporu komunikace v DS - pouze specifikace

Více

Pay MUZO - forum.privet.cz

Pay MUZO - forum.privet.cz  Global Payments Europe, a. s. Určeno pouze pro interní potřebu obchodníků systému Pay MUZO

Více

Technická dokumentace pro implementaci mojeID Vydání . CZ.NIC

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...

Více

Špičková kvalita záznamu

Š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...

Více