SlideShare a Scribd company logo
1 of 22
Download to read offline
Auditoría en BD de las sesiones web




                                                                                    Bernabé Nicolás
                                                                                    García


© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Contenido


1.- Presentación del problema
2.- Contextos
3.- Solución




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Presentación del problema


    Auditoría Cliente servidor




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Presentación del problema


    Auditoría Web




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Presentación del problema


    Trigger base de datos




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Contextos

http://www.um.es/atica/sql---contextos

       Un contexto Oracle (o contexto de aplicación o también namespace), es algo así como
una agrupación de variables globales. Oracle permite crear contextos (con el privilegio
CREATE ANY CONTEXT), y dentro de cada contexto se pueden definir atributos (similares a
variables globales), de forma que una vez que le asigno valor a un atributo lo tendré disponible
en cualquier momento dentro de la misma sesión (incluso entre sesiones si defino el
contexto como global). Otra sesión puede tener un valor diferente para el mismo atributo
anterior.


Para crear un contexto, primero tengo que crear un paquete que me permita definir atributos
para dicho contexto (proporcionando seguridad a la citada definición de atributos); de modo
que no puedo definir atributos en un contexto ejecutando directamente
DBMS_SESSION.SET_CONTEXT (obtendría un error "ORA-01031 Privilegios Insuficientes"),
sino que tengo que hacerlo desde el paquete del contexto, por ejemplo:



SQL> create context ctx_prueba using pkg_ctx_prueba ACCESSED GLOBALLY;;
Context created.



© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Contextos



     Paquete de base de datos para la gestión de contextos




    © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución




    Modificaciones en la base de datos:




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución



     Modificación del Trigger de auditoría




    © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución


    Función f_usuario_auditoria. Varias aplicaciones, cada una
    en un Contexto diferente.




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución



    Función get_value.




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución




    Modificaciones en la aplicación Web:




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución


  
      Establecemos la variable dni del contexto en la
      aplicación Web.




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución



    Set_client_identifier




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución


 
      Set_dni




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Solución


 
     Obtenemos…




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Alternativa Solución (Aún no
                  probada)

  
       En el POM Principal de la aplicación hay que añadir:

       <properties>
               <fundeweb-jpa-
       extend.version>1.2.6.CR1</fundeweb-jpa-
       extend.version>
       </properties>
   
        En la clase ServicioGenericoPao la declaramos como
        clase abstracta:




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Alternativa Solución


  
      Le añadimos los siguientes métodos:


      protected DataSource getDataSource() {
        return this.dataSource;
      }




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Alternativa Solución


  
       Le añadimos los siguientes métodos:

      /**
            * Metodo utilzado para obtener una conexion del datasource pasado como parametro,
      configurada con los parámetros de
            * identificación de la 'acción' a realizar por un 'usuario' de una 'aplicción'.
            *
            * @param dataSource
            *             -- un DataSource del que se obtiene la conexion.
            * @param action
            *             -- la acción realizada
            * @param application
            *             -- la aplicación donde se realiza la acción
            * @param user
            *             -- el usuario que realiza la acción
            * @return Connection -- una conexion JDBC.
            * @throws SQLException
            *              - si se produce algun error
            */
          protected Connection getConnectionWithClientId(DataSource dataSource, String action,
      String program, String user)
                                                                      throws SQLException {
          return dataSource == null ? null :
      OracleUtils.setClientIdToConnection(dataSource.getConnection(), action,
                                                   program, user);
          }

© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Alternativa Solución


  
       Le añadimos los siguientes métodos:

      /**
            * Metodo utilzado para obtener una conexion del datasource obtenido mediante el método
      getDataSource(),
            * configurada con los parámetros de identificación de la 'acción' a realizar por un
      'usuario' de una 'aplicción'.
            *
            * @param action
            *             -- la acción realizada
            * @param application
            *             -- la aplicación donde se realiza la acción
            * @param user
            *             -- el usuario que realiza la acción
            * @return Connection -- una conexion JDBC.
            * @throws SQLException
            *              - si se produce algun error
            */
          protected Connection getConnectionWithClientId(String action, String program, String user)
      throws SQLException {
          return getDataSource() == null ? null :
      OracleUtils.setClientIdToConnection(getDataSource().getConnection(), action,
                                                   program, user);
          }




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Alternativa Solución


  
      Ahora en las llamadas JDBC tienes que obtener la
      conexión con el método getConnectionWithClientId,
      pasándole los parámetros de la acción, aplicación y
      usuario.


 ATENCION: Este método solo funciona con el driver
 OJDBC de Oracle sin DMS. En el OC4J se esta cargando el
 driver con DMS, por lo que este método no funciona.




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Fin




                           Gracias por vuestra atención


                                       ¿Alguna pregunta?




