• <menu id="eeoky"><tt id="eeoky"></tt></menu>
  • <nav id="eeoky"></nav>
  • Tomca教程
    Tomcat Manager
    Tomcat Realm 配置
    Tomcat 安全管理
    Tomcat JNDI 資源
    Tomcat JDBC 數據源
    Tomcat 類加載機制
    Tomcat JSPs
    Tomcat SSL/TLS配置
    Tomcat SSI
    Tomcat CGI
    Tomcat 代理支持
    Tomcat MBean 描述符
    Tomcat 默認 Servlet
    Tomcat 集群
    Tomcat 連接器
    Tomcat監控與管理
    Tomcat 日志機制
    Tomcat 基于 APR 的原生庫
    Tomcat 虛擬主機
    Tomcat 高級 IO 機制
    Tomcat 附加組件
    Tomcat 安全性注意事項
    Tomcat Windows 服務
    Tomcat Windows 認證
    Tomcat 的 JDBC 連接池
    Tomcat WebSocket 支持
    Tomcat 重寫機制

    標準 Realm 實現

    JDBCRealm

    JDBCRealm 是 Tomcat Realm 接口的一種實現,它通過 JDBC 驅動程序在關系型數據庫中查找用戶。只要數據庫結構符合下列要求,你可以通過大量的配置來靈活地修改現有的表與列名。

    必須有一張用戶表(users table)。它包含著一個由 Realm 所能識別的所有合法用戶所構成的行。

          用戶表必須至少包含兩列(當然,如果現有應用確實需要,則同樣也可以包含更多的列):

          用戶名:當用戶登錄時,能被 Tomcat 識別的用戶名。

    密碼:當用戶登錄時,能被 Tomcat 所識別的密碼。該列中的值可能是明文,也可能是摘要式密碼,稍后詳述。

    • 必須有一張用戶角色表(user roles table)。該表包含一個角色行,包含著可能指定給特定用戶的每個合法角色。一個用戶可以沒有角色,也可以有一個或多個角色,這都是合法的。
    • 用戶角色表 至少應包含兩列(如果現有應用確實需要,則也可以包含更多的列):
    • 用戶名。Tomcat 所能識別的用戶名(與用戶表中指定的值相同)。
    • 用戶所對應的合法角色名。

    快速入門

    為了設置 Tomcat 從而使用 JDBCRealm,需要執行以下步驟:

    1. 在數據庫中創建符合上述規范的表與列。
    2. 配置一個 Tomcat 使用的數據庫用戶名與密碼,并且至少有只讀權限(Tomcat 永遠都不會去修改那些表中的數據)。
    3. 將用到的 JDBC 驅動程序復制到 $CATALINA_HOME/lib 目錄中。注意只能識別 JAR 文件!
    4.  $CATALINA_BASE/conf/server.xml 目錄中設置一個  元素。這一點下文將會詳細敘述。
    5. 如果 Tomcat 處于運行狀態,則重啟它。

    Realm 元素屬性

    如上所述,為了配置 JDBCRealm,需要創建一個 Realm 元素,并把它放在 $CATALINA_BASE/conf/server.xml 文件中。JDBCRealm 的屬性都定義在 Realm 配置文檔中。

    范例

    下面這個 SQL 腳本范例創建了我們所需的表(根據你所用的數據庫,可以相應修改其中的語法)。

    create table users (
      user_name         varchar(15) not null primary key,
      user_pass         varchar(15) not null
    );
    create table user_roles (
      user_name         varchar(15) not null,
      role_name         varchar(15) not null,
      primary key (user_name, role_name)
    );

    Realm 元素包含在默認的 $CATALINA_BASE/conf/server.xml 文件中(被注釋掉了)。在下面的范例中,有一個名為 authority 的數據庫,它包含上述創建的表,通過用戶名“dbuser”和密碼“dbpass”進行訪問。

    <Realm className="org.apache.catalina.realm.DataSourceRealm"
       dataSourceName="jdbc/authority"
       userTable="users" userNameCol="user_name" userCredCol="user_pass"
       userRoleTable="user_roles" roleNameCol="role_name"/>
    <Realm className="org.apache.catalina.realm.DataSourceRealm"
       dataSourceName="jdbc/authority"
       userTable="users" userNameCol="user_name" userCredCol="user_pass"
       userRoleTable="user_roles" roleNameCol="role_name"/>

    特別注意事項

    JDBCRealm 必須遵循以下規則:

    • 當用戶首次訪問一個受保護資源時,Tomcat 會調用這一 Realm 的 authenticate() 方法,從而使任何對數據庫的即時修改(新用戶、密碼或角色改變,等等)都能立即生效。
    • 一旦用戶認證成功,在登錄后,該用戶(及其相應角色)就將緩存在 Tomcat 中。(對于以表單形式的認證,這意味著直到會話超時或者無效才會過期;對于基本形式的驗證,意味著直到用戶關閉瀏覽器才會過期。)在會話序列化期間不會保存或重置緩存的用戶。對已認證用戶的數據庫信息進行的任何改動都不會生效,直到該用戶下次登錄。
    • 應用負責管理users(用戶表)和user roles(用戶角色表)中的信息。Tomcat 沒有提供任何內置功能來維護這兩種表。
    全部教程
    疯狂婬荡乱婬A片中文,特级西西人体444WWw高清大胆,国产性XXXX18免费观看视频,中文字幕乱伦,free性满足HD国产精品,牛人女厕偷拍1区2区