我希望通过使用数据库作为领域来启用基于表单的身份验证,但是每当我试图在Tomcat 6中作为Tomcat管理器进行身份验证时,我都会收到该消息。我已经创建了一个表user_name和user_roles,并将用户名(蓝色)映射到user_roles表中的user_roles表中的角色,但我仍然无法进行身份验证。我已经在server.xml文件中重新创建了王国标记:
<Realm className = "org.apache.catalina.realm.JDBCRealm"
debug = "99"
driverName = "com.mysql.jdbc.Driver"
connectionURL = "jdbc:mysql://localhost:3306/mail"
connectionName = "root"
userTable = "users"
userNameCol = "user_name"
userCredCol = "user_pass"
userRoleTable = "user_roles"
roleNameCol = "role_name"
/> 有人能告诉我我在做什么,以及我如何使用数据库启用基于表单的身份验证吗?
发布于 2010-03-25 09:59:54
我自己也没试过。您能否尝试更改TOMCAT_HOME_DIR\webapps\manager\WEB-INF\web.xml中的auth方法以将auth方法设置为FORM。王国的名字并不重要。
<login-config> <auth-method>FORM</auth-method> <realm-name>Tomcat Manager Application</realm-name> </login-config>另外,确认一下--您必须在server.xml中只保留一个领域,注释掉默认的领域。
发布于 2015-04-09 22:37:45
HTTP Status 403 (对请求的资源的访问已被拒绝)可能表示您输入了太多不正确的凭据,或者您的配置出现了一些问题。
一个可能的问题是,您的浏览器可以缓存您的身份验证凭据,因为使用BASIC auth,您的浏览器只在第一次对站点进行身份验证时才会提示您提供凭据。在成功的身份验证之后,它不会再次提示您,并迫使您的浏览器再次提示您,有时您需要完全关闭浏览器(或尝试使用另一个web浏览器)。
如果您没有更改任何配置文件,请检查安装中的文件conf/tomcat-users.xml (locate tomcat-users.xml)。该文件必须包含允许您使用Tomcat的凭据。
例如,要向名为tomcat的名为s3cret的用户添加manager-gui角色,请将以下内容添加到上面列出的配置文件中:
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>然后,您可以从/manager/html访问webapps管理器(例如,在配置更改后重新加载)。
阅读更多:经理应用程序如何-TO
如果您试图实现自己的安全约束(在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>login-config元素包含
auth-method元素,它指定我们使用的身份验证方法,即BASIC。security-constraint元素包含3个元素:web-resource-collection、auth-constraint和user-data-constraint。web资源集合指定应用程序中需要身份验证的部分。/*表示整个应用程序都需要身份验证。auth约束指定用户访问受保护资源所需的角色。用户数据约束的传输保证可以是NONE、CONFIDENTIAL或INTEGRAL。我们将其设置为NONE,这意味着当您试图访问受保护的资源时,不需要重定向到SSL。
还请确保您有行:
<Realm className="org.apache.catalina.realm.MemoryRealm" />在您的conf/server.xml (Engine部分)中。
如果你仍然有这个问题,试着:
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日志记录系统时,请确保将libs和log4j.properties放在正确的文件夹中并进行配置,以确保正确初始化,- without credentials:$ 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.113FORCARD。
ps wuax | grep ^tomcat相同的方式),例如:ps wuax \ grep ^tomcat tomcat7 884 /usr/lib/jvm/java-7-OpenJDK-AMD 64/bin/java tomcat7.org.apache.catalina.startup.Bootstrap start $ /etc/init.d/tomcat7 7停止$ sudo sudo -u tomcat7 /usr/lib/jvm/java-7-OpenJDK-AMD 64/bin/java. -Dorg.apache.catalina.level=FINEST org.apache.catalina.startup.Bootstrap startAlternatively开始使用catalina.sh脚本如下:
$$。/etc/default/tomcat7 7$ export _HOME=/usr/lib/jvm/java-7-openjdk 64 CATALINA_HOME=/usr/share/tomcat7 7 CATALINA_BASE=/var/lib/tomcat7 CATALINA_PID=/var/ run /tomcat7.pid CATALINA_TMPDIR=/tmp LOGGING_CONFIG="-Dorg.apache.catalina.level=FINEST“$/usr/share/tomcat7 7/bin/catalina.sh
或者在调试模式中:
$ JPDA_SUSPEND=y catalina.sh jpda启动
检查你的catalina.out日志。sudo strace -fp PID调试进程。发布于 2011-05-24 14:41:45
您需要定义另一个名为“tomcat”的用户角色,并使用户“蓝色”成为该组的成员。
您可以在web.xml文件中更改此约束所需的角色组名称:
<auth-constraint>
<role-name>tomcat</role-name>
</auth-constraint>https://stackoverflow.com/questions/2513415
复制相似问题