Я установил Tomcat на свой компьютер, и он работает нормально. Я могу войти в административный менеджер. Я развернул .war
файл, который можно просмотреть в диспетчере Tomcat. Имя файла shim
(на самом деле я устанавливаю freeshim
).
Когда я пытаюсь получить доступ к прокладке в браузере, используя 192.168.1.65:8080/shim
Я получаю интерфейс веб-администрирования shim
. Я получаю следующее сообщение:
Это интерфейс веб-администрирования FreeSHIM. Веб-сервисы расположены «здесь».
Когда я нажимаю «здесь», чтобы настроить Freeshim, я получаю сообщение об ошибке:
Состояние HTTP 403 - доступ к запрошенному ресурсу запрещен.
Где я ошибаюсь? Как я могу изменить это разрешение?
Статус HTTP 403 (доступ к запрошенному ресурсу был запрещен) может указывать на то, что вы ввели 3+ неверных учетных данных (попробуйте другой веб-браузер) или у вас возникли проблемы с конфигурацией.
Если вы не меняли какие-либо файлы конфигурации, проверьте файл conf/tomcat-users.xml
в вашей установке (locate tomcat-users.xml
). Этот файл должен содержать учетные данные, чтобы вы могли использовать Tomcat webapp.
Например, чтобы добавить роль manager-gui пользователю с именем tomcat
с паролем s3cret
добавьте следующее в файл конфигурации, указанный выше:
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
Затем вы можете получить доступ к своему менеджеру веб-приложений из /manager/html
(например, перезагрузка после изменения конфигурации).
Читать далее: Приложение Manager КАК
Если вы пытаетесь реализовать собственное ограничение безопасности (в web.xml
) попробуйте следующий пример (до </web-app>
окончание):
<!-- 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>
Если проблема не исчезла, попробуйте:
catalina.sh configtest
или xmlstarlet val /etc/tomcat?/*.xml /var/lib/tomcat7/webapps/*/WEB-INF/*.xml
,<url-pattern>
совпадения в вашем <security-constraint>
или установить на /*
,/var/log/tomcat7
),INFO
-> FINE
/FINEST
) в logging.properties
или log4j.properties
(ИНФОРМАЦИЯ, СЕРЬЕЗНО, ПРЕДУПРЕЖДЕНИЕ, ИНФОРМАЦИЯ, КОНФИГУРАЦИЯ, ТОЧНО, ТОЧНО, НАИЛУЧШЕЕ или ВСЕ), перезапустите Tomat и проверьте журналы,sudo lsof | grep -E "java.*(out|txt|log)$"
, tail -f /var/log/tomcat7/*.log /var/log/tomcat7/*.txt /var/log/tomcat7/*.out
),log4j
система регистрации, убедитесь, что вы правильно инициализировал поместив библиотеки и log4j.properties
в нужную папку и настроив ее,протестировать BASIC аутентификацию с помощью cURL:
без учетных данных:
$ curl -vv http://example.com:8983/solr/
Обычно запрос должен возвращаться HTTP / 1.1 401 Неавторизованный и "WWW-аутентификация"заголовок должен указывать Базовый требуется аутентификация.
с учетными данными:
$ curl -vv -u tomcat:tomcat http://example.com:8983/solr/
Запрос должен быть отправлен с заголовком «Авторизация» и должен пройти аутентификацию. Если ваши учетные данные недействительны, вы должны получить: HTTP / 1.1 401 Неавторизованный. Если пользователь аутентифицирован, но не имеет доступа для просмотра ресурса, вы должны получить: HTTP / 1.1 403 Запрещено.
возможно, был активирован механизм блокировки пользователя для слишком много неудачных попыток аутентификации (LockOutRealm),
остановите и запустите Tomcat вручную (так же, как в: ps wuax | grep ^tomcat
), например:
# 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
В качестве альтернативы начните использовать catalina.sh
сценарий вроде:
$ . /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
Или в режим отладки:
$ JPDA_SUSPEND=y catalina.sh jpda start
и проверь свой catalina.out
журнал.
последнее средство - отладить процесс: sudo strace -fp PID
.
Убедитесь, что у пользователя, который запускает Tomcat, есть доступ к папке, в которой находится FreeShim.
sudo chmod -R a+rwx < dir of FreeShim >
Это сработало для меня.