Aggiornare e convalidare Java Applications

Di seguito sono riportati i passi di alto livello per la preparazione di un'applicazione Java EE attualmente in esecuzione su Oracle Java Cloud Service - SaaS Extension, da eseguire su Oracle WebLogic Server for OCI.

Prendere nota delle modifiche apportate all'ambiente dell'applicazione riportate di seguito. Sarà necessario aggiornare il codice dell'applicazione per tenere conto delle diverse versioni compatibili tra i due ambienti. Per i dettagli sulle differenze in ogni versione del prodotto, fare riferimento alla documentazione del prodotto.

Area Oracle Java Cloud Service - Estensione SaaS Oracle WebLogic Server per OCI.
Oracle Java Standard Edition JDK 7 JDK 8
Oracle Java Enterprise Edition Java EE 5 Java EE 7
Oracle WebLogic Server WebLogic Server 11g (10.3.6) WebLogic Server 12c
Oracle Fusion Middleware Oracle Fusion Middleware 11g Release 1 (11.1.1.7.1 o 11.1.1.9.1) Oracle Fusion Middleware 12c Release 2 (12.2.1.x)
Oracle JDeveloper Oracle JDeveloper 11g Oracle JDeveloper 12c

L'aggiornamento di Oracle WebLogic Server include l'aggiornamento dei servizi Web di WebLogic (Java EE) (JAX-RS e JAX-WS).

Eseguire i passi di aggiornamento e convalida richiesti

Ri-fattore e quindi test delle applicazioni Java per il nuovo ambiente.

Ognuno dei seguenti passaggi evidenzia ad alto livello un processo che è necessario eseguire per aggiornare e convalidare le applicazioni.

  1. Identificare le pagine protette e anonime nell'applicazione esistente. Di solito le pagine dell'applicazione vengono protette utilizzando la configurazione CLIENT-CERT in web.xml.
  2. Identificare i ruoli utilizzati nell'applicazione corrente. Le applicazioni ADF utilizzano il file jazn-data.xml per definire i ruoli, mentre le applicazioni Java EE possono specificare i ruoli applicazione e i vincoli di sicurezza all'interno dei descrittori di distribuzione dell'applicazione nel file web.xml o nel codice applicazione.
  3. Identificare i criteri utilizzati per la sicurezza dei Web Service per le applicazioni esistenti.
    I criteri di sicurezza client per le applicazioni client SOAP si trovano nel codice dell'applicazione e in genere includono:
    • oracle/wss11_saml_token_with_message_protection_client_policy
    • oracle/wss_saml_token_bearer_over_ssl_client_policy
    Il criterio predefinito per le applicazioni client REST è oracle/http_saml20_token_bearer_over_ssl_client_policy
  4. Identificare se o come l'applicazione è integrata con l'applicazione Oracle basata su Fusion.
    I pattern comuni includono:
    • Incorporare la pagina o i collegamenti utilizzando lo strumento Composer applicazione, Integrazione pagina o Composer pagina
    • Springboard utilizzando lo strumento Struttura
    • Navigazione utilizzando la configurazione Navigator
  5. Identifica le dipendenze dell'applicazione.
    Ad esempio, identificare una delle dipendenze riportate di seguito.
    • Librerie
    • Certificati SSL
    • Certificati di sicurezza Web Services
    • Proprietà di sistema
    • Struttura del file system prevista dall'applicazione
    • Voci credenziali nell'area di memorizzazione credenziali OPSS
    • Uso della notifica di posta elettronica
  6. Esportare i dati dallo schema di database e importare nel nuovo servizio di database in Oracle Cloud Infrastructure. Tenere presente che per Oracle Cloud Infrastructure Database Systems è necessario installare Oracle Application Express (APEX) e eseguire la migrazione delle applicazioni.
    Per ulteriori informazioni, fare riferimento alla documentazione di Oracle Database Cloud - Database Schema Service.
  7. Configurare la sicurezza a livello Web utilizzando Oracle Identity Cloud Service per aggiornare le risorse dell'applicazione protetta, come descritto nella documentazione di Oracle WebLogic Server for OCI.
  8. Configurare l'autorizzazione del ruolo. Integra le interfacce API di utenti e gruppi di OPSS con Oracle Identity Cloud Service, come descritto nella documentazione di Oracle WebLogic Server for OCI.
  9. Scaricare e installare Oracle JDeveloper 12c. Questa versione è allineata alla versione Oracle WebLogic Server selezionata in precedenza.
  10. Aprire le applicazioni Java EE esistenti in Oracle JDeveloper 12c. JDeveloper eseguirà automaticamente la migrazione del progetto a 12c, incluse le dipendenze ADF. Controllare la documentazione di Oracle JDeveloper per i dettagli.
  11. Distribuire e convalidare l'applicazione in Oracle WebLogic Server for OCI:
    1. Generare il file WAR o EAR da Oracle JDeveloper.
    2. Accedere alla console di amministrazione di Oracle WebLogic Server.
    3. Distribuire il file WAR o EAR nel cluster o nei server gestiti del dominio WebLogic.
  12. Per le integrazioni di pagine, aggiornare gli URL dell'applicazione nelle applicazioni basate su Oracle Fusion utilizzando Application Composer o Page Composer, a seconda dei casi per l'applicazione specifica.
  13. Convalidare l'applicazione eseguendo test su ambienti di test o sviluppo.
    Potrebbe essere necessario configurare l'autorizzazione per la sicurezza e il ruolo del livello Web prima di completare la convalida dell'applicazione, come descritto nell'articolo successivo.
