Java 人生

java (Java EE)&Linux

BlogJava 首页 新随笔 联系 聚合 管理
  15 Posts :: 2 Stories :: 5 Comments :: 0 Trackbacks

JBOSS 配置

1.    下載,在解壓縮

2.    在“環境變量”的地方,新增一個變量名為“ JBOSS_HOME” ,值為

   解壓縮的路徑 tomcat 設置一樣

3.    數據源配置

首先在 JBOSS_HOME\docs\examples\jca 目錄下找到相對應的配置文件如:

MySQL- à mysql-ds.xml,oracle- à oracle-ds.xml;access- à msaccess-ds.xml

我們介紹 ACCESS 的數據庫配置

<?xml version="1.0" encoding="UTF-8"?>

<datasources>

 

  <local-tx-datasource>

    <jndi-name>MSAccessDS</jndi-name>

    <!-- format of URL is "jdbc:odbc:DSNNAME" -->

    <connection-url>jdbc:odbc:ejb</connection-url>

    <driver-class>sun.jdbc.odbc.JdbcOdbcDriver</driver-class>

    <user-name>Admin</user-name>

    <password>123</password>

 

  </local-tx-datasource>

 

</datasources>

 

修改好後另存為 jboss-home\server\default\deploy 目錄下 就可以了

 

4. 安全配置

配置文件位於 …jboss install directory /server/ default/ conf / login-config.xml <policy></ policy> 之中加入 application-policy

<application-policy Name=”dblogin”>

    <authentication>

       <login-nodule code=”org.jobss.security.auth.spi.DatabaseServerLogin Module” flag=”Required”>

             <module –option Name=”dsJndiName”>jave=/MSSQLXADS

             </module –option>

             <module –option Name=”principalsQuery”>select

                password form users where user_id=?

              </module –option>

              <module –option Name=”RolesQuery”>select Role,

              Role-group from Roles where user_id=?

               </ login-module>

          <authentication>

       </ application-policy>

1.      jobss web 應用中使 3 中配置的安全域 dbLogin

web 應用中的 jobss-web.xml <jobss-web> </ jobss-web> 之間加入如下標志

security-domain java:/jaas/dblogin</secureity-domain>

2.      定義 signon 頁面與 error 頁面, signon 頁面中的以下三個元素是受限制的。

  <form name=”form1” method=”post” action=”j_security_check”>

<input name=”j_username” type=”text” size=”30”>

<input name=”j_password” type=”password” size=”30”>

 

3.      web 應用中的 web.xml 中定義如下與驗證方式

login-lonfig

  <auth –method>Form</auth-method>

      <form-login-page>/signon.jsp</form-login-page>

      <form-error-page>/error.jsp</form-login-page>

    </login-lonfig>

4.      web 中應用的 web.xml 中定義如下角色,注意要與數據庫中角色相對應用。

security-Role

      <Role-Name>preferred</Role –Name>

     </secureity-Role>

     <secureity-Role>

         <Role-Name>standard</Role-Name>

     </secureity-Role>

5.      web.xml 中定義安全約束

<stcurity-constraint>

   <display-Name>scl</display-Name>

     < web-resource-collection>

           <web-resource-name>wrc1</ web-resource-name>

<url-pattern>/private1.jsp></url-pattern>

<http-method>get</http-method>

<http-method>post</http-method>

     < web-resource-collection>

     <auth-constraint>

                  <role-name>standard</role-name>

         <role-name>sprefferred</role-name>

     </auth-constraint>

 <security-constraint>

jboss java mail:

file:// D:\jboss\server\default\deploy\mail-serviece.xml

