Blog

cancastilho.com.br

30 November 2019

Restringindo acesso por IP em uma aplicação web no Tomcat

by Carlos Nantes

Recentemente, precisei configurar uma restrição de acesso a um web service desenvolvido em Java. Na situação, apenas alguns IPs poderíam acessá-lo. Esse tipo de configuração é bem simples quando você vai implantar a aplicação no Tomcat, basta incluir o arquivo context.xml na aplicação, no diretório /SUA_APPLICACAO/META-INF/context.xml, com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
         allow="172\.(16|17)\.\d+\.\d+|127\.0\.0\.1" />
         <!-- 
         A expressão regular acima, dentro de 'allow', 
         permite acesso a esta aplicação apenas a partir dos IPs: 
         - 172.16.x.x  
         - 172.17.x.x
         - 127.0.0.1 (localhost)
         -->
</Context>

Se acesso for feito de um IP não permitido, o retorno é um status HTTP 403 (Forbidden).

Caso precise de uma configuração parecida, modifique o atributo allow com os IPs que deseja liberar.

O web service foi implantado em um Tomcat na versão 8.5, mas é provável que funcione em versões anteriores também, embora eu não tenha feito o teste.

tags: java - Tomcat