15a. Reunion de SpringHispano.org y grails.org.mx
Upcoming SlideShare
Loading in...5
×
 

15a. Reunion de SpringHispano.org y grails.org.mx

on

  • 2,401 views

Esta es la presentación que mostré en la 15a. Reunión de la comunidad de sh.org y grails.org.mx

Esta es la presentación que mostré en la 15a. Reunión de la comunidad de sh.org y grails.org.mx
Mostrando brevemente Spring Web Flow 2 y Spring Security 3

Statistics

Views

Total Views
2,401
Views on SlideShare
2,057
Embed Views
344

Actions

Likes
0
Downloads
25
Comments
0

6 Embeds 344

http://www.springhispano.org 227
http://springhispano.org 65
http://www.techgig.com 28
http://www.slideshare.net 20
http://www.techgig.timesjobs.com 2
http://www.m.techgig.com 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

15a. Reunion de SpringHispano.org y grails.org.mx 15a. Reunion de SpringHispano.org y grails.org.mx Presentation Transcript

  • Spring WebFlow 2 & Spring Security 3 15a. Reunión de SpringHispano.org y grails.org.mx (sábado 8 de mayo del 2010)
  • Agenda ¿Qué es Spring Web Flow? Características ¿Cómo implementarlo? ¿Qué es Spring Security? Características ¿Cómo implementarlo? Conjuntarlos
  • ¿Qué es Spring Web Flow? Sub-proyecto de Spring Es un motor para flujos Web que se pueden conectar con SpringMVC Es un manera de reutilizar una secuencia de vistas relacionadas Es una manera elegante de resolver los problemas de la vista
  • Características NO es un workflow Crea aplicaciones web conversacionales Todos los flujos de captura de datos son candidatos a ser introducidos a un flujo Se integra con SpringMVC y JSF Los flujos son reusables Binding automático del modelo Soporta ‘expression language’(OGNL & Unified EL) Scope Flash Administración de la persistencia en el flujo Redirects externos
  • Características(cont.) Provee un DSL para flujos Nos permite administrar los ‘scopes’ Manejo de eventos Definimos reglas de navegación URL simples y limpias ’s Validación del modelo(cliente y servidor) Uso de Ajax para actualizaciones parciales de página
  • ¿Cómo implementarlo? Necesitamos: Java 1.4 +> Spring 2.5.6 +> Descargar la distribución correspondiente: http://www.springsource.org/download Maven SVN Hay que usar Ant para construirlo
  • Mejor con Maven!!! <properties> <spring.version>3.0.2.RELEASE</spring.version> <webflow.version>2.0.9.RELEASE</webflow.version> </properties> <dependency> <groupId>org.springframework.webflow</groupId> <artifactId>spring-webflow</artifactId> <version>${webflow.version}</version> </dependency> <dependency> <groupId>org.springframework.webflow</groupId> <artifactId>spring-binding</artifactId> <version>${webflow.version}</version> </dependency> <dependency> <groupId>org.springframework.webflow</groupId> <artifactId>spring-js</artifactId> <version>${webflow.version}</version> </dependency>
  • ¿Qué es un flujo en SWF? Una instancia que encapsula una secuencia de pasos que pueden ser ejecutados en diferentes contextos Dichos pasos son llamados estados Típicamente se podría pensar que un estado es una vista En los estados ocurren eventos
  • Elementos de un flujo Section head Section data(opcional) Section body Section footer(opcional)
  • Múltiples Scopes flow view request flash conversation
  • Estados start-state action-state view-state decision-state subflow-state end-state
  • ¿Qué es Spring Security? Otro subproyecto de Spring que provee servicios de seguridad para las aplicaciones JEE Enfatiza su uso en los proyectos que están basados en Spring Permite asegurar aplicaciones Web y Servicios de negocio de manera simple
  • • HTTP BASIC • HTTP Digest • Java Open Source Single Sign On (JOSSO) * • HTTP X.509 • LDAP • OpenNMS Network Management Platform * • Basada en formas • AppFuse * • OpenID • AndroMDA * • JA-SIG Central Authentication Service • Mule ESB * • Remote Method Invocation (RMI) • Direct Web Request (DWR) * and HttpInvoker • Grails * • "remember-me" Automatico • Tapestry * • Anonymous • JTrac * • Run-as • Jasypt * • Java Authentication and • Roller * Authorization Service (JAAS) • Elastic Path * • JEE container • Atlassian Crowd * autentication(Container Managed Authentication) • Sistemas propios • Kerberos
  • ¿Cómo implementarlo? Nuestro archivo de configuración xml con el namespace de SpringSecurity Un filtro HTTP en web.xml Si personalizamos nuestra seguridad, debemos implementar un conjunto de interfaces para que las reconozca la configuración
  • ¿Cómo implementarlo? Permite acceder a los objetos usados por Spring Security de forma más entendible Podemos usar el namespace de ‘security’ en lugar de usar ‘beans’ <beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> </beans> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> ... </beans:beans>
  • Filtro de seguridad <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>
  • Configuración mínima <http auto-config='true'> <intercept-url pattern="/**" access="ROLE_USER" /> </http> <authentication-manager> <authentication-provider> <user-service> <user name="neodevelop" password="elmismo" authorities="ROLE_USER, ROLE_ADMIN" /> <user name="domix" password="contrase–a" authorities="ROLE_USER" /> </user-service> </authentication-provider> </authentication-manager>
  • Asegurando URL’s <http auto-config='true'> <intercept-url pattern="/css/**" filters="none" /> <intercept-url pattern="/login.jsp*" filters="none" /> <intercept-url pattern="/manager/**" access="ROLE_MANAGER" /> <intercept-url pattern="/**" access="ROLE_USER" /> <form-login login-page='/login.jsp' /> </http>
  • Encoders Agregando un encoder para el Password Soporta: sha, ssha, md4, md5, plaintext, sha-256 <authentication-manager> <authentication-provider> <password-encoder hash="sha"/> <user-service> <user name="neodevelop" password="388506c128cb9a841199f4dd574f4e586206fa93" authorities="ROLE_USER, ROLE_ADMIN" /> <user name="domix" password="175d4d507d683a39e44ef0abf4f627a1f6a1b2f1" authorities="ROLE_USER" /> </user-service> </authentication-provider> </authentication-manager>
  • Taglibs ifAllGranted ifAnyGranted ifNotGranted
  • Let’s code
  • Gracias!!!! @neodevelop - springhispano.org @springhispano