Apache Struts - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Apache Struts

Description:

Delegadas en el cliente y el servidor. Basados en est ndares de Internet ... Basados en la especificaci n de servlets ... Redefinir los action mappings ... – PowerPoint PPT presentation

Number of Views:72
Avg rating:3.0/5.0
Slides: 19
Provided by: bas61
Category:

less

Transcript and Presenter's Notes

Title: Apache Struts


1
Autentificación y Seguridad enAplicacionesWeb
2
Tipos deAutentificación
  • Delegadas en el cliente y el servidor
  • Basados en estándares de Internet
  • Autentificación Básica HTTP
  • Autentificación Digest HTTP
  • Autentificación de cliente HTTPs
  • Basados en la especificación de servlets
  • Autentificación basada en formularios
  • Autentificación controlada por programa
  • Hay que basarla en conexiones seguras con HTTPs

3
AutentificaciónHTTP Básica
  • Parte del protocolo HTTP desde sus comienzos.
  • Muy simple
  • Poco seguro
  • Cuando el navegador solicita un recurso (jsp, por
    ejemplo), el servidor solicita usuario y
    contraseña, que viajan encriptadas con
    codificación base 64 bits.
  • Se puede reforzar combinándola con protocolo
    HTTPs, de forma que las peticiones HTTP viajen
    encriptadas.

4
AutentificaciónHTTP digest (resumen)
  • Incorporada en la versión 1.1 de la
    especificación del protocolo HTTP.
  • Algo más complicada internamente que la
    autentificación básica.
  • La codificación va en base al timestamp generado
    por el servidor en el momento de la petición -gt
    Más difícil de decodificar -gt Más seguro.
  • No está totalmente difundida ni aceptada por
    todos los navegadores y servidores.

5
AutentificaciónHTTP de cliente
  • Es el más seguro de los disponibles hoy en día.
  • Se basa en mecanismos de Clave Pública (PKI)
  • Requiere una clave generada por un organismo de
    certificación autorizado.
  • Hay un proceso complicado de handshake que
    garantiza la conexión segura.

6
AutentificaciónBasada en Formularios
  • La única definida en la especificación de
    servlets.
  • Implementada por el contenedor Web.
  • No es segura por si sola, y es necesario
    combinarla con HTTPs (SSL Secure Socket Layer).
  • Permite controlar la apariencia de la pantalla de
    login.
  • La pantalla de login es HTML estándar que sigue
    un convenio para los nombres del os campos de
    usuario y contraseña.

7
AutentificaciónPor Programa
  • Todo lo tenemos que programar
  • La aplicación coteja la contraseña contra su
    propio sistema de control de usuarios
  • Hay que basarla en protocolos seguros de
    comunicación como HTTPs (SSL) para evitar que
    nadie escuche la contraseña interpretando los
    paquetes HTTP.
  • Mas tedioso de programar
  • Ventajas No dependemos de la autentificación del
    entorno -gt Más portable.

8
Piloto con Autentificación básica
  • Trabajo 8.0
  • Es necesario
  • Configurar el server.xml de TOMCAT para que
    solicite autentificación basada en memoria
    (tomcat_users.xml).
  • Crear usuarios y perfiles en tomcat_users.xml
  • Configurar el WEB.xml para restringir el acceso a
    los recursos a un determinado(s) perfil(es) de
    usuario.
  • El usuario se autentifica contra el servidor
    mediante la ventana gris (no HTML)

9
Piloto con Autentificación básica II
  • En el server.xml
  • ltRealm className
  • "org.apache.catalina.realm.MemoryRealm" /gt
  • En Tomcat_users.xml
  • lt?xml version'1.0' encoding'utf-8'?gt
  • lttomcat-usersgt
  • ltrole rolename"amazin"/gt
  • ltuser username"dflanvin" password"dflanvin"
    roles"amazin"/gt
  • lt/tomcat-usersgt

10
Piloto con Autentificación básica III
  • En el web.xml
  • lt!--Autentificación básica. Tener en cuenta que
    los roles y usuarios
  • con sus contraseñas están dados de alta en el
    servidor--gt
  • ltsecurity-constraintgt
  • ltweb-resource-collectiongt
  • ltweb-resource-namegtarqui-javalt/web-resource-nam
    egt
  • lturl-patterngt/lt/url-patterngt
  • lt/web-resource-collectiongt
  • ltauth-constraintgt
  • ltrole-namegtamazinlt/role-namegt
  • lt/auth-constraintgt
  • lt/security-constraintgt
  • ltlogin-configgt
  • ltauth-methodgtBASIClt/auth-methodgt
  • ltrealm-namegtAutentificación de
    Amazinlt/realm-namegt
  • lt/login-configgt
  • ltsecurity-rolegt
  • ltrole-namegtamazinlt/role-namegt
  • lt/security-rolegt