© 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

More Related Content

Viewers also liked

diapositivas auditoria de sistemas
diapositivas auditoria de sistemasdiapositivas auditoria de sistemas
diapositivas auditoria de sistemasnelsyjazmin
 
Auditoria De La Gestion De Las Tic
Auditoria De La Gestion De Las TicAuditoria De La Gestion De Las Tic
Auditoria De La Gestion De Las Ticdcordova923
 

Viewers also liked (20)

diapositivas auditoria de sistemas
diapositivas auditoria de sistemasdiapositivas auditoria de sistemas
diapositivas auditoria de sistemas
 
Auditoria De La Gestion De Las Tic
Auditoria De La Gestion De Las TicAuditoria De La Gestion De Las Tic
Auditoria De La Gestion De Las Tic
 
En 20 minutos ... jQuery
En 20 minutos ... jQueryEn 20 minutos ... jQuery
En 20 minutos ... jQuery
 
LOGATICA
LOGATICALOGATICA
LOGATICA
 
Notimovil
NotimovilNotimovil
Notimovil
 
MEDEA contada a los alumnos de Grado de Ingeniería Informática
MEDEA contada a los alumnos de Grado de Ingeniería InformáticaMEDEA contada a los alumnos de Grado de Ingeniería Informática
MEDEA contada a los alumnos de Grado de Ingeniería Informática
 
En 20 minutos ... Como se hizo LooWID.com
En 20 minutos ... Como se hizo LooWID.comEn 20 minutos ... Como se hizo LooWID.com
En 20 minutos ... Como se hizo LooWID.com
 
En 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra Web
En 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra WebEn 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra Web
En 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra Web
 
En 20 minutos ... Tests de Aceptación con Cucumber
En 20 minutos ... Tests de Aceptación con CucumberEn 20 minutos ... Tests de Aceptación con Cucumber
En 20 minutos ... Tests de Aceptación con Cucumber
 
En 20 minutos ... Charla selenium
En 20 minutos ... Charla seleniumEn 20 minutos ... Charla selenium
En 20 minutos ... Charla selenium
 
Pórtico
PórticoPórtico
Pórtico
 
Auditoria y seguridad de ti
Auditoria y seguridad de tiAuditoria y seguridad de ti
Auditoria y seguridad de ti
 
En 20 minutos ... HTML5 + CSS3
En 20 minutos ... HTML5 + CSS3En 20 minutos ... HTML5 + CSS3
En 20 minutos ... HTML5 + CSS3
 
Medea. Metodología de desarrollo en ÁTICA
Medea. Metodología de desarrollo en ÁTICAMedea. Metodología de desarrollo en ÁTICA
Medea. Metodología de desarrollo en ÁTICA
 
En 20 minutos ... Arquitectura Oracle
En 20 minutos ... Arquitectura OracleEn 20 minutos ... Arquitectura Oracle
En 20 minutos ... Arquitectura Oracle
 
En 20 minutos ... jBPM
En 20 minutos ... jBPMEn 20 minutos ... jBPM
En 20 minutos ... jBPM
 
En 20 minutos ... Charla drools
En 20 minutos ... Charla droolsEn 20 minutos ... Charla drools
En 20 minutos ... Charla drools
 
En 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyecto
En 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyectoEn 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyecto
En 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyecto
 
Experiencia de Usuario (UX)
Experiencia de Usuario (UX)Experiencia de Usuario (UX)
Experiencia de Usuario (UX)
 
