2010-03-03 76 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

希望這會有所幫助。

相關問題