Integracion WCP - BPM: Access Denied (keyName=BPM-CRYPTO)
En los entornos de desarrollo es típico el ejecutar SOA y WebCenter en un mismo dominio de WebLogic.
En este caso en concreto se trata de un entorno con WebCenter Portal 11.1.1.8.7 y Oracle SOA/BPM 11.1.1.7.7. En el que se quiere habilitar Process-Spaces para poder usar los Task Flows de BPM dentro de los portales de WebCenter Portal.
Al habilitar la extensión de BPM Process Spaces para poder usar los Task Flows de BPM e intentar utilizar los Task Flows de BPM te puedes encontrar con la siguiente excepción:
Caused by: java.security.AccessControlException: access denied (oracle.security.jps.service.credstore.CredentialAccessPermission context=SYSTEM,mapName=BPM-CRYPTO,keyName=BPM-CRYPTO read)
Al abrir esta librería compartida en la consola de administración de WebLogic comprobamos que esta cogiendo las librerías de la home de Oracle_WC1 (Home de WebCenter).
Sin embago, en el Policy Store (en este caso en el fichero system-jazn-data.xml dado que es un entorno de desarrollo con policies en fichero, en uno productivo deberia comprobarse mediante WLST o Enterprise Manager Console) encontramos que las policies solamente están aplicadas sobre la la HOME de SOA.
Si esta basado en fichero, solamente copiar y pegar el bloque cambiando la variable de la oracle home.
En caso de Policy Store basado en base de datos hacerlo por WLST usando como ejemplo los siguientes scripts:
Para cualquier duda extra consultar el siguiente Document de Oracle My Support relacionado con este problema:
While Deploying A Project, The Application Link Is Not Visible Within BPM Workspace (Doc ID 1583533.1)
En este caso en concreto se trata de un entorno con WebCenter Portal 11.1.1.8.7 y Oracle SOA/BPM 11.1.1.7.7. En el que se quiere habilitar Process-Spaces para poder usar los Task Flows de BPM dentro de los portales de WebCenter Portal.
BPM-Process Spaces |
Caused by: java.security.AccessControlException: access denied (oracle.security.jps.service.credstore.CredentialAccessPermission context=SYSTEM,mapName=BPM-CRYPTO,keyName=BPM-CRYPTO read)
A qué es debido esta excepción?.
La instalación de SOA y WebCenter (tanto Portal como Content) traen consigo la siguiente librería compartida: oracle.soa.workflow.wc(11.1.1,11.1.1)oracle.soa.workflow.wc shared-lib usando WebCenter HOME |
Sin embago, en el Policy Store (en este caso en el fichero system-jazn-data.xml dado que es un entorno de desarrollo con policies en fichero, en uno productivo deberia comprobarse mediante WLST o Enterprise Manager Console) encontramos que las policies solamente están aplicadas sobre la la HOME de SOA.
file:${soa.oracle.home}/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar oracle.security.jps.JpsPermission VerificationService.createInternalWorkflowContext ... oracle.security.jps.service.policystore.PolicyStoreAccessPermission context=APPLICATION, name=* getApplicationPolicy
Solución?
La solución se basa en dar los permisos al modulo que corresponda con el despliegue oracle.soa.workflow.wc(11.1.1,11.1.1) en el policy-store. En este caso duplicar las policies asignadas para la home de SOA pero para la home de WC.Si esta basado en fichero, solamente copiar y pegar el bloque cambiando la variable de la oracle home.
file:${wc.oracle.home}/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar oracle.security.jps.JpsPermission VerificationService.createInternalWorkflowContext ... oracle.security.jps.service.policystore.PolicyStoreAccessPermission context=APPLICATION, name=* getApplicationPolicy
En caso de Policy Store basado en base de datos hacerlo por WLST usando como ejemplo los siguientes scripts:
grantPermission(codeBaseURL="file:/u01/oracle/Middleware/Oracle_WC1/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar", permClass="oracle.security.jps.JpsPermission" ,permTarget="VerificationService.createInternalWorkflowContext" ) grantPermission(codeBaseURL="file:/u01/oracle/Middleware/Oracle_WC1/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar", permClass="oracle.security.jps.service.policystore.PolicyStoreAccessPermission" ,permTarget="context=APPLICATION, name=*" , permActions="getApplicationPolicy")
Para cualquier duda extra consultar el siguiente Document de Oracle My Support relacionado con este problema:
While Deploying A Project, The Application Link Is Not Visible Within BPM Workspace (Doc ID 1583533.1)
Gracias Dani por compartir los trucos de integración de WC con BPM
ReplyDelete