En 20 minutos... Buenas Practicas SSL
En 20 minutos... Buenas Practicas SSLEn 20 minutos... Buenas Practicas SSL
En 20 minutos... Buenas Practicas SSL
 

Similar to Auditoria en BD de las Sesiones Web

Cloud computing[11]
Cloud computing[11]Cloud computing[11]
Cloud computing[11]heidymarquez
 
MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021Ieva Navickaite
 
Capa de aplicacion
Capa de aplicacionCapa de aplicacion
Capa de aplicacionfillescas
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Ricard Luquero
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
Introducción a la Computacion en la Nube
Introducción a la Computacion en la NubeIntroducción a la Computacion en la Nube
Introducción a la Computacion en la NubeJuan David Pareja Soto
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2Steven Gomez
 
Androidpresentacion 090531114810-phpapp02
Androidpresentacion 090531114810-phpapp02Androidpresentacion 090531114810-phpapp02
Androidpresentacion 090531114810-phpapp02MadBlake
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.netLisbeth Ocaña Bueno
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptRolitoChc1
 

Similar to Auditoria en BD de las Sesiones Web (20)

Ado net certificacion 2013
Ado net certificacion 2013Ado net certificacion 2013
Ado net certificacion 2013
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing[11]
Cloud computing[11]Cloud computing[11]
Cloud computing[11]
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Web API ASP. NET XAMARIN - Luis Fernando Aguas
Web API ASP. NET XAMARIN - Luis Fernando AguasWeb API ASP. NET XAMARIN - Luis Fernando Aguas
Web API ASP. NET XAMARIN - Luis Fernando Aguas
 
Taller 4 - Teleinformatica
Taller 4 - TeleinformaticaTaller 4 - Teleinformatica
Taller 4 - Teleinformatica
 
Base de Datos Movil
Base de Datos MovilBase de Datos Movil
Base de Datos Movil
 
MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021
 
Android
AndroidAndroid
Android
 
Capa de aplicacion
Capa de aplicacionCapa de aplicacion
Capa de aplicacion
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
Introducción a la Computacion en la Nube
Introducción a la Computacion en la NubeIntroducción a la Computacion en la Nube
Introducción a la Computacion en la Nube
 
Jdbc
JdbcJdbc
Jdbc
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Androidpresentacion 090531114810-phpapp02
Androidpresentacion 090531114810-phpapp02Androidpresentacion 090531114810-phpapp02
Androidpresentacion 090531114810-phpapp02
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
CLOUD COMPUTING
CLOUD COMPUTINGCLOUD COMPUTING
CLOUD COMPUTING
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.net
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
 

More from Sección de Metodologías, Normalización y Calidad del Software (7)

Atica Dev Ops II
Atica Dev Ops IIAtica Dev Ops II
Atica Dev Ops II
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
En 20 minutos ... Chrome Developer Tools
En 20 minutos ... Chrome Developer ToolsEn 20 minutos ... Chrome Developer Tools
En 20 minutos ... Chrome Developer Tools
 
En 20 minutos ...Control de Cambios de la BD con Liquibase
En 20 minutos ...Control de Cambios de la BD con LiquibaseEn 20 minutos ...Control de Cambios de la BD con Liquibase
En 20 minutos ...Control de Cambios de la BD con Liquibase
 
En 20 minutos ... Responsive Design
En 20 minutos ... Responsive DesignEn 20 minutos ... Responsive Design
En 20 minutos ... Responsive Design
 
Vision estatica de medea
Vision estatica de medeaVision estatica de medea
Vision estatica de medea
 
FundeWeb. El framework de desarrollo en ÁTICA
FundeWeb. El framework de desarrollo en ÁTICAFundeWeb. El framework de desarrollo en ÁTICA
FundeWeb. El framework de desarrollo en ÁTICA
 

