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

1,867 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,867
On SlideShare
0
From Embeds
0
Number of Embeds
377
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide























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

    1. 1. Spring WebFlow 2 & Spring Security 3 15a. Reunión de SpringHispano.org y grails.org.mx (sábado 8 de mayo del 2010)
    2. 2. Agenda ¿Qué es Spring Web Flow? Características ¿Cómo implementarlo? ¿Qué es Spring Security? Características ¿Cómo implementarlo? Conjuntarlos
    3. 3. ¿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
    4. 4. 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
    5. 5. 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
    6. 6. ¿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
    7. 7. 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>
    8. 8. ¿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
    9. 9. Elementos de un flujo Section head Section data(opcional) Section body Section footer(opcional)
    10. 10. Múltiples Scopes flow view request flash conversation
    11. 11. Estados start-state action-state view-state decision-state subflow-state end-state
    12. 12. ¿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
    13. 13. • 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
    14. 14. ¿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
    15. 15. ¿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>
    16. 16. 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>
    17. 17. 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>
    18. 18. 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>
    19. 19. 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>
    20. 20. Taglibs ifAllGranted ifAnyGranted ifNotGranted
    21. 21. Let’s code
    22. 22. Gracias!!!! @neodevelop - springhispano.org @springhispano

    ×