SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie Auditoría BD 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
 

Ähnlich wie Auditoría BD 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
 

Mehr von 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
 

Kürzlich hochgeladen

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Kürzlich hochgeladen (13)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Auditoría BD 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.