Recently uploaded

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Recently uploaded (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

Auditoria en BD de las Sesiones Web

  • 1. Auditoría en BD de las sesiones web Bernabé Nicolás García © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 2. Contenido 1.- Presentación del problema 2.- Contextos 3.- Solución © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 3. Presentación del problema  Auditoría Cliente servidor © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 4. Presentación del problema  Auditoría Web © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 5. Presentación del problema  Trigger base de datos © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 6. Contextos http://www.um.es/atica/sql---contextos Un contexto Oracle (o contexto de aplicación o también namespace), es algo así como una agrupación de variables globales. Oracle permite crear contextos (con el privilegio CREATE ANY CONTEXT), y dentro de cada contexto se pueden definir atributos (similares a variables globales), de forma que una vez que le asigno valor a un atributo lo tendré disponible en cualquier momento dentro de la misma sesión (incluso entre sesiones si defino el contexto como global). Otra sesión puede tener un valor diferente para el mismo atributo anterior. Para crear un contexto, primero tengo que crear un paquete que me permita definir atributos para dicho contexto (proporcionando seguridad a la citada definición de atributos); de modo que no puedo definir atributos en un contexto ejecutando directamente DBMS_SESSION.SET_CONTEXT (obtendría un error "ORA-01031 Privilegios Insuficientes"), sino que tengo que hacerlo desde el paquete del contexto, por ejemplo: SQL> create context ctx_prueba using pkg_ctx_prueba ACCESSED GLOBALLY;; Context created. © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 7. Contextos  Paquete de base de datos para la gestión de contextos © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 8. Solución  Modificaciones en la base de datos: © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 9. Solución  Modificación del Trigger de auditoría © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 10. Solución  Función f_usuario_auditoria. Varias aplicaciones, cada una en un Contexto diferente. © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 11. Solución  Función get_value. © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 12. Solución  Modificaciones en la aplicación Web: © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 13. Solución  Establecemos la variable dni del contexto en la aplicación Web. © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 14. Solución  Set_client_identifier © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 15. Solución  Set_dni © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 16. Solución  Obtenemos… © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 17. Alternativa Solución (Aún no probada)  En el POM Principal de la aplicación hay que añadir: <properties>         <fundeweb-jpa- extend.version>1.2.6.CR1</fundeweb-jpa- extend.version> </properties>  En la clase ServicioGenericoPao la declaramos como clase abstracta: © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 18. Alternativa Solución  Le añadimos los siguientes métodos: protected DataSource getDataSource() { return this.dataSource; } © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 19. Alternativa Solución  Le añadimos los siguientes métodos: /** * Metodo utilzado para obtener una conexion del datasource pasado como parametro, configurada con los parámetros de * identificación de la 'acción' a realizar por un 'usuario' de una 'aplicción'. * * @param dataSource * -- un DataSource del que se obtiene la conexion. * @param action * -- la acción realizada * @param application * -- la aplicación donde se realiza la acción * @param user * -- el usuario que realiza la acción * @return Connection -- una conexion JDBC. * @throws SQLException * - si se produce algun error */ protected Connection getConnectionWithClientId(DataSource dataSource, String action, String program, String user) throws SQLException { return dataSource == null ? null : OracleUtils.setClientIdToConnection(dataSource.getConnection(), action, program, user); } © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 20. Alternativa Solución  Le añadimos los siguientes métodos: /** * Metodo utilzado para obtener una conexion del datasource obtenido mediante el método getDataSource(), * configurada con los parámetros de identificación de la 'acción' a realizar por un 'usuario' de una 'aplicción'. * * @param action * -- la acción realizada * @param application * -- la aplicación donde se realiza la acción * @param user * -- el usuario que realiza la acción * @return Connection -- una conexion JDBC. * @throws SQLException * - si se produce algun error */ protected Connection getConnectionWithClientId(String action, String program, String user) throws SQLException { return getDataSource() == null ? null : OracleUtils.setClientIdToConnection(getDataSource().getConnection(), action, program, user); } © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 21. Alternativa Solución  Ahora en las llamadas JDBC tienes que obtener la conexión con el método getConnectionWithClientId, pasándole los parámetros de la acción, aplicación y usuario. ATENCION: Este método solo funciona con el driver OJDBC de Oracle sin DMS. En el OC4J se esta cargando el driver con DMS, por lo que este método no funciona. © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
  • 22. Fin Gracias por vuestra atención ¿Alguna pregunta? © 2009. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.