<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Tomcat 6 —— Realm域管理

      本篇來源于官方文檔,但不僅僅是翻譯,其中不乏網上搜索的資料與自己的理解。

      如有錯誤,請予指正。

      什么是Realm

        首先說一下什么是Realm,可以把它理解成“域”,也可以理解成“組”,因為它類似 類Unix系統 中組的概念。

        Realm域提供了一種用戶密碼與web應用的映射關系。

        因為tomcat中可以同時部署多個應用,因此并不是每個管理者都有權限去訪問或者使用這些應用,因此出現了用戶的概念。但是想想,如果每個應用都去配置具有權限的用戶,那是一件很麻煩的事情,因此出現了role這樣一個概念。具有某一角色,就可以訪問該角色對應的應用,從而達到一種域的效果。

        參考上面的圖:

        每個用戶我們可以設置不同的角色(在tomcat-users.xml中配置),

        每個應用中會設定可以訪問的角色(在web.xml中配置),

        當tomcat啟動后,就會通過Realm進行驗證(在server.xml中配置),通過驗證才可以訪問該應用,

        從而達到角色安全管理的作用。

      理解server.xml

        在tomcat中,要理解其架構設計,可以參考下面的圖,該圖是從《Apahce tomcat高級配置》一書中扒下來的。

        參考上面的圖解釋下:

        server:即服務器,每個tomcat程序啟動后,就是一個server。

        service:這是一種抽象的服務,通常是在日志或者管理時使用這樣一個概念。它把連接器和處理引擎結合在一起。

        connector:用于處理連接和并發,通常包括兩種方式HTTP和AJP。HTTP是用于網頁地址欄http這種訪問方式;AJP一般用于搭配Apache服務器。

        engine:處理引擎,所有的請求都是通過處理引擎處理的。

        host:虛擬主機,用于進行請求的映射處理。每個虛擬主機可以看做獨立的請求文件。

        realm:用于配置安全管理角色,通常讀取tomcat-uesrs.xml進行驗證。

        context:上下文,對應于web應用。

        有了上面的概念的理解,就可以簡單的想象一下tomcat的處理過程:

        大體過程如下:

        0 首先請求發送給服務器;

        1 服務器使用相應的服務進行處理。

        2 先通過不同的連接器請求后發送給處理引擎。

        3 處理引擎通過對虛擬主機的分析,發送給相應的虛擬主機。

        4 虛擬主機使用相應的應用進行相應。

        簡言之,就是請求會先發送到連接器,連接器轉給處理引擎進行處理。

       

        再看看默認的server.xml配置文件

      <?xml version="1.0" encoding="UTF-8"?>
      <Server port="8005" shutdown="SHUTDOWN">
        <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
        <Listener className="org.apache.catalina.core.JasperListener"/>
        <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
        <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
        <GlobalNamingResources>
          <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
        </GlobalNamingResources>
        <Service name="Catalina">
          <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
          <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
          <Engine defaultHost="localhost" name="Catalina">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
            <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
            <Context docBase="E:\software\Tomcat6.0.14\apache-tomcat-6.0.14\wtpwebapps\firstFilter" path="/firstFilter" reloadable="true" source="org.eclipse.jst.jee.server:firstFilter"/> <!-- 自己添加的 --> 
          </Host>
          </Engine>
        </Service>
      </Server>

        去掉注釋部分可以觀察的更方便,可以看到默認情況下,Realm的配置位置是在Engine標簽內部,并且使用的是UserDatabase的方式。其他的方式會在下面部分說明。

        其中Realm的不同位置也會影響到它作用的范圍。

      1 在<Engine>元素內部 —— Realm將會被所有的虛擬主機上的web應用共享,除非它被<Host>或者<Context>元素內部的Realm元素重寫。

      2 在<Host>元素內部 —— 這個Realm將會被本地的虛擬主機中的所有的web應用共享,除非被<Context>元素內部的Realm元素重寫。

      3 在<Context>元素內部 —— 這個Realm元素僅僅被該Context指定的應用使用。

      Realm獲取用戶信息方式

        目前tomcat支持多種Realm管理方式,即支持多種方式來讀取用戶信息進行驗證。參考如下:

        

      1 JDBCRealm 用戶授權信息存儲于某個關系型數據庫中,通過JDBC驅動獲取信息驗證

      2 DataSourceRealm 用戶授權信息存儲于關于型數據中,通過JNDI配置JDBC數據源的方式獲取信息驗證

      3 JNDIRealm  用戶授權信息存儲在基于LDAP的目錄服務的服務器中,通過JNDI驅動獲取并驗證

      4 UserDatabaseRealm 默認的配置方式,信息存儲于XML文檔中 conf/tomcat-users.xml

      5 MemoryRealm 用戶信息存儲于內存的集合中,對象集合的數據來源于xml文檔 conf/tomcat-users.xml

      6 JAASRealm 通過JAAS框架訪問授權信息

        (后續會給出不同的Realm的配置方式)
       

       配置過程

        1 在server.xml中配置realm訪問方式

        參考下默認的配置server.xml中,可以看到默認情況下使用的就是UserDatabaseRealm的方式:

        上圖中的代碼配置了UserDatabase的目錄文件,為conf/tomcat-users.xml

        上圖中的代碼配置使用的Realm方式。

        2 在tomcat-users.xml中配置用戶密碼以及分配角色
        

        上面是tomcat-users.xml中的配置內容。

        3 在應用的web.xml中配置其訪問角色以及安全限制的內容

        關于Realm域的使用,一般都是用來管理一些安全性要求很高的應用,最常見的就是manager應用。

        manager應用用于在不停止tomcat的情況下部署或者停止某些應用,處于安全考慮,默認情況下時不能訪問manager應用的,因此需要現在tomcat-users.xml中添加用戶以及相應的角色,才能訪問。

         參考下tomcat中manager應用的角色配置,觀察其web.xml配置文件,可以找到下面這段:

        <security-constraint>
          <web-resource-collection>
            <web-resource-name>HTMLManger and Manager command</web-resource-name>
            <url-pattern>/jmxproxy/*</url-pattern>
            <url-pattern>/html/*</url-pattern>
            <url-pattern>/list</url-pattern>
            <url-pattern>/sessions</url-pattern>
            <url-pattern>/start</url-pattern>
            <url-pattern>/stop</url-pattern>
            <url-pattern>/install</url-pattern>
            <url-pattern>/remove</url-pattern>
            <url-pattern>/deploy</url-pattern>
            <url-pattern>/undeploy</url-pattern>
            <url-pattern>/reload</url-pattern>
            <url-pattern>/save</url-pattern>
            <url-pattern>/serverinfo</url-pattern>
            <url-pattern>/status/*</url-pattern>
            <url-pattern>/roles</url-pattern>
            <url-pattern>/resources</url-pattern>
          </web-resource-collection>
          <auth-constraint>
             <!-- NOTE:  This role is not present in the default users file -->
             <role-name>manager</role-name>
          </auth-constraint>
        </security-constraint>
      
        <!-- Define the Login Configuration for this Application -->
        <login-config>
          <auth-method>BASIC</auth-method>
          <realm-name>Tomcat Manager Application</realm-name>
        </login-config>
      
        <!-- Security roles referenced by this web application -->
        <security-role>
          <description>
            The role that is required to log in to the Manager Application
          </description>
          <role-name>manager</role-name>
        </security-role>

        其中role-name就定義了可以訪問的角色。

        其他內容中上面定義了限制訪問的資源,下面的Login-config比較重要。

        它定義了驗證的方式,BASIC就是基本的彈出對話框輸入用戶名密碼。還是DIGEST方式,這種方式會對網絡中的傳輸信息進行加密,更安全。

      參考

      【1】Realms and AAA:http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html

      【2】Realm 配置:http://wibiline.iteye.com/blog/655424

      【3】Tomcat安全域:http://blog.163.com/liangge_sky/blog/static/210500188201102031733245/

       

      posted @ 2015-06-04 20:07  xingoo  閱讀(6507)  評論(4)    收藏  舉報
      主站蜘蛛池模板: 国产不卡精品视频男人的天堂| 久久久久国产精品人妻| 久久精品国产再热青青青| 亚洲国产精品第一二三区| 亚洲国产综合一区二区精品| 大地资源高清播放在线观看| av无码精品一区二区三区四区 | 乱码中字在线观看一二区| 韩产日产国产欧产| 又爽又黄又无遮挡的激情视频| 色老99久久九九爱精品| 日韩在线视频线观看一区| 又黄又爽又色的免费网站| 2018年亚洲欧美在线v| 国产精品性色一区二区三区| 日本福利一区二区精品| 天长市| 国产亚洲一区二区三不卡| 亚洲一区二区三区在线激情| 亚洲人成网站观看在线观看| 夜色福利站WWW国产在线视频| 国产熟女一区二区五月婷| 亚洲永久精品一区二区三区| 亚洲成人av在线综合| 国产精品呻吟一区二区三区| 人妻少妇偷人作爱av| 欧美性猛交xxxx乱大交丰满| 久久综合国产色美利坚| 欧美视频二区欧美影视| 草草线在成年免费视频2| 日韩有码av中文字幕| 日本一区午夜艳熟免费| 日韩av中文字幕有码| 农民人伦一区二区三区| 国产男女黄视频在线观看| 日韩国产精品区一区二区| 麻豆一区二区三区精品视频| 午夜免费无码福利视频麻豆| 亚洲天堂av在线免费看| 亚洲人成在线观看网站不卡| 日韩中文字幕人妻精品|