O status HTTP 403 (o acesso ao recurso solicitado foi negado) pode indicar que você digitou mais de 3 credenciais incorretas (tente outro navegador da web) ou se está com algum problema de configuração.
Se você não alterou nenhum arquivo de configuração, examine o arquivo conf/tomcat-users.xml
em sua instalação ( locate tomcat-users.xml
). Esse arquivo deve conter as credenciais para permitir que você use o Tomcat webapp.
Por exemplo, para adicionar a função manager-gui a um usuário nomeado tomcat
com uma senha de s3cret
, adicione o seguinte ao arquivo de configuração listado acima:
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
Em seguida, você pode acessar seu gerenciador de aplicativos da web em /manager/html
(por exemplo, recarregar após as alterações na configuração).
Leia mais: Gerenciador de aplicativos HOW-TO
Se você estiver tentando implementar sua própria restrição de segurança (pol web.xml
), tente o seguinte exemplo (antes de </web-app>
terminar):
<!-- This security constraint protects your webapp interface. -->
<login-config>
<!-- Define the Login Configuration -->
<auth-method>BASIC</auth-method>
<realm-name>Webapp</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
<!-- Specifying a Secure Connection -->
<user-data-constraint>
<!-- transport-guarantee can be CONFIDENTIAL (forced SSL), INTEGRAL, or NONE -->
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- Authorization, see: tomcat-users.xml -->
<security-role>
<role-name>*</role-name>
</security-role>
Se você ainda estiver com o problema, tente:
- verifique se você está editando o arquivo XML correto,
- valide seus arquivos XML, por exemplo ,
catalina.sh configtest
ou xmlstarlet val /etc/tomcat?/*.xml /var/lib/tomcat7/webapps/*/WEB-INF/*.xml
,
- suas
<url-pattern>
correspondências no seu <security-constraint>
ou definido como /*
,
- verifique seus logs do Tomcat (por exemplo
/var/log/tomcat7
),
- aumente o nível de registro (
INFO
-> FINE
/ FINEST
) em logging.properties
ou log4j.properties
(INFO, GRAVE, AVISO, INFORMAÇÃO, CONFIG, FINO, FINAL, FINAL ou TUDO), reinicie o Tomat e verifique os logs,
- se não houver nada nos logs, verifique se você está verificando os logs corretos (
sudo lsof | grep -E "java.*(out|txt|log)$"
, tail -f /var/log/tomcat7/*.log /var/log/tomcat7/*.txt /var/log/tomcat7/*.out
),
- ao usar o
log4j
sistema de log, certifique-se de inicializá-lo corretamente , colocando as bibliotecas log4j.properties
na pasta correta e configurando-a,
teste a autenticação BASIC com cURL:
sem credenciais:
$ curl -vv http://example.com:8983/solr/
Normalmente, a solicitação deve retornar HTTP / 1.1 401 não autorizado e o cabeçalho " WWW-Authenticate " deve indicar que a autenticação Básica é necessária.
com credenciais:
$ curl -vv -u tomcat:tomcat http://example.com:8983/solr/
A solicitação deve ser enviada com um cabeçalho "Autorização" e deve ser autenticada. Se suas credenciais forem inválidas, você deverá obter: HTTP / 1.1 401 Não autorizado . Se o usuário estiver autenticado, mas não tiver acesso para visualizar o recurso, deverá obter: HTTP / 1.1 403 Proibido .
talvez um mecanismo de bloqueio do usuário tenha sido ativado para muitas tentativas de autenticação com falha ( LockOutRealm ),
pare e execute o Tomcat manualmente (da mesma maneira que em ps wuax | grep ^tomcat
:), por exemplo:
# ps wuax | grep ^tomcat
tomcat7 884 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties ... org.apache.catalina.startup.Bootstrap start
$ /etc/init.d/tomcat7 stop
$ sudo sudo -u tomcat7 /usr/lib/jvm/java-7-openjdk-amd64/bin/java ... -Dorg.apache.catalina.level=FINEST org.apache.catalina.startup.Bootstrap start
Como alternativa, comece a usar catalina.sh
scripts como:
$ . /etc/default/tomcat7
$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 CATALINA_HOME=/usr/share/tomcat7 CATALINA_BASE=/var/lib/tomcat7 CATALINA_PID=/var/run/tomcat7.pid CATALINA_TMPDIR=/tmp LOGGING_CONFIG="-Dorg.apache.catalina.level=FINEST"
$ /usr/share/tomcat7/bin/catalina.sh run
Ou no modo de depuração :
$ JPDA_SUSPEND=y catalina.sh jpda start
e verifique seu catalina.out
log.
último recurso é processo de depuração por: sudo strace -fp PID
.