<mbean code="org.jboss.mail.MailService"

         name="jboss:service=Mail">

    <attribute name="JNDIName">java:/Mail</attribute >

    <attribute name="User">jinhua </attribute>

    <attribute name="Password">jinhua</attribute>

     <attribute name="Configuration">

       <!-- Test -->

       <configuration>

          <!-- Change to your mail server prototocol -->

          <property name="mail.store.protocol" value="pop3"/>

          <property name="mail.transport.protocol" value="smtp"/>

 

          <!-- Change to the user who will receive mail  -->

          <property name="mail.user" value="nobody"/>

 

          <!-- Change to the mail server  -->

          <property name="mail.pop3.host" value="222.118.20.111"/>

 

          <!-- Change to the SMTP gateway server -->

          <property name="mail.smtp.host" value="222.118.20.111"/>

 

          <!-- Change to the address mail will be from  -->

          <property name="mail.from" value="ejinmy@shingwai.com "/>

 

          <!-- Enable debugging output from the javamail classes -->

          <property name="mail.debug" value="false"/>

       </configuration>

    </attribute>

  </mbean>

 

</server>

之後就可以通通如下代碼來使用 javamail service

Session session =(Session)portableRemoteObject.narrow(new javax.naming.InitialContext.Lookup(“java:/Mail”),Session.Class)

MimeMessage = mimeMessage = new MimeMessage(session)

6.      建立消息隊列

1. 部署一個點對點的隊列

定義的是 queue 類型隊列

D:\jboss\server\default\deploy 中,編寫名稱以 -service.xml 結尾的文件,可以實現新的消息隊列的建立。

<?xml version="1.0" encoding="UTF-8"?>

定義對象的 JNDI 名稱

 


<server>

 <mbean code="org.jboss.mq.server.jmx.Queue"

    name="jboss.mq.destination:service=Queue,name=queueexample1">

  <depends optional-attribute-name="DestinationManager">

    jboss.mq:service=DestinationManager

  </depends>

  </mbean>

</server>

1.    部署一個主題隊列

 <?xml version="1.0" encoding="UTF-8"?>

定義對象的 JNDI 名稱

 


<server>

 <mbean code="org.jboss.mq.server.jmx.Topic"

    name="jboss.mq.destination:service=Topic,name=topicexample1">

  <depends optional-attribute-name="DestinationManager">

    jboss.mq:service=DestinationManager

  </depends>

  </mbean>

apache aixs 安裝

  下載 axis-1_1.zip ,將解壓得到的 axis-1_1\webapps\axis 目錄整體復制到 tomcat 目錄下。啟動 tomcat ,就可以打開瀏覽器訪問 http://localhost:8080/axis

如果能正常顯示,表明安裝成功

1.    tomcat 配置

為了能編譯 servlet 文件,要把 D:\Tomcat 5.0\common\lib 目錄下的 servlet.jar 加到 classpath .

Tomcat 有兩個重要的配置文件 web.xml,server.xml 如果在遮兩個文件沒有任何配置,我們的 jsp 文件要放在 D:\Tomcat 5.0\webapps\ROOT 下,才能運行,如我們有一個 time.jsp 文件,放在了 D:\Tomcat 5.0\webapps\ROOT

目錄下,我們 可以在瀏覽器訪問 ,servlet 文件放在 tomcat_home\webapps\ROOT\web-inf\classes 目錄下

web.xml 文件 中可包含如下配置信息

servlet 的定義

servlet 的映射

安全配置

welcome 文件清單

資源引用

環境變量的定義

web.xml 文件清單

<web-app>

<display-name>

<description>

<filter>

用來定義 servlet

<filter-mapping>

<servlet>

<servlet-mapping>

<session-config>

<welcome-file-list>

<taglib>

<resource-ref>

<security-constraint>

<login-config>

<security-role>

元素定義的先後順序不能顛倒 , 否則不能運行服務器

file of web.xml

Servlet 過濾器能夠檢查和修改其中的信息

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

過濾器的名字,如有多個,不允許重名

<web-app>

  <display-name>longweb</display-name>

  <filter>

   <filter-name>SampleFilter</filter-name>

實現過濾器的類

   <filter-class>mypack.SampleFilter</filter-class>

  </filter>

過濾器負責過濾的 url

  <filter-mapping>

  <filter-name>SampleFilter</filter-name>

  <url-pattern>*.jsp</url-pattern>

</filter-mapping>

<servlet>

        <servlet-name>org.apache.jsp.index_jsp</servlet-name>

        <servlet-class>org.apache.jsp.index_jsp</servlet-class>

    </servlet>

 

    <servlet-mapping>

        <servlet-name>org.apache.jsp.index_jsp</servlet-name>

        <url-pattern>/index.jsp</url-pattern>

