JavaFX. Plus CD! Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58. CD-Inhalt

Größe: px
Ab Seite anzeigen:

Download "JavaFX. Plus CD! Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58. CD-Inhalt"

Transkript

1 12.08 Plus CD! Stellenmarkt 49 mit EJB 2x 58 Deutschland 7,50 Österreich 8,60 Schweiz sfr 15,80 Java Magazin Java Architekturen SOA Agile CD-Inhalt Jax TV: Session der JAX 2008: Ted Neward: Why the Next Five Years Will Be About Languages Business-Process-Management IX Workflow Java-Frameworks: Groovy Grails Hibernate OSGi Runtimes Apache Felix Eclipse Equinox Knopflerfish OSGi JavaFX Die Zukunft der GUI-Entwicklung in Java? 16 Single-Sign-On: Central Authentication Service Rich Internet Applications CaptainCasa Enterprise Client Web Portale 2.0 Webanwendungen mit Java Portlets 45 Architektur Rich-Client-Architekturen Wie rich darf`s denn sein? 38 Performance Anti-Patterns Vorsicht bei O/R-Mappern! 64 Agile Auf die Schnelle Alle CD-Infos 3 Wie führe ich ein Requirements- Management-Tool ein? 89 D SOA Center 69 SOA Blueprint Werkzeugkasten für Architekten Sie wollen eine SOA im Unternehmen einführen. Aber welche Grundlagen sind vorab zu klären? Welche Werkzeuge werden sofort gebraucht und welche sind (zunächst) verzichtbar? Unser allgemeiner SOA Blueprint hilft, den Nutzen kommerzieller Tools sowie von Open-Source-Komponenten zu ermitteln.

2 Enterprise mit EJB 2x Neben den gängigen Möglichkeiten von (ehemals Acegi-Framework) gibt es auch die Möglichkeit, den Sicherheitskontext auf Basis von EJBs in einem Applikationskontextobjekt zu übertragen. Die Übertragung des Sicherheitskontexts wird dabei mit Spring-Bordmitteln bewältigt. von Michael Stähler it steht ein mächtiges Sicherheits-Framework zur Verfügung, das weit über die Möglichkeiten von Java EE hinausgeht. Es bietet z.b. nicht nur rollenbasierte Autorisierung, sondern mittels aspektorientierter Programmierung [1] auch daten- und objektbasierte Sicherheit. In modernen N-Tier-Architekturen steht man häufig vor dem Problem, den Sicherheitskontext zwischen den unterschiedlichen Schichten transportieren zu müssen. Dies sollte möglichst auf transparente Art und Weise passieren, um die Trennung von Businesslogik und Infrastrukturbelangen [2] zu unterstützen. Neben den bereits in vorhandenen Möglichkeiten, den Sicherheitskontext mittels RMI- oder dem Spring-eigenen HttpInvoker-Protokoll zu übertragen, soll hier ein alternativer Lösungsansatz vorgestellt werden. Aufgrund der (noch) weiten Verbreitung von EJB-2.x-Applikationen soll der Lösungsansatz anhand dieser Spezifikationsversion vorgestellt werden. Mit kann man verschiedenste Anforderungen von Sicherheitsaspekten in Enterprise-Applikationen umsetzen [3]. Im Umfeld von Enterprise Java Beans (EJBs) gibt es ebenfalls die J2EE-Security zur Absicherung von Unternehmensanwendungen. Allerdings stellt sich diese Art der Integration meist als sehr aufwändig und unflexibel heraus, da sich die Konfiguration auf unterschiedliche Deployment-Deskriptoren und proprietäre Einstellungen im Applikationsserver niederschlägt. Die damit einhergehende Vermischung von fachlich motivierter Geschäftslogik und Security-Code führt zu verunreinigtem Sourcecode und verringert zusätzlich die Möglichkeit der einfachen Testbarkeit in Unit-Tests aufgrund der direkten Abhängigkeit der Sicherheitsprüfungen zur Laufzeitumgebung. Wie der Name schon erraten lässt, basiert das Framework auf dem Spring Framework [4]. Basierend auf der leichtgewichtigen POJO- Architektur von Spring, bei der die Abhängigkeiten der unterschiedlichen Objekte mittels Dependency Injection (DI) aufgelöst werden, ist es möglich, eine nichtinvasive Integration von Sicherheitsaspekten in unterschiedlichen JavaEE- und JavaSE-Anwendungen zu erstellen. Die Konfiguration von Spring Security wird überwiegend deklarativ vorgenommen, sodass dadurch keine Änderungen am Sourcecode durchgeführt werden müssen. Damit eignet sich das Framework auch besonders gut, um in bestehende Anwendungen integriert zu werden. Mittels der in Spring 2.0 eingeführten Namespace-Konfigurationen ist es nun auch in möglich, eine vereinfachte Konfiguration (in XML) vorzunehmen. Die Konfiguration basiert auf dem Prinzip Convention over Configuration [5], mit der eine Standardkonfiguration sehr schnell erstellt werden kann und nur die vom Standard abweichenden Bedürfnisse manuell angepasst werden müssen. Das Framework unterstützt vielfältige Möglichkeiten der Authentifizierung und Autorisierung von einfacher Form- oder Basic-Authentifizierung bis hin zur NTLM-Authentifizierung in Windows-Netzwerken und Single 58 javamagazin

3 Enterprise Sign-on über den Central Authentication Service [6]. Es wird sowohl die rollen- als auch datenbasierte Autorisierung unterstützt. Die rollenbasierte Autorisierung gewährt einem Benutzer Zugriff auf eine bestimmte Operation aufgrund der Rolle, die der Benutzer inne hat. Die datenbasierte Autorisierung ermöglicht z.b. die Sicherung von Methoden aufgrund bestimmter Aufrufparameter. bietet umfangreiche Integrationsmöglichkeiten für die unterschiedlichsten Sicherheitstechnologien (LDAP, X.509 [7] usw.). Für Details sei an dieser Stelle auf die Referenzdokumentation verwiesen [8]. Problematik der Security- Integration in verteilten Anwendungen In Enterprise-Anwendungen, deren Architektur aus mehreren Applikationsschichten aufgebaut ist, stellt sich die Frage, wie man Sicherheitsaspekte über die gesamte Anwendung hinweg integrieren kann. In diesem Fall müsste der Sicherheitskontext (Benutzerdaten wie Benutzername, Passwort und Rechte) auf allen Anwendungsebenen zur Verfügung stehen. Beispielsweise könnte eine solche Anwendung aus einer Webapplikation bestehen, die in einem Servlet- Container (z.b. Tomcat) oder Applikationsserver (z.b. JBoss) betrieben wird und mit einer Datenbank verbunden ist (Abb. 1). In diesem Fall ist die komplette Anwendung auf einem Applikationsserver installiert und wird innerhalb einer JVM ausgeführt. Es handelt sich hier um keine verteilte Applikation, da eine Trennung zwischen Präsentations- und Businesslogik nur logisch, nicht jedoch physikalisch vorhanden ist. Eine Remote-Kommunikation ist nicht notwendig. Die komplette Integration von Sicherheitsaspekten beschränkt sich damit auf nur eine Anwendungsebene. Andere Anwendungsszenarien erfordern eine physikalische Trennung der Präsentationslogik von der Businesslogik. Bei Webapplikationen wird die Präsentationslogik meist in einer DMZ (Demilitarized Zone) installiert und die Businesslogik hinter einer Abb. 1: Nicht verteilte Anwendung Abb. 2: Verteilte Anwendung Firewall auf einem Applikationsserver betrieben (Abb. 2). Bei Rich Clients würde die Remote-Kommunikation beispielsweise zwischen einem Java- Swing-Client und dem Applikationsserver erfolgen. Wie in Java-EE-Anwendungen meist üblich, wird der Remote-Zugriff mittels EJBs durchgeführt. Um die Präsentationsschicht in dem Servlet- Container und die Businessschicht in dem Applikationsserver abzusichern, müssen die Benutzerinformationen mit den Authentifizierungs- und Autorisierungsdaten (Sicherheitskontext) zwischen den Anwendungsebenen ausgetauscht werden. Wünschenswert wäre also ein Mechanismus, der den Sicherheitskontext beim Aufruf der entfernten Service-Methode automatisch überträgt und der Businessebene zur Verfügung stellt. Die Übertragung dieser Informationen wäre über einen Interceptor denkbar, der den Sicherheitskontext vor dem Aufruf der eigentlichen Businessmethode hinzufügt. Leider sieht die EJB-2.x-Spezifikation den Einsatz von benutzerspezifischen Interzeptoren nicht vor, sodass man hier auf andere Technologien angewiesen ist. Die Integrationsidee Die Idee der hier vorgestellten Lösung basiert auf der Übertragung eines anwendungsbezogenen Kontextobjekts, das seinerseits das Sicherheitskontextobjekt enthält. Man könnte den Sicherheitskontext auch direkt als Parameter übergeben, allerdings bestünde dann eine direkte Abhängigkeit zum Framework. Durch die Kapselung in ein anwendungsbezogenes Kontextobjekt hält man die Schnittstelle davon unabhängig (keine Framework-Imports). Bei einem Aufruf einer entfernten Methode (Aufruf einer EJB-Methode) wird das Applikationskontextobjekt als Parameter übergeben. Dieses wiederum kann den Sicherheitskontext mit aufnehmen und wird so auf die Businessschicht übertragen. Durch diese Konvention wird sichergestellt, dass der Sicherheitskontext auch auf Businessebene verfügbar ist. Das Anwendungskontextobjekt wird nach der Authentifizierung des Benutzers erzeugt und mit dem Sicherheitskontext gefüllt. Zusätzlich könnte man hier weitere Informationen wie Spracheinstellungen (java.util.locale) oder fachlich bedingte Benutzerinformationen im Anwendungskontext hinterlegen, sofern sie nicht schon im Sicherheitskontext enthalten sind. Nach der Authentifizierung des Benutzers wird einmalig das Anwendungskontextobjekt erzeugt und mit dem Sicherheitskontext gefüllt. Der Anwendungskontext steht javamagazin

4 Enterprise Listing 1 public class HelloWorldService implements IHelloWorldService ({ ROLE_USER, ROLE_ADMIN ) public String sayhello(helloremotecontext helloremotecontext, String name) { return Hello + ROLE_ADMIN ) public String sayhellotoadmin (HelloRemoteContext helloremotecontext, String name) { return Hello Administrator + name; Listing 2 Abb. 3: Homepage von Hello- Remote dann für die Dauer der Benutzersession zur Verfügung und wird im Falle einer Webapplikation in der HTTP-Session hinterlegt. Auf Businessebene sorgt ein AOP-Interceptor für die Extraktion des Sicherheitskontexts aus dem Anwendungskontext und speichert den Sicherheitskontext mittels des SecurityContextHolder [9] im aktuellen Ausführungs-Thread java.lang.threadlocal. Ein selbst definierter Before-Advice sorgt dafür, dass vor der eigentlichen Ausführung der Businessmethode der Sicherheitskontext für die Sicherheitsüberprüfungen verfügbar ist. Aus der Webapplikation heraus wird eine Aktion ausgelöst (z.b. Formular-Submit), die den Aufruf protected HelloRemoteContext gethelloremotecontext (HttpServletRequest request) { HelloRemoteContext helloremotecontext = (HelloRemoteContext) request.getsession().getattribute( HELLO_REMOTE_CONTEXT_SESSION_KEY); if (helloremotecontext == null) { SecurityContext securitycontext = SecurityContextHolder.getContext(); helloremotecontext = new HelloRemoteContext(securityContext); this.registerhelloremotecontextinsession(helloremotecontext, request.getsession()); return helloremotecontext; einer Businessmethode zur Folge hat. Über das EJB-Remote-Interface wird eine Methode mit Übergabe des Anwendungskontexts aufgerufen. Die Geschäftslogik ist in diesem Fall als Spring-Service in normalen Java Beans (POJOs) implementiert und wird nur über dessen Java-Interface (POJI) direkt referenziert. Die Trennung von Schnittstelle und Implementierung, wie sie in Spring üblich ist, erleichtert die Testbarkeit und Austauschbarkeit der Implementierung, da sie nicht vom EJB-Container oder einer anderen Laufzeitumgebung direkt abhängig ist. Aus diesem Grund wird die Implementierung der Geschäftslogik auch nicht direkt in der EJB (Session Bean) durchgeführt. Der Service wird lediglich exportiert, d.h. eine Stateless Session Bean (EJB-Exporter) dient nur als Fassade für den Remote-Zugriff und delegiert die Methodenaufrufe an den implementierenden Service weiter. Ein AOP-Advice sorgt schließlich dafür, dass vor dem eigentlichen Methodenaufruf der Sicherheitskontext aus dem Anwendungskontext extrahiert wird und stellt diesen dem Spring-Security- Kontext auf Businessebene zur Verfügung. Die Sicherheitsüberprüfungen müssen damit nicht direkt im Fachlogikcode implementiert werden, sondern können an zentraler Stelle hinterlegt und wiederverwendet werden [2]. Mittels Java-Annotationen wird an der Methode angegeben, welche Sicherheitsbedingungen für die Methodenaufrufe erfüllt sein müssen, z.b. welcher Rolle der aufrufende Benutzer zugeordnet sein muss. Beispiel Hello-Remote Zur Demonstration dieses Sachverhalts soll eine kleine Hello World - Applikation dienen, die über einen HelloWorldService verschiedene sayhello-methoden zur Verfügung stellt. Diese Methoden sind über die annotiert, sodass nur Benutzer mit der dort definierten Rolle die Methode aufrufen dürfen (Listing 1). Als Deployment-Szenario soll die in Abbildung 2 dargestellte Situation gewählt werden, bei der die Webapplikation Abb. 4: Spring-Security-Login-Formular auf einem Tomcat (Version 6) als Webarchiv (WAR) und die Businessschicht mit den Spring-Services und EJBs in einem Enterprise-Archiv (EAR) auf einem entfernten JBoss-Server (Version 4.0) deployt wird. Die Webanwendung wird beispielhaft mithilfe des Struts- Frameworks implementiert. Die EJBs basieren auf der EJB-2.1-Spezifikation, können aber ebenso durch EJB 3 Session Beans ersetzt werden. Die Webanwendung ist sehr einfach gehalten und enthält lediglich zwei JSPs und eine Struts-Action-Klasse. Nach dem Deployment der WAR-Datei kann die Applikation unter dem Context-Pfad /hello-remote-web aufgerufen werden (Abb. 3). Ausgehend von der Startseite (Homepage) gibt es lediglich einen Link Secure Page, der auf eine geschützte Seite verweist. Bei einem Klick auf diesen Link wird von automatisch ein Login-Formular angezeigt, mit dem sich der Benutzer authentifizieren kann (Abb. 4). Nach erfolgreicher Anmeldung wird die geschützte Seite mit weiteren Links angezeigt (Abb. 5). Nach erfolgreichem Login wird der SecurityContext mit den Benutzerinformationen wie Benutzername, Passwort und Autorisierungsdaten (Rollen) mithilfe des SecurityContextHolder im lokalen Thread gespeichert. Er kann von nun an von der Anwendung über die statische Methode getcontext() abgerufen werden. Beim Aufruf der Businessmethode wird in der Action-Klasse zunächst der Anwendungskontext über die Methode gethelloremotecontext(httpservlet- Request request) für den Methodenaufruf angefordert und beim ersten Aufruf erzeugt (Listing 2). Der Anwendungskontext (HelloRemoteContext) wird nun bei jedem Me- 60 javamagazin

5 thodenaufruf als erster Parameter übergeben, wodurch sichergestellt wird, dass der darin enthaltene SecurityContext auf Businessebene zur Verfügung steht und wieder extrahiert werden kann. Alternativ könnte man auch einen clientseitigen Aspekt implementieren, der vor jedem Aufruf der entfernten Servicemethode den SecurityContext an den HelloRemoteContext übergibt. Das ist vor allem dann empfehlenswert, wenn sich der SecurityContext während einer Benutzersession ändert oder wenn man sichergehen will, dass der Aufrufer ein gültiges SecurityContext-Objekt im Applikationskontextobjekt übergibt. Allerdings ändert sich der SecurityContext während einer Benutzersession normalerweise nicht, sodass man hier auf den Overhead des AOP-Aspekts verzichten kann. In Listing 3 ist die clientseitige Spring-Security-Konfiguration zu sehen. An dieser Stelle wird besonders die vereinfachte Namespace-Konfiguration deutlich. Mittels des Security Namespaces kann eine Standardkonfiguration aktiviert werden (security:http autoconfig="true"), die bereits alle benötigten Klassen für eine HTTP-Security-Konfiguration einbindet. Für die Nutzung des Frameworks muss man nicht mehr genau wissen, welche Funktionalität durch welche Klasse implementiert wird. Durch die Angabe von URL-Patterns wird festgelegt, dass z.b. alle Ressourcen im secure-verzeichnis sowie alle Actions mit der Endung.do eine Authentifizierung benötigen (IS_AU- THENTICATED_REMEMBERED). Die eigentlichen Benutzerdaten werden durch die Implementierung des Interface UserDetailsService bereitgestellt. Diese enthält lediglich die Methode loaduserbyusername, die auf Basis des übergebenen Benutzernamens ein User- Details-Objekt erwartet. An dieser Stelle beziehen wir die Benutzerdaten aus der Businessschicht, sodass in der Webschicht kein direkter Zugang zur Datenbank erforderlich ist. Dadurch werden auch keine sicherheitskritischen Daten auf dem Server innerhalb der DMZ abgelegt (z.b. Benutzername und Passwort für DB-Login). Der Remote-Lookup auf die beiden Stateless Session Beans (Service Exporter) wird mittels des Spring- Abb. 5: Geschützte Seite JEE-Namespace transparent von Spring durchgeführt. Im Hintergrund führt Spring durch Nutzung des Business Delegate Patterns [11] den Remote-Lookup durch und ermöglicht dem Client die direkte Nutzung des Serviceinterface. Mit der Einbindung des Filter Proxy DelegatingFilterProxy und der Angabe des (Web-)Application- Context in der web.xml wird die deklarative, clientseitige Konfiguration abgeschlossen (Listing 4). Die serverseitige Konfiguration der Businessschicht ist in Listing 5 abgebildet. Hier kommt ebenfalls die vereinfachte Namespace-Konfiguration zum Einsatz. Eine einfache Form der Implementierung des UserDetailsService ist die Möglichkeit der direkten Auflistung von Benutzerinformationen und Rollen mittels des security:user-tags. Konkret versteckt sich dahinter die Klasse InMemoryDaoImpl, die die Benutzerinformationen in einer java.util.hashmap im Speicher hält. In der Praxis würden diese Informationen z.b. aus einer Datenbank durch eine eigene Implementierung des Interface UserDetailsService bereitgestellt werden. Für einfache Testzwecke (und für dieses Beispiel) ist diese Möglichkeit allerdings gut geeignet. Aus Gründen der Vereinfachung sind in diesem Beispiel die Spring-Bean-Definitionen in einer einzigen XML-Datei festgehalten. In der Praxis sollte man besser die fachlichen Spring Beans in einer separaten XML-Datei definieren, sodass sie von den Security-Definitionen getrennt sind. Zur Laufzeit werden dann Anzeige

6 Enterprise beide XML-Dateien zu einem gemeinsamen ApplicationContext zusammengesetzt. Durch diese Trennung kann man beim Testen der fachlichen Services die Sicherheitsüberprüfungen komplett ein- oder ausschalten. Nennenswert an dieser Stelle ist im Wesentlichen der deklarierte Before- Advice SecurityContextExtractorAspect, der mithilfe von Spring-AOP vor der eigentlichen Methodenausführung den SecurityContext aus dem HelloRemoteContext Methode extrahiert und in den SecurityContextHolder auf Businessebene speichert. Durchgeführt wird dies in der extractsecurity- Context-Methode (Listing 6). Durch die Implementierung des Interface Ordered kann die Reihenfolge der aufgerufenen Es ist möglich, die Sicherheitsprüfungen komplett ein- oder auszuschalten. Advices beeinflusst werden. Durch die Angabe von Ordered.HIGHEST_PRE- CEDENCE wird sichergestellt, dass der SecurityContextExtractorAspect mit der höchsten Priorität vor dem SecurityInterceptor von, der für die Auswertung verantwortlich ist, ausgeführt wird. Würde der SecurityContextExtractor- Aspect erst nach dem SecurityInterceptor ausgeführt werden, könnte die eigentliche Sicherheitsüberprüfung aufgrund des fehlenden SecurityContext nicht durchgeführt werden. Der SecurityContext wird hier lediglich aus dem Hello- RemoteContext-Objekt extrahiert (Implementierung des IntegratedSecurityContext-Interface) und über den SecurityContextHolder verfügbar gemacht. Als Erweiterung des Aspekts könnte man eine Gültigkeitsprüfung des SecurityContext durchführen, indem Listing 3 <security:http auto-config= true > <security:intercept-url pattern= /secure/index.jsp access= ROLE_USER, ROLE_ADMIN, ROLE_GUEST /> <security:intercept-url pattern= /secure/** access= IS_AUTHENTICATED_REMEMBERED /> <security:intercept-url pattern= /*.do access= IS_AUTHENTICATED_REMEMBERED /> <security:intercept-url pattern= /** access= IS_AUTHENTICATED_ANONY- MOUSLY /> </security:http> <security:authentication-provider user-service-ref= userdetailsservice /> <util:properties id= myjndiproperties location= classpath:jndi.properties /> <jee:remote-slsb id= helloworldservice jndi-name= ejb/helloworldserviceexporter business-interface= de.opitzconsulting.helloremote. service.ihelloworldservice environment-ref= myjndiproperties > </jee:remote-slsb> <jee:remote-slsb id= userdetailsservice jndi-name= ejb/userdetailsserviceexporter business-interface= org.springframework.security. userdetails.userdetailsservice environment-ref= myjndiproperties > </jee:remote-slsb> Listing 4 <!-- Laden des Web-ApplicationContext --> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/classes/ applicationcontext-security-web.xml</param-value> </context-param> <!-- Einbindung von --> <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-class>org.springframework.web.filter. DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context. ContextLoaderListener</listener-class> </listener> Listing 5 <bean id= securitycontextextractoraspect class=»de.opitzconsulting.helloremote.security. SecurityContextExtractorAspect /> <aop:aspect-autoproxy proxy-target-class= false /> <security:authentication-provider user-service-ref= userdetailsservice /> <security:user-service id= userdetailsservice > <security:user name= admin password= admin authorities= ROLE_ADMIN /> <security:user name= user password= user authorities= ROLE_USER /> <security:user name= guest password= guest authorities= ROLE_GUEST /> </security:user-service> <bean id= helloworldservice class= de.opitzconsulting.helloremote.service. HelloWorldService ></bean> <security:global-method-security secured-annotations= enabled /> Listing argnames = secured ) public void extractsecuritycontext(joinpoint jp, Secured secured) throws Throwable { Object[] parameters = jp.getargs(); if (parameters!= null && parameters[0]!= null && parameters[0] instanceof IntegratedSecurityContext) { IntegratedSecurityContext integratedsecuritycontext = (IntegratedSecurityContext) parameters[0]; SecurityContext securitycontext = integratedsecuritycontext.getsecuritycontext(); if (securitycontext == null) { final String msg = No SecurityContext found in integratedsecuritycontext ; log.error(msg); throw new AuthenticationCredentialsNotFound Exception(msg); SecurityContextHolder.setContext(securityContext); else { final String msg = No authentication object found! ; log.error(msg); throw new AuthenticationCredentialsNotFound Exception(msg); 62 javamagazin

7 eine erneute serverseitige Authentifizierung und Autorisierung vorgenommen wird. Der dadurch wiederholten Abfrage an Benutzerinformationen könnte man durch Caching-Mechanismen entgegenwirken. Allerdings sollte dabei ein angemessenes Trade-Off zwischen Sicherheit und Performance nicht außer Acht gelassen werden. Mit der einfachen Angabe von <security:global-method-security secured-annotations="enabled" /> wird schließlich die Verwendung Secured-Annotationen im Application- Context aktiviert. Die Sicherheitsmechanismen der Webschicht (Login) hat der Benutzer nach erfolgreicher Authentifizierung bereits durchlaufen. Nun wollen wir testen, ob die Sicherheitsmechanismen der Businessschicht funktionieren. Ein Klick auf den Link sayhello liefert die erlaubte Begrüßung Hello User zurück. Beim Aufruf der Methode sayhelloto- Admin wird allerdings eine org.springframework.security.accessdeniedexception geworfen. Da die Methode zuvor mit der ADMIN") annotiert wurde, wird korrekterweise diese von org.springframework. security.springsecurityexception abgeleitete Exception geworfen, die nur Benutzern mit der Rolle "ROLE_ADMIN" den Zugriff gewährt. Fazit Wir haben hier eine Möglichkeit der Übertragung von Sicherheitsinformationen in verteilten Anwendungen auf Basis der EJB-2-Spezifikation vorgestellt. Durch die Kombination der deklarativen Konfiguration in und den Mitteln der aspektorientierten Programmierung (Spring AOP) ist eine relativ transparente Übertragung des Sicherheitskontexts SecurityContext zwischen Anwendungsebenen möglich. Voraussetzung dafür ist allerdings die Bereitstellung eines Anwendungskontexts in den Methoden der öffentlichen Schnittstellen. Mit der Einführung des Security Namespace in wurde zudem die Konfiguration stark vereinfacht, sodass eine Grundkonfiguration schon mit wenigen Einstellungen erreicht werden kann. Dank der vielfältigen Integrationsmöglichkeiten von kann die Anwendung auch nachträglich an die eigenen Sicherheitsanforderungen flexibel angepasst werden. Anzeige Dipl. Wirt.-Inf. Michael Stähler ist Berater bei der Opitz Consulting GmbH. Er ist seit einigen Jahren in der objektorientierten Softwareentwicklung in Java tätig. Sein Schwerpunkt liegt in der Entwicklung von Enterprise-Applikationen der Java EE speziell im Themenbereich der Integration von Unternehmensanwendungen. Kontakt: Links & Literatur [1] de.wikipedia.org/wiki/aspektorientierte_programmierung [2] Cross Cutting Concern: de.wikipedia.org/wiki/cross-cutting_concern [3] static.springframework.org/spring-security/site/index.html [4] Spring Framework: [5] Convention over Configuration: en.wikipedia.org/wiki/convention_over_ Configuration [6] [7] Public Key Infrastructure X.509: [8] Reference Documentation: static.springframework.org/ spring-security/site/reference/html/springsecurity.html [9] SecurityContextHolder: static.springframework.org/spring-security/site/ reference/html/technical-overview.html#d4e580 [10] java.sun.com/blueprints/corej2eepatterns/patterns/businessdelegate.html [11] static.springframework.org/spring/docs/2.0.x/reference/aop-api.html

Application Frameworks

Application Frameworks Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Geschäftskomponenten mit EJB 3.1

Geschäftskomponenten mit EJB 3.1 Geschäftskomponenten mit EJB 3.1 Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Kurt Fastner Sommersemester 2012 Inhalt Was ist EJB Die verschiedenen EJB-Typen/Komponenten Applikationsserver,

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) 10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

Keep it simple Spring Security in der Praxis. Martin Renner OOP 2009

Keep it simple Spring Security in der Praxis. Martin Renner OOP 2009 Keep it simple Spring Security in der Praxis Martin Renner OOP 2009 Agenda Überblick Ausflug zum Spring Framework Zentrale API Komponenten Authentifizierung Konfiguration Autorisierung Fazit 2 Überblick

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Web-Anwendungen mit Arquillian testen

Web-Anwendungen mit Arquillian testen Michael Kotten open knowledge @michaelkotten @_openknowledge Wozu denn testen? Ich mach doch keine Fehler! Wozu denn testen? > Notwendig bei komplexen Systemen > Sicherung von > Qualität > Funktionalität

Mehr

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de FH LU JEE Vorlesung SS 2010 Ralf Gitzel ralf_gitzel@hotmail.de 1 Einführung + Organisatorisches Ralf Gitzel ralf_gitzel@hotmail.de 2 Dozent Dr. Ralf Gitzel Promotion an der Universität Mannheim in Wirtschaftsinformatik

Mehr

Rechnernetze Projekt SS 2015

Rechnernetze Projekt SS 2015 30/03/15 Seite 1 Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden -

Mehr

Security Technologien in Java EE 6

Security Technologien in Java EE 6 Security Technologien in Java EE 6 Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH sebastian.glandien@acando.de Agenda I. Einleitung II. Java Authentication SPI for Containers (JSR-196) I. Message

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Ease of Security. Über mich. Senior Consultant bei Interface21 Germany. Acegi-/Spring-Consulting. Trainings. IT-Security Consulting

Ease of Security. Über mich. Senior Consultant bei Interface21 Germany. Acegi-/Spring-Consulting. Trainings. IT-Security Consulting Ease of Security Java Forum Stuttgart 2007 Mike Wiesner, Interface21 Über mich Senior Consultant bei Interface21 Germany Acegi-/Spring-Consulting Trainings IT-Security Consulting mwiesner@interface21.com

Mehr

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen Sommersemester 2013 Michael Theis, Lehrbeauftragter Java EE Spezifikation definiert ein Programmiermodell für Applikationen die Eigenschaften

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

EJB3.0 Unit-Testing Reloaded

EJB3.0 Unit-Testing Reloaded EJB3.0 Unit-Testing Reloaded Werner Eberling werner.eberling@mathema.de www.mathema.de Werner Eberling, MATHEMA Software GmbH - EJB3.0 - Unit-Testing Reloaded (G4 - Folie 1) Java Forum Stuttgart 2007 Automatisiertes

Mehr

Liste V Enterprise JavaBeans

Liste V Enterprise JavaBeans Liste V Enterprise JavaBeans Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Allgemeine Informatik Vorlesung zur Vertiefungslehrveranstaltung Spezielle Methoden der Softwaretechnik SS

Mehr

Schritt 5: Session Beans

Schritt 5: Session Beans Prof. Dr. Th. Letschert FB MNI JEE Schritt 5: Session Beans Session Beans Übersicht Session Beans dienen dazu serverseitige Geschäftsprozesse zu realisieren. Es gibt sie drei Zustands Varianten: Stateless

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5 Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5 Erstellung der Datenbank Tabellen Als Login Module soll das in der JBoss Installation bereits vorhandene DatabaseServerLoginModule

Mehr

Security Component Bundle

Security Component Bundle Security Component Bundle Bietet Mechanismen zur Authentifizierung und Authorisierung Was bedeuten die Begriffe? Timon Schroeter 2 www.php-schulung.de Security Component Bundle Bietet Mechanismen zur Authentifizierung

Mehr

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart 02.07.2009 bernd.ruecker@camunda.com

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart 02.07.2009 bernd.ruecker@camunda.com Next generation open source BPM JBoss jbpm 4 Java Forum Stuttgart 02.07.2009 bernd.ruecker@camunda.com Bernd Rücker / bernd.ruecker@camunda.com / 2 Guten Morgen Berater, Trainer, Coach Softwareentwickler

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Kommunikation ist alles

Kommunikation ist alles Kommunikation in verteilten Systemen mit Kommunikation ist alles >> alexander ziegler In einem verteilten System müssen die Anwendungsbestandteile miteinander interagieren nur so funktioniert ein großes

Mehr

Hibernate Das Praxisbuch für Entwickler

Hibernate Das Praxisbuch für Entwickler Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo

Mehr

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS) Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Automatisierung, Betrieb, Middleware Einleitung Der Oracle Fusion Middleware Stack beinhaltet eine leistungsstarke

Mehr

ORACLE Business Components for Java (BC4J) Marco Grawunder

ORACLE Business Components for Java (BC4J) Marco Grawunder ORACLE Business Components for Java (BC4J) Marco Grawunder Gliederung 2 Probleme von J2EE/EJB J2EE-Pattern Lösungsansatz: BC4J Architektur einer BC4J-Anwendung Komponenten Entity Objects View Objects Application

Mehr

Online Banking System

Online Banking System Online Banking System Pflichtenheft im Rahmen des WI-Praktikum bei Thomas M. Lange Fachhochschule Giessen-Friedberg Fachbereich MNI Studiengang Informatik Erstellt von: Eugen Riske Yueksel Korkmaz Alper

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Benutzerauthentifizierung und Zugriffsschutz mit JAAS Benutzerauthentifizierung und Zugriffsschutz mit JAAS Werner Eberling werner.eberling@mathema.de www.mathema.de Übersicht Altbekanntes kurz erwähnt Java Security Des Kaisers neue Kleider JAAS Zu Ihren

Mehr

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

Mehr

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

JavaEE Grundlagen. Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A

JavaEE Grundlagen. Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A JavaEE Grundlagen FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012 2 Die Java EE

Mehr

Enterprise Security Instanzbasierte Zugriffskontrolle

Enterprise Security Instanzbasierte Zugriffskontrolle Enterprise Security Instanzbasierte Zugriffskontrolle Architekturkonzepte und Implementierung mit SAF, JAAS und Spring Martin Krasser Der Zugriff auf die Domänenobjekte einer Anwendung wird häufig auf

Mehr

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013 GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?

Mehr

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition Inhaltsverzeichnis Vorwort 13 I Enterprise Java im Überblick 1 Bedeutung von Enterprise Java und IBM WebSphere 21 1.1 Enterprise Java 23 1.1.1 Anforderungen 23 1.1.2 E-Business 30 1.1.3 Java 36 1.2 IBM

Mehr

Architektur im Kontext der Cloud: Patterns und Best Practices 62. Logging. Auswirkung moderner Architektur auf den Betrieb 32

Architektur im Kontext der Cloud: Patterns und Best Practices 62. Logging. Auswirkung moderner Architektur auf den Betrieb 32 Architektur im Kontext der Cloud: Patterns und Best Practices 62 JAVA Mag Sonderdruck 11.2014 magazin Java Architekturen Web www.javamagazin.de Apache DeltaSpike Portabilität und Community 16 Der Rest

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Inhaltsverzeichnis. Zusammenfassung Wydler

Inhaltsverzeichnis. Zusammenfassung Wydler Inhaltsverzeichnis 1 Multitier Anwendungen... 2 2 J2EE Komponenten... 2 2.1 J2EE Design Patterns for Performance... 2 2.1.1 Design Patterns... 2 2.1.2 Session Façade... 2 2.1.3 Data Transfer Object (Value

Mehr

Der IBM Websphere Portalserver

Der IBM Websphere Portalserver Der IBM Websphere Portalserver Ergebnisse aus dem Universitäts-Praxis-Projekt 2001/2002 Vortrag von Il-Hyun Kim und Horst Rechner am 19. Juli 2002 Weiterer Teilnehmer am UPP: Clemens Oertel Betreuer: Dipl.-Phys.

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring Dennis Schulte / Tobias Flohre Enterprise Java Batch mit Spring Dennis Schulte Düsseldorf @denschu www.github.com/denschu blog.codecentric.de/author/dsc tel +49 (0) 1515 _ 288 2395 dennis.schulte@codecentric.de

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Architektur des agimatec-validation Frameworks

Architektur des agimatec-validation Frameworks Development : Implementierung Validierungskonzept (Dokumentation) This page last changed on Apr 03, 2008 by roman.stumm. Architektur des agimatec-validation Frameworks Generierung der Metainformationen

Mehr

0. Inhaltsverzeichnis

0. Inhaltsverzeichnis 0. Inhaltsverzeichnis 0. Inhaltsverzeichnis...1 1. Kurze Einführung WebService Architektur...2 1.1 Synchrones Modell:...2 1.2 Asynchrones Modell:...2 1.3 Vorteile:...3 1.4 Voraussetzungen...3 2. Testseite

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

Securing SOAP e-services

Securing SOAP e-services Securing SOAP e-services Nilson Reyes Sommersemester 2004 aus: E. Damiani, S. De Capitani di Vermercati, S. Paraboschi, P. Samarati, Securing SOAP e-sservices, IJIS, Ausgabe 1 (2002), S.110-115. Gliederung

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

JBoss Seam. Ein JEE 5 Webframework. Jörg Wüthrich Infopoint, 4. Februar 2009

JBoss Seam. Ein JEE 5 Webframework. Jörg Wüthrich Infopoint, 4. Februar 2009 JBoss Seam Ein JEE 5 Webframework Jörg Wüthrich Infopoint, 4. Februar 2009 Inhalt Einführung Warum Seam? Zentrale Konzepte Demo Validierung Abschliessende Gedanken 04.02.2009 Infopoint - JBoss Seam - Jörg

Mehr

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example Gerd Wütherich Nils Hartmann OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen.

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen. EJBs und Sicherheit Vorlesung: Applikationsserver Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen.de/~reich Deklarative Sicherheit Zugriffsrechte auf die EJB-Methoden werden

Mehr

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Peter Roßbach (Systemarchitekt) Gerd Wütherich (Freier Softwarearchitekt) Martin Lippert (akquinet it-agile GmbH) 2009 by P. Roßbach, G. Wütherich,

Mehr

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Peter Roßbach (Systemarchitekt) Gerd Wütherich (Freier Softwarearchitekt) Martin Lippert (akquinet it-agile GmbH) 2009 by P. Roßbach, G. Wütherich,

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

Gerd Wütherich Martin Lippert. OSGi Service Platform by example

Gerd Wütherich Martin Lippert. OSGi Service Platform by example Gerd Wütherich Martin Lippert OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Whitepaper. bi-cube SSO SSO in einer Terminal Umgebung. T e c h n o l o g i e n L ö s u n g e n T r e n d s E r f a h r u n g

Whitepaper. bi-cube SSO SSO in einer Terminal Umgebung. T e c h n o l o g i e n L ö s u n g e n T r e n d s E r f a h r u n g Whitepaper bi-cube SSO T e c h n o l o g i e n L ö s u n g e n T r e n d s E r f a h r u n g Inhalt 1 DIE SITUATION...3 2 ZIELSTELLUNG...4 3 VORAUSSETZUNG...5 4 ARCHITEKTUR DER LÖSUNG...6 4.1 Biometrische

Mehr

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert Komponentenbasierte Softwareentwicklung mit PHP Oliver Schlicht - bitexpert Überblick 1. Was ist eine Komponente? 2. Entwicklung eines Beispieldesigns 3. Dependency Injection 4. DI Container Garden 5.

Mehr

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011 Weiterführende Themen zu Internet- und WWW-Technologien 06. Juni 2011 Übersicht 1 Was ist? 2 Übersicht über 3 MVC-Konzept 4 Groovy Beispiele 5 Tutorial: Kleiner Notizblock Web Application Framework Übersicht

Mehr

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen Referenten: Fabian Bartelt Jens de Witt - Struts 1 Inhaltsverzeichnis Was ist Struts? Vorkenntnisse

Mehr

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover, 13.10.2011

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover, 13.10.2011 NetScaler Integration bei Hellmann Worldwide Logistics Benjamin Kania IS Enterprise Services Manager Hannover, 13.10.2011 Agenda Firmenporträt Das Projekt Details zur Umsetzung Fazit Fakten & Zahlen Mitarbeiter

Mehr

Geschäftskomponenten mit EJBs

Geschäftskomponenten mit EJBs Geschäftskomponenten mit EJBs FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012 2

Mehr

Webinar: Einführung in ICEfaces

Webinar: Einführung in ICEfaces Webinar: Einführung in ICEfaces präsentiert von VOIP-Audio ist standardmässig aktiviert Alternatives Einwählen: +41 (0) 415 0008 65 ICESOFT TECHNOLOGIES INC ICESOFT Donnerstag, TECHNOLOGIES 26. März 2009

Mehr

Architecture Blueprints

Architecture Blueprints Architecture Blueprints Daniel Liebhart, Peter Welkenbach, Perry Pakull, Mischa Kölliker, Michael Könings, Markus Heinisch, Guido Schmutz Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET,

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de Fortgeschrittene Servlet- Techniken Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Servlet Initialisierung Attribute und Gültigkeitsbereiche Sessions

Mehr

Software Design Patterns. Ausarbeitung über. Security Patterns SS 2004

Software Design Patterns. Ausarbeitung über. Security Patterns SS 2004 Ausarbeitung über SS 2004 Dennis Völker [dv04@hdm-stuttgart.de] Steffen Schurian [ss59@hdm-stuttgart.de] Überblick Sicherheit sollte eine Eigenschaft moderner, verteilter Anwendungen sein, jedoch ist ein

Mehr

Benutzerverwaltung mit ASP.NET Membership

Benutzerverwaltung mit ASP.NET Membership Benutzerverwaltung mit ASP.NET Membership Dieser Artikel soll zeigen, wie man ASP.NET Membership einsetzt, um Benutzer einer Web Anwendung zu authentifizieren. Es werden sowohl Grundlagen wie die Einrichtung

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

Existierende Systeme I Bibliotheken & Frameworks

Existierende Systeme I Bibliotheken & Frameworks Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen Existierende Systeme I Bibliotheken & Frameworks Von Christian Schneider Paderborn, den 18.06.2004 Übersicht Motivation Dynamische

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Proseminar Website-Management-Systeme ZOPE/CMF. Andreas M. Weiner

Proseminar Website-Management-Systeme ZOPE/CMF. Andreas M. Weiner Proseminar Website-Management-Systeme ZOPE/CMF Andreas M. Weiner Technische Universität Kaiserslautern Fachbereich Informatik Arbeitsgruppe Softwaretechnik Betreuer: Dipl. Inf. Christian Stenzel Überblick

Mehr

Eclipse Smart Client Beyond Eclipse RCP. Christian Campo, compeople, 24.April 2007

Eclipse Smart Client Beyond Eclipse RCP. Christian Campo, compeople, 24.April 2007 Eclipse Smart Client Beyond Eclipse RCP Christian Campo, compeople, 24.April 2007 1 Übersicht Definition / Architektur Smart Client Smart Client mit RCP Gesamtfazit 2 Fat - Thin - Smart Fat Client lokale

Mehr

Architektur iterativ auf Basis von OSGi entwickeln

Architektur iterativ auf Basis von OSGi entwickeln Architektur iterativ auf Basis von OSGi entwickeln Ein Vortrag von Sven Jeppsson (syngenio AG) und Karsten Panier (Signal Iduna Gruppe) 1 Inhalt Motivation Architektur Architektur Evolution OSGi Refactoring

Mehr

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Beispiel Minibank nur: Kunde, Konto, Überweisung personen.person Attributes Name:String Vorname:String überweisungen.überweisung Attributes Verwendungszweck:String Datum:Date betrag:integer

Mehr

Shibboleth IdP-Erweiterungen an der Freien Universität Berlin

Shibboleth IdP-Erweiterungen an der Freien Universität Berlin Steffen Hofmann (Dipl.-Inf.) ZEDAT, Identity and Customer Management (ICM) Shibboleth IdP-Erweiterungen an der Freien Universität Berlin Informative Login-Webseiten, JAAS-Login- Module, Login-Handler,

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

Anwendung der Aspektorientierung : Security

Anwendung der Aspektorientierung : Security Seminar AOSD Anwendung der Aspektorientierung : Security Miao Tang Betreuer: Dipl.-Inform. Dirk Wischermann 1. Motivation Anwendung der AO: Security 2 Sicherheitsprobleme beim Design und bei der Programmierung

Mehr

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln Version: 0.1 Autor: Anja Beuth Inhaltsverzeichnis 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Prototypische Bug Report / Feature Request Anwendung

Prototypische Bug Report / Feature Request Anwendung PROJEKT-AUFGABE Spezielle Methoden der Softwaretechnik / Komponententechnologien Enterprise JavaBeans WS 2007/2008 Prototypische Bug Report / Feature Request Anwendung Kurzbeschreibung: Es soll ein webbasiertes

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Java Beans (22.02.2001)

Java Beans (22.02.2001) Component Based Software Development Java Beans (22.02.2001) Stefan Jäger Robert Kalcklösch Veranstalter: M. Bittner W. Koch Inhalt Einführung in Java Die Java Beans Einsatz und Entwicklung von Beans Enterprise

Mehr

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern Daniel Tschan Technischer Leiter Michael Zaugg Software-Ingenieur Motivation Puzzle Through 2016, companies will continue

Mehr

Dreamwap. Systemanalyse

Dreamwap. Systemanalyse Dreamwap Systemanalyse Änderungskontrolle Version Datum Name Bemerkung 0.1 15.7.2000 P. Troxler Initialversion 0.2 16.7.2000 P. Troxler Neue Tabelle: Kap. 2.1. Vgl. Datenbank Tabellen 0.3 18.7.2000 P.

Mehr