Execução do Network Server sob o gerenciador de segurança Network Serverexecução sob o gerenciador de segurança

O Network Server deve ser executado sob o gerenciador de segurança do Java. Os próximos exemplos mostram a utilização de um arquivo de política de segurança exemplo. Deve ser feito um ajuste fino nesta política de segurança para adequá-la às próprias necessidades.

Abrir o servidor para todos os clientes, sem limitar o acesso utilizando uma política de segurança semelhante a do exemplo a seguir, é um sério risco de segurança. // Conjunto de permissões recomendadas para inicializar o Network Server, // assumindo que o diretório 'd://lib' seja seguro. // Deve ser feito um ajuste fino baseado no próprio ambiente. grant codeBase "file:d://lib/-" { permission java.io.FilePermission "${derby.system.home}${/}-", "read, write, delete"; permission java.io.FilePermission "${derby.system.home}","read"; permission java.io.FilePermission "${user.dir}${/}-", "read, write, delete"; permission java.util.PropertyPermission "derby.*", "read"; permission java.util.PropertyPermission "user.dir", "read"; permission java.lang.RuntimePermission "createClassLoader"; permission java.net.SocketPermission "minhamaquinacliente", "accept"; }; // Conjunto de permissões requerido para parar o Network Server, assumindo // que o diretório 'd://lib' seja seguro. // Deve ser feito um ajuste fino baseado no próprio ambiente. grant codeBase "file:d://lib/-" { // O que vem a seguir é requerido quando o servidor é inicializado com // "-h localhost", ou sem a opção -h. permission java.net.SocketPermission "localhost", "accept, connect, resolve"; permission java.net.SocketPermission "127.0.0.1", "accept, connect, resolve"; // O que vem a seguir é requerido apenas quando o servidor é inicializado com a // opção -h <hospedeiro> (senão o acesso para "shutdown" será negado). permission java.net.SocketPermission "<hospedeiro>:*", "accept, connect, resolve"; };
  • O exemplo a seguir mostra como inicializar o Network Server no gerenciador de segurança padrão (escutando apenas os clientes no localhost, que é o comportamento padrão quando a opção -h não é utilizada para inicializar o servidor). Este exemplo assume que o arquivo de política de segurança se encontra em d:/nwsvr.policy. java -Djava.security.manager -Djava.security.policy=d:/nwsvr.policy org.apache.derby.drda.NetworkServerControl start
  • O mesmo comportamento pode ser obtido utilizando a opção -h ao inicializar o servidor, conforme mostrado no exemplo a seguir: java -Djava.security.manager -Djava.security.policy=d:/nwsvr.policy org.apache.derby.drda.NetworkServerControl start -h localhost
  • O exemplo a seguir mostra como inicializar o Network Server (assumindo que o servidor será inicializado na máquina hospedeira meuservidor) no gerenciador de segurança padrão (escutando requisições de clientes originadas a partir de outras máquinas apenas). Este exemplo assume que o arquivo de política de segurança se encontra em d:/nwsvr.policy. java -Djava.security.manager -Djava.security.policy=d:/nwsvr.policy org.apache.derby.drda.NetworkServerControl start -h meuservidor