Httpsession 的生命周期

   </servlet-mapping>

如果僅給出 web 應用的 root ,會自動調用這裡聲明的文件

  <session-config>

    <session-timeout>30</session-timeout>

  </session-config>

  <welcome-file-list>

   <welcome-file>index.jsp</welcome-file>

   <welcome-file>index.html</welcome-file>

如在整個 web 出現 http 404 not found 將會調用這個文件運行

  </welcome-file-list>

  <error-page>

    <error-code>404</error-code>

    <location>/notfound.jsp</location>

設置 web 所引用的 tag Library 標識符

  </error-page>

<taglib>

<taglib-uri>/mytaglib</taglib-uri>

<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>

Tld 文件的位置

</taglib>

<!- - 資源的配置 - ->

<resource-ref>

  <description>DB Connectin</dscription>

<res-ref-name>sampleDB</res-ref-name><!- -JNDI name - - >

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

// 安全的配置

  <security-constraint>

    <web-resource-collection>

聲明保護的資源

      <web-resource-name>Shopping</web-resource-name>

      <url-pattern>/welcome.jsp</url-pattern>

      <url-pattern>jsp1.jsp</url-pattern>

      <url-pattern>*.do </url-pattern>

      <http-method>GET</http-method>

      <http-method>POST</http-method>

聲明可以訪問保護資源的角色

    </web-resource-collection>

    <auth-constraint>

      <role-name>standard</role-name>

驗證方法

    </auth-constraint>

  </security-constraint>

聲明表單驗證的登陸界面和出錯頁面

  <login-config>

    <auth-method>FORM</auth-method>

    <form-login-config>

      <form-login-page>/login.jsp</form-login-page>

      <form-error-page>/login.jsp</form-error-page>

    </form-login-config>

  </login-config>

  <security-role>

Web 應用引用的角色

    <description>Standard Customer</description>

    <role-name>standard</role-name>

  </security-role>

</web-app>

 

 

server.xml 文件

 

<?xml version="1.0" encoding="UTF-8"?>

<!--This comment marks this file as generated, so it may be deleted and regenerated at any time. To preserve manual changes to this file, delete this comment.-->

<Server debug="0" port="8084" shutdown="SHUTDOWN">

  <Service name="Tomcat-Standalone">

監聽端口

<Connector

port="80"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               debug="0" connectionTimeout="20000"

               disableUploadTimeout="true" />

     <Engine debug="0" defaultHost="localhost" name="Standalone">

 <Host appBase="C:\webservice\EmployeeClient\Tomcat\webapps" debug="0" name="localhost" unpackWARs="true">

// 如果不自己設置一個 ,哪全部 JSP 文件都要放在 D:\Tomcat 5.0\webapps\ROOT

// 如果自己設置一個目錄,則要在這裡設置虛主機

 <Context path="/javaconfig" docBase="C:\javaconfig" debug="0" reloadable="true">

Web 應用的文件路徑

True: 表示服務器運行狀態下會監視在 web-inf/classes 目錄下 class 改動

               <Resource name="sampleDB" auth="Container" type="javax.sql.DataSource" description="User database that can be updated and saved">

    </Resource>

    <ResourceParams name="sampleDB">

      <parameter>

        <name>factory</name>

        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

       </parameter>

               <parameter>

                        <name>username</name>

                           <value>Admin</value>

               </parameter>

                      <parameter>

                            <name>password</name>

                            <value>123</value>

                          </parameter>

                          <parameter>

                            <name>driverClassName</name>

                            <value>sun.jdbc.odbc.JdbcOdbcDriver</value>

                          </parameter>

                          <parameter>

                            <name>url</name>

                            <value>jdbc:odbc:ejb</value>

                          </parameter>

    </ResourceParams>

      </Host>

    </Engine>

  </Service>

</Server>

 

tomcat security

1.      memoryRealm

