Como corrigir o acesso ao recurso solicitado negado pelo Tomcat webapp?

4

Instalei o Tomcat na minha máquina e ele está funcionando bem. Consigo fazer login no gerente de administração. Implantei um .wararquivo que pode ser visualizado no gerenciador do Tomcat. O nome do arquivo é shim(na verdade eu estou instalando freeshim).

Quando tento acessar o shim no navegador usando 192.168.1.65:8080/shim, recebo uma interface de administração da web do shim. Esta é a mensagem que recebo:

Essa é a interface de administração da web para o FreeSHIM. Os serviços da Web estão localizados "aqui".

Quando clico em "aqui" para configurar o Freeshim, recebo um erro:

Status HTTP 403 - O acesso ao recurso solicitado foi negado.

Onde eu estou errando? Como posso alterar essa permissão?

kenorb
fonte
Por favor, deixe-me saber por que eu tenho
Não diminuí a votação, mas isso provavelmente ocorre porque sua pergunta é (1) Fora de tópico para SO, pois não se trata de programação e provavelmente pertence à falha do servidor e (2) é difícil de ler; você deve usar pontuação e parágrafos padrão e (3) Você não demonstrou nenhum esforço para resolver o problema sozinho. Por favor, leia as Perguntas frequentes e Como pedir detalhes.
Ex Umbris 11/11/12

Respostas:

2

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.xmlem 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 tomcatcom 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 configtestou 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.propertiesou 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 log4jsistema de log, certifique-se de inicializá-lo corretamente , colocando as bibliotecas log4j.propertiesna 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.shscripts 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.outlog.

  • último recurso é processo de depuração por: sudo strace -fp PID.

kenorb
fonte