Atualize e Valide seus Aplicativos Java

Veja a seguir as etapas de alto nível para preparar um aplicativo Java EE atualmente em execução no Oracle Java Cloud Service - SaaS Extension, para ser executado no Oracle WebLogic Server for OCI.

Anote as seguintes alterações no ambiente do aplicativo. Será necessário atualizar o código do aplicativo para levar em conta as diferentes versões compatíveis entre os dois ambientes. Para obter detalhes das diferenças em cada versão do produto, consulte a documentação do produto.

Área Oracle Java Cloud Service - SaaS Extension Oracle WebLogic Server para 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 ou 11.1.1.9.1) Oracle Fusion Middleware 12c Release 2 (12.2.1.x)
Oracle JDeveloper Oracle JDeveloper 11g Oracle JDeveloper 12c

Observe que o upgrade do Oracle WebLogic Server inclui o upgrade dos Web services WebLogic (Java EE) (JAX-RS e JAX-WS).

Executar Etapas de Atualização e Validação Obrigatórias

Fator novamente e, em seguida, testar seus aplicativos Java para o novo ambiente.

Cada uma das etapas a seguir destaca em alto nível um processo que você precisa executar para atualizar e validar suas inscrições.

  1. Identifique páginas seguras e anônimas em seu aplicativo existente. Geralmente, as páginas do aplicativo são protegidas usando a configuração CLIENT-CERT em web.xml.
  2. Identifique as atribuições usadas no aplicativo atual. As aplicações ADF usam o arquivo jazn-data.xml para definir atribuições, enquanto as aplicações Java EE podem especificar atribuições da aplicação e restrições de segurança dentro dos descritores de implantação da aplicação no arquivo web.xml ou no código da aplicação.
  3. Identifique as políticas usadas para segurança de Web services para seus aplicativos existentes.
    As políticas de segurança do cliente para aplicativos cliente SOAP estão localizadas no código do aplicativo e geralmente incluem
    • oracle/wss11_saml_token_with_message_protection_client_policy
    • oracle/wss_saml_token_bearer_over_ssl_client_policy
    A política default para aplicativos cliente do REST é oracle/http_saml20_token_bearer_over_ssl_client_policy
  4. Identifique se ou como o aplicativo está integrado com o Aplicativo Oracle baseado em Fusão.
    Os padrões comuns incluem:
    • Incorporando página ou links usando o Application Composer, Integração de Página ou ferramentas do Page Composer
    • Springboard usando a ferramenta Estrutura
    • Navegação usando a configuração do Navegador
  5. Identifique as dependências do aplicativo.
    Por exemplo, identifique qualquer uma das seguintes dependências:
    • Bibliotecas
    • Certificados SSL
    • Certificados de Segurança de Web Services
    • Propriedades do sistema
    • Estrutura do sistema de arquivos esperada pelo aplicativo
    • Entradas de credenciais no Armazenamento de Credenciais do OPSS
    • Uso de notificação por e-mail
  6. Exporte os dados do Esquema de Banco de Dados e importe-os para o novo serviço de banco de dados no Oracle Cloud Infrastructure. Observe que, para o Oracle Cloud Infrastructure Database Systems, você precisará instalar o Oracle Application Express (APEX) e migrar aplicativos.
    Consulte a documentação do Oracle Database Cloud - Database Schema Service para obter detalhes.
  7. Configure a segurança da camada Web usando o Oracle Identity Cloud Service para atualizar recursos de aplicativos protegidos, conforme descrito na documentação do Oracle WebLogic Server for OCI.
  8. Configure a autorização da atribuição. Integre APIs de usuário e grupo do OPSS ao Oracle Identity Cloud Service, conforme descrito na documentação do Oracle WebLogic Server for OCI.
  9. Faça download e instale o Oracle JDeveloper 12c. Esta versão está alinhada com a versão do Oracle WebLogic Server selecionada anteriormente.
  10. Abra seus aplicativos existentes do Java EE no Oracle JDeveloper 12c. O JDeveloper migrará automaticamente o projeto para o 12c, incluindo dependências ADF. Verifique a documentação do Oracle JDeveloper para obter detalhes.
  11. Implante e valide seu aplicativo para o Oracle WebLogic Server for OCI:
    1. Gere seu arquivo WAR ou EAR do Oracle JDeveloper.
    2. Faça login no Console de Administração do Oracle WebLogic Server.
    3. Implante seu arquivo WAR ou EAR para o cluster ou servidores gerenciados do Domínio do WebLogic.
  12. Para integrações de página, atualize os URLs da aplicação em suas aplicações baseadas em Oracle Fusion usando o Application Composer ou o Page Composer, conforme apropriado para a aplicação específica.
  13. Valide seu aplicativo executando testes em ambientes de teste ou desenvolvimento.
    Talvez você precise configurar a segurança da camada Web e a autorização de atribuição para poder concluir a validação do aplicativo, conforme descrito no próximo artigo.