在初始化階段,從 xml 文件 (tomcat-users.xml) 中讀取安全驗證信息,並把它們以一組對象的形式存放在內存中

    <Context path="/shop" docBase="C:\project\shoping\longweb" debug="0" reloadable="true">

            <Realm className="org.apache.catalina.realm.MemoryRealm"/>

      </Context>

tomcat-users.xml 文件 D:\Tomcat 5.0\conf

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

  <role rolename="tomcat"/>

  <user username="admin" password="admin" roles="standard"/>

</tomcat-users>

 

2.      JDBCRealm

  通過 jdbc 驅動程序訪問存放在數據庫中的安全驗證信息

必須在數據中創建兩張表 users and user_roles Users: 定義用戶的信息,包括用戶名和密碼, user_roles 定義用戶和角色

表中代表的字段

<Context path="/shop" docBase="C:\project\shoping\longweb" debug="0" reloadable="true">

      <Realm className="org.apache.catalina.realm.JDBCRealm" driverName=”com.mysql.jdbc.Driver” debug=”99” connectionURL=”jdbc:mysql://localhost/tomcateuser” connectionName=”dbuser” connectinoPassword=”1234” userTable=”users” userNameCol=”user_name” useCredCol=”user_pass” userRoleTable=”user_roles” roleNameCol=”role_name”/>

</Context>

3.      DataSourceRealm

DatasourceRealm JDBCRealm 很相似,都是將安全信息存方法在關係數據庫中,創建的數據庫結構也相同,兩者不 侗在於訪問數據庫的方式不侗, DataSourceRealm 通過 JNDI DataSource 來訪問數據庫,

用於配置 tomcat 服務范圍的 JNDI 資源

<!-- Global JNDI resources -->

  <GlobalNamingResources>

    <!-- Test entry for demonstration purposes -->

    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users -->

    <Resource name="UserDatabase" auth="Container"

              type="javax.sql.DataSource "

  [1]       description="User database that can be updated and saved">

    </Resource>

    <ResourceParams name="UserDatabase">

      <parameter>

        <name>factory</name>

        <value>org.apache.commons.dbcp.BasicSourceFactory </value>

      </parameter>

      <parameter>

        <name>driverClassName </name>

        <value>com.mysql.jdbc.Driver </value>

      </parameter>

      <parameter>

        <name>url </name>

        <value>jdbc:mysql://localhost:3306/tomcateuser?autoReconnect=true </value>

      </parameter>

    </ResourceParams>

  </GlobalNamingResources>

 

<Realm className="org.apache.catalina.realm.DataSourceRealm" debug=”99”

dataSourceName=”UserDatabase” userTable=”users” userNameCol=”user_name” userCredcol=”user_pass”  userRoleTable=”user_roles” rolenameCol=”role_name”/>

4

<form name=”form1” method=”post” action=”j_security_check”>

<input name=”j_username” type=”text” size=”30”>

<input name=”j_password” type=”password” size=”30”>

 

Tomcat 客戶訪問日志

<Host name="localhost" debug="0" appBase="webapps"

       unpackWARs="true" autoDeploy="true">

       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

          prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t %r %s %b" resolveHosts="true"/>

%h: 表示遠程主機名

%t 表示時間日期

pattern 屬性的默認值為 common , 它相當於 ”%h %l %u %t %r %s %b”

此時會在 Tomcat_home\logs 目錄下生成一個 .txt 文件內容大體如下 :

2005-04-15 08:37:35 createObjectName with StandardEngine[Catalina].StandardHost[localhost].StandardContext[/admin]

2005-04-15 08:37:35 preRegister with Catalina:type=Logger,path=/admin,host=localhost

 

遠程地址過濾器

<Host name="localhost" debug="0" appBase="webapps"

       unpackWARs="true" autoDeploy="true">

<Valve className=”org.apache.Catalina.valves.RemoteAddrVale” deny=”127.*,222.*”/>

以上代碼表明,所有 IP 地址以 127,222 開頭的客戶都被拒絕訪問



 

posted on 2006-04-10 12:56 jinmy liao 阅读(1178) 评论(0)  编辑  收藏 所属分类: page view

只有注册用户登录后才能发表评论。


网站导航: