Esta página se aplica à Apigee e à Apigee híbrida.
  
    Confira a documentação da 
    Apigee Edge.
  
  
      
  
O que é uma política de segurança de JavaCallout personalizada?
A política JavaCallout permite personalizar o comportamento da API usando código Java. Quando você implementa JavaCallout, a Apigee define permissões padrão para a API usando as políticas de permissão de Java. Na Apigee híbrida, é possível mudar as permissões padrão criando uma política de segurança JavaCallout personalizada.
É possível criar uma política de segurança JavaCallout personalizada usando um
  recurso, definido em
  um arquivo de recurso do tipo securityPolicy. O recurso é configurado no
  nível do ambiente. O arquivo de recursos pode ter qualquer nome, mas é preciso adicionar o sufixo
  .policy ao nome do arquivo de política de Java personalizado. Por exemplo:
  strict-security.policy.
  
O comando a seguir adiciona um arquivo de recurso chamado strict-security.policy.
  
curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=CustomJavaSecurityPolicy&type=securityPolicy" -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data" \ -F file=@/Users/home/strict-security.policy
Depois de criar um arquivo de política de segurança que define uma política personalizada de JavaCallout, o ambiente de execução da Apigee pode detectar a política e usar as permissões personalizadas definidas por ela. Se não houver uma política personalizada de JavaCallout, a Apigee usará a política de segurança padrão para código Java ou Python personalizado.
Arquivo de política de segurança
Os exemplos a seguir mostram um conteúdo de amostra de um arquivo de política de segurança.
As linhas abaixo especificam a localização do código de uma política JavaCallout personalizada e concedem todas as permissões ao diretório.
Relaxed security policy file for testing
// javacallout code has just read permission in the installed dir and everything below it
  grant codeBase "file:${javacallout.dir}/-"  {
    permission java.security.AllPermission;
}Essas linhas especificam a localização do código para uma frase de destaque Jython/Python personalizada e concedem permissões de leitura ao diretório.
// Jython/Python secure
grant codeBase "file:${jython-secure-jar}" {
    // No logging permissions for secure jar. Hence value of the AllExcept target parameter set to 0
    permission com.apigee.securitypolicy.AllExcept "0", "java.io.FilePermission";
    permission java.io.FilePermission "{T}conf_security-policy_install.dir{/T}/lib/-" , "read";
    // Add JRE read permissions to jython. Existing permissions have two formats to java home. Keep the same.
    permission java.io.FilePermission "${java.home}/-", "read,readLink";
    permission java.io.FilePermission "${JAVA_HOME}/-", "read,readLink";
}Exemplos
Os exemplos a seguir mostram como executar tarefas específicas relacionadas a políticas de segurança JavaCallout personalizadas.
Criar uma política de segurança JavaCallout personalizada
O comando a seguir cria uma política de segurança JavaCallout personalizada, definida no
arquivo de recursos chamado strict-security.policy.
curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=CustomJavaSecurityPolicy&type=securityPolicy" -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data" \ -F file=@/Users/home/strict-security.policy
Visualizar todas as políticas de segurança
O comando a seguir permite visualizar todas as políticas de segurança de JavaCallout personalizadas na API.
curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy" \ -H "Authorization: Bearer $TOKEN"
Visualizar o conteúdo de um arquivo de política de segurança
O comando a seguir recebe o conteúdo de um arquivo de política de segurança individual para que você possa visualizá-lo.
curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy" \ -H "Authorization: Bearer $TOKEN"
Atualizar uma política com escopo para um ambiente
O comando a seguir atualiza uma política de segurança com escopo para um ambiente.
curl -X PUT "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy" -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data" \ -F file=@/Users/home/strict-security-revised.policy
Excluir a política de segurança com escopo para um ambiente
O comando a seguir exclui uma política de segurança com escopo para um ambiente.
curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy \ -H "Authorization: Bearer $TOKEN"