如何用tomcat配置容器管理安全的JDBC领域?
我想配置tomcat /我的web应用程序使用JDBC领域的容器管理安全。我在tomcat的server.xml文件里指定了这样的域:如何用tomcat配置容器管理安全的JDBC领域?
<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="net.sourceforge.jtds.jdbc.Driver" connectionURL="jdbc:jtds:sqlserver://hostname:1433/intranet;user=sa;password=sa04jT14;instance=instanceName" userTable="users" userNameCol="username" userCredCol="password" userRoleTable="roles" roleNameCol="role" />
我创建了数据库和表。我创建了一个登录页面和下面的代码添加到web.xml:
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/login.xhtml</form-error-page>
</form-login-config>
</login-config>
但如何做的Tomcat知道他有可用于认证,其境界? 我必须添加元素到元素吗?但是,那么价值应该是什么?
在此先感谢。
这很好。这取决于<Realm>
声明的位置,哪一个Tomcat可以找到并用于您的web应用程序。它也明确提到Tomcat's Realm Configuration HOWTO:
的
<Realm>
元素可以被嵌套 以下Container
要素中的任何一个内。 境界元素的位置对那个境界的“范围”,直接影响 (即 哪些Web应用程序将共享 相同的认证信息):
的
<Engine>
元素内部 - 这领域将在所有 web应用程序共享上的所有虚拟主机, ,除非它是通过嵌套在从属<Host>
<Context>
或元件内的境界 元件覆盖。一个
<Host>
元素内部 - 这种境界将在所有网络共享 应用此虚拟主机, 除非它被嵌套在下级<Context>
元素内的境界 元素覆盖。一个
<Context>
元素内部 - 这境界将只适用于本 Web应用程序中使用。
<Engine>
的和<Host>
元件在/conf/server.xml
正常声明。 <Context>
元素可以在this documentation介绍性文本底部的列表中的任何位置声明。例如,如果您打算在webapp特有的<Context>
中定义这个领域,您希望将它与您的web应用程序一起部署,而不必与服务器配置混淆,那么最好的地方就是Webapp/META-INF/context.xml
。
希望这会有所帮助。