11
Piloto con Autentificación Por Programa
  • Trabajo 9.0. Pasos
  • Crear página Login.jsp
  • Crear el LoginAction en la capa de presentación
  • En el struts-config.xml
  • Crear el Form bean dinámico LoginForm
  • Definir forward Global a login.jsp ante un error
    de autentificación
  • Redefinir los action mappings
  • Modifico los actions de la aplicación para que
    comprueben si hay usuarios en sesión. En caso de
    que no exista, levantamos un evento de error de
    autentificación.

12
Piloto con Autentificación Por Programa II
  • Problema Estamos repitiendo código en todos los
    actions y jsps de la aplicación comprobación de
    que el usuario está en sesión
  • Soluciones
  • Redefinir Struts extendiéndolo para que invoque
    un determinado método ANTES de ejecutar el action
  • Desde la versión 2.3 se servlets, incorporación
    un filtro HTTP.

13
Filtros Servlet HTTP
  • Incorporados en la versión 2.3 de la
    especificación de servlets.
  • Interceptan la invocación del servlet ANTES de
    que sea invocado el propio servlet.
  • Permiten examinar y modificar la request antes de
    que le llegue al servlet.
  • Permite modificar el response y redirigir, en
    caso necesario, la petición a otro recurso
    distinto.
  • Ideales para el control de acceso de usuarios
    autentificados.

14
Filtros Servlet HTTP
  • Interfaz javax.servlet.Filter.
  • Tres métodos
  • void init(FilterConfig config) throws
    ServletException Invocado antes de que el filtro
    entre en servicio. Permite configurar el filtro.
  • void destroy() Invocado cuando el filtro dejar
    de estar en servicio.
  • void doFilter(ServletRequest req, ServletResponse
    res, FilterChain chain) throws IOException,
    ServletException Método que implementará el
    filtrado.

15
Filtros Servlet HTTP
HTTP Filter
Servlet 1
Servlet 1
Servlet 1
Servlet 1
16
WorkShop!Filtros Servlet HTTP
  • Sobre Trabajo 9.0, elaborar un filtro HTTP que
    muestre un mensaje cada vez que es solicitado un
    recurso de nuestro piloto. Pasos
  • Desarrollar la clase com.dflanvin.presentacion.fil
    ter.LoginFilter
  • Importar las librerías necesarias
  • import javax.servlet.
  • import javax.servlet.http.
  • import java.io.IOException
  • import javax.servlet.ServletException

17
WorkShop!Filtros Servlet HTTP II
  • public class LoginFilter implements Filter
  • private FilterConfig filterConfig
  • public void doFilter (ServletRequest request,
  • ServletResponse response,
  • FilterChain chain)
  • System.out.println(Activado el filtrado de
    peticiones)
  • chain.doFilter (request, response)
  • System.out.println(Tras es doFilter.)
  • public void init(FilterConfig fliterConfig)
  • System.out.println(Inicializado el filtro)

18
WorkShop!Filtros Servlet HTTP III
  • Y Modificar el WEB.XML para dar de alta los
    filtros
  • lt!--Definición de Filtros HTTP--gt
  • ltfiltergt
  • ltfilter-namegtControlAccesolt/filter-namegt
  • ltfilter-classgtcom.dflanvin.presentacion.filter.L
    oginFilterlt/filter-classgt
  • lt/filtergt
  • ltfilter-mappinggt
  • ltfilter-namegtControlAccesolt/filter-namegt
  • lturl-patterngt/lt/url-patterngt
  • lt/filter-mappinggt
  • ltfilter-mappinggt
  • ltfilter-namegtControlAccesolt/filter-namegt
  • lturl-patterngt/actionlt/url-patterngt
  • lt/filter-mappinggt
  • ltfilter-mappinggt
  • ltfilter-namegtControlAccesolt/filter-namegt
  • lturl-patterngt.jsplt/url-patterngt
  • lt/filter-mappinggt
Write a Comment
User Comments (0)
About PowerShow.com