Configurare la sicurezza del livello Web e l'autorizzazione dei ruoli in Oracle Identity Cloud Service come descritto nell'articolo successivo prima di distribuire l'applicazione nell'ambiente di produzione.

Diagnostica e risoluzione dei problemi delle autorizzazioni

È possibile che alcuni dei codici dell'applicazione Java generino errori AccessControlException nel nuovo ambiente. È possibile diagnosticare e risolvere questi problemi di autorizzazione controllando i log per i dettagli, quindi configurando le autorizzazioni mediante Oracle Enterprise Manager Fusion Middleware Control.

Quando si definisce codeBase per concedere le autorizzazioni (nel passo 2 della procedura seguente), le variabili di ambiente riportate di seguito potrebbero essere utili.

  • oracle.deployed.app.dir=/u01/data/domains/wls_domain/servers/wls_adminserver/tmp/_WL_user
  • oracle.deployed.app.ext=/-
  • common.components.home=/u01/app/oracle/middleware/oracle_common
  • domain.home=/u01/data/domains/wls_domain

Per diagnosticare e risolvere i problemi relativi alle autorizzazioni, procedere come segue.

  1. Abilita log JPS. Il livello di log predefinito di solito non è sufficiente per trovare l'origine degli errori AccessControlException. L'utilizzo di un dettaglio più fine sui log consente di visualizzare l'esatta base del codice in esecuzione dell'operazione non autorizzata.
    1. Aprire la console di amministrazione di Oracle WebLogic Server e, nell'albero Struttura dominio, espandere Ambiente. Selezionare Server, quindi fare clic sul nome del server gestito.
    2. Selezionare la scheda Avvio server, fare clic su Blocca e modifica, quindi aggiungere gli argomenti riportati di seguito alla fine della lista di argomenti.
      -Djps.auth.debug=true
      Djps.auth.debug.verbose=true
    3. Fare clic su Salva, quindi su Attiva modifiche. Quindi, riavviare il server gestito.
    4. Replicare il caso d'uso che causa AccessControlException, quindi cercare le voci registrate nel file di log .out del server gestito. Cercare la stringa FAILED. ad esempio:
      [OpsAuth] Check Permission
      	  PolicyContext:        [oauth-client]
      	  Resource/Target:      [context=SYSTEM,mapName=user.public.map,keyName=SaaSSystemAccount]
      	  Action:	        [read]
      	  Permission Class:     [oracle.security.jps.service.credstore.CredentialAccessPermission]
      	  Result:	        [FAILED]
      	  Evaluater:	     [ACC]
      	  Failed ProtectionDomain:ClassLoader-weblogic.utils.classloaders.GenericClassLoader@5Da796tt...
      Assicurarsi che PolicyContext, Resource/Target, Action e Permission Class corrispondano a quelli mostrati dall'eccezione.
    5. Controllare il blocco CodeSource visualizzato immediatamente sotto lo snippet di log nel passo precedente. Il file elencato è il file JAR che esegue il codice con l'autorizzazione mancante. ad esempio:
      CodeSource-file:/u01/data/domains/wls_domain/servers/wls_server_1/tmp/_WL_user/oauth-client/kk4bjg/lib/PublicReportServiceWSClient-1.0.11.jar
  2. Concedere un'autorizzazione per questa base codice. A tale scopo è possibile utilizzare lo strumento della riga di comando WLST oppure Oracle Enterprise Manager Fusion Middleware Control. I passi riportati di seguito mostrano come concedere l'autorizzazione mediante Oracle Enterprise Manager.
    Per informazioni dettagliate sull'utilizzo di WLST, collegarsi a My Oracle Support e cercare l'articolo Doc ID 1327577.1.
    1. Accedere a Oracle Enterprise Manager Fusion Middleware Control e dal menu a discesa Dominio WebLogic selezionare Sicurezza, quindi Criteri di sistema. Fare clic su Crea nuova autorizzazione di sicurezza.
    2. Nella pagina Crea autorizzazione di sistema, in CodeBase, aggiungere il file codeSource trovato nel file di log.
      Sostituire le variabili di ambiente per evitare di utilizzare il percorso effettivo del file. Ad esempio, la variabile oracle.deployed.app.dir punta alla cartella _WL_user nel percorso del file di esempio specificato nel file jar degli errori di log di esempio del passo precedente. È inoltre possibile utilizzare la variabile di ambiente oracle.deployed.app.ext per applicare l'autorizzazione a tutto ciò che si trova nel percorso corrente.
      Ad esempio:
      file:${oracle.deployed.app.dir}/MassItem28B${oracle.deployed.app.ext}
    3. Fare clic su Aggiungi. Selezionare Seleziona qui per immettere i dettagli per una nuova opzione di autorizzazione e compilare i dettagli:
      • Classe autorizzazione: oracle.security.jps.service.credstore.CredentialAccessPermission
      • Nome risorsa: context=SYSTEM,mapName=user.public.map,keyName=SaaSSystemAccount
      • Azioni autorizzazione: lettura
    4. Fare clic su OK. Rivedere le informazioni e fare clic su OK per salvare le modifiche.
Dopo aver concesso l'autorizzazione, di solito non è necessario riavviare, ma se il problema persiste, riavviare il server potrebbe risolverlo. Dopo aver risolto un errore di accesso negato, è ora possibile visualizzare un nuovo errore in un altro codeSource, poiché più codice Java è in grado di eseguire. Di conseguenza, potrebbe essere necessario ripetere questo processo di revisione del log, concedere una nuova autorizzazione a un altro file jar, quindi rieseguire il test più volte fino a quando non sono stati risolti tutti i problemi relativi alle autorizzazioni.