2010-03-03 70 views
3

我想配置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知道他有可用于认证,其境界? 我必须添加元素到元素吗?但是,那么价值应该是什么?

在此先感谢。

回答

5

这很好。这取决于<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

希望这会有所帮助。