Configure a segurança da camada Web e a autorização de atribuição no Oracle Identity Cloud Service, conforme descrito no próximo artigo, antes de implantar seu aplicativo no seu ambiente de produção.

Diagnosticar e Resolver Problemas de Permissões

Você pode descobrir que alguns de seus códigos de aplicativo Java geram erros AccessControlException no novo ambiente. Você pode diagnosticar e resolver esses problemas de permissão verificando os logs para obter detalhes e, em seguida, configurando concessões de permissão usando o Oracle Enterprise Manager Fusion Middleware Control.

Ao definir o codeBase para conceder permissões (na etapa 2 do procedimento a seguir), as seguintes variáveis de ambiente podem ser úteis:

  • 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

Para diagnosticar e resolver problemas de permissões:

  1. Ativar log JPS. O nível de log padrão geralmente não é suficiente para descobrir a origem dos erros AccessControlException. O uso de um detalhe mais detalhado nos logs permite que você veja a base de código exata que está executando a operação não autorizada.
    1. Abra a Console de Administração do Oracle WebLogic Server e, na árvore Estrutura de Domínio, expanda Ambiente. Selecione Servidores e clique no nome do servidor gerenciado.
    2. Selecione a guia Iniciar Servidor, clique em Bloquear e Editar e adicione os seguintes Argumentos ao final da lista de argumentos:
      -Djps.auth.debug=true
      Djps.auth.debug.verbose=true
    3. Clique em Salvar e depois clique em Ativar Alterações. Em seguida, reinicialize o servidor gerenciado.
    4. Replicar o caso de uso que está causando o AccessControlException e, em seguida, procurar no arquivo de log .out do servidor gerenciado as entradas que estão sendo registradas. Procure a string FAILED. Por exemplo:
      [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...
      Certifique-se de que PolicyContext, Resource/Target, Action e Permission Class correspondem àqueles que estão sendo mostrados pela exceção.
    5. Verifique o bloco CodeSource mostrado imediatamente abaixo do snippet de log na etapa anterior. O arquivo listado é o jar que está executando o código com a permissão ausente. Por exemplo:
      CodeSource-file:/u01/data/domains/wls_domain/servers/wls_server_1/tmp/_WL_user/oauth-client/kk4bjg/lib/PublicReportServiceWSClient-1.0.11.jar
  2. Conceda uma permissão para esta base de código. Você pode fazer isso usando a ferramenta de linha de comando WLST ou usando o Oracle Enterprise Manager Fusion Middleware Control. As etapas a seguir mostram como conceder permissão usando o Oracle Enterprise Manager.
    Para obter detalhes sobre o uso do WLST, faça log-in no My Oracle Support e procure o artigo Doc ID 1327577.1.
    1. Efetue log-in no Oracle Enterprise Manager Fusion Middleware Control e, no menu drop-down Domínio do WebLogic, selecione Segurança e, em seguida, Políticas do Sistema. Clique em Criar nova Concessão de Segurança.
    2. Na página Criar Concessão do Sistema, no CodeBase, adicione o arquivo codeSource encontrado no arquivo de log.
      Substitua variáveis de ambiente para evitar o uso do caminho de arquivo real. Por exemplo, a variável oracle.deployed.app.dir aponta para a pasta _WL_user no caminho do arquivo de exemplo fornecido no arquivo jar de erro de log de exemplo da etapa anterior. Você também pode usar a variável de ambiente oracle.deployed.app.ext para aplicar a permissão a tudo sob o caminho atual.
      Por exemplo:
      file:${oracle.deployed.app.dir}/MassItem28B${oracle.deployed.app.ext}
    3. Clique em Adicionar. Marque a opção Selecionar aqui para informar detalhes de uma nova permissão e preencha os detalhes:
      • Classe de Permissão: oracle.security.jps.service.credstore.CredentialAccessPermission
      • Nome do Recurso: context=SYSTEM,mapName=user.public.map,keyName=SaaSSystemAccount
      • Ações de Permissão: leitura
    4. Clique em OK. Verifique as informações e clique em OK para salvar as alterações.
Após a concessão da permissão, geralmente não é necessário reiniciar, mas se o problema ainda ocorrer, a reinicialização do servidor poderá resolvê-lo. Depois de resolver um erro de acesso negado, agora você pode ver um novo erro em outro codeSource, pois mais do seu código Java pode ser executado. Consequentemente, talvez seja necessário repetir esse processo de revisão do log, concedendo uma nova permissão a outro arquivo jar e, em seguida, testando novamente várias vezes até que você tenha resolvido todos os problemas de permissões.