无聊人士

搬家==》www.soapui.cn

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  32 随笔 :: 0 文章 :: 60 评论 :: 0 Trackbacks

#

已经有orbroker做过好几个小东西了,前几天在一套旧系统上做了些小花絮,实战了一把orbroker的one-to-one了。

表结构大致如下
CREATE TABLE T_INFO(
    CONTENT_ID     VARCHAR2(50) NOT NULL,
    S_TITLE        VARCHAR2(300),
    S_CONTENT      VARCHAR2(4000),
    S_USERNAME     VARCHAR2(20),
    S_USERADDRESS  VARCHAR2(200),
    S_USEREMAIL    VARCHAR2(50),
    S_USERTELPHONE VARCHAR2(20)
);

据此,我定义了两个类
public class Info {
  private String id;
  private String title;
  private String content;
  /**
   * 发布者
   */
  private Publisher publisher;
}

public class Publisher {
  private String name;
  private String address;
  private String email;
  private String telphone;
}

以findByPrimeryKey这个方法为例,在orbroker.xml中做了条配置
<sql-statement id="findByPrimeryKey" result-object="Info" external-source="/orbroker/findByPrimeryKey.sql" />
findByPrimeryKey.sql的内容:
SELECT t.content_id     AS id,
       t.s_title        AS title,
       t.s_content      AS content,
       t.s_username     AS userName,
       t.s_useraddress  AS userAddress,
       t.s_useremail    AS userEmail,
       t.s_usertelphone AS userTelphone
  FROM t_info t
 WHERE 1 = 1
 <#if id?exists>
 AND   t.content_id     = :id
 </#if>

one-to-one的处理,主要功夫还是在orbroker.xml定义Result-Object上面,参照orbroker user-guide中“Mapping associations”一部分,我做了这样的配置
    <result-object id="Info" class="domain.Info" key-columns="id">
        <property name="id">
            <column name="id" />
        </property>
        <property name="title">
            <column name="title" />
        </property>
        <property name="content">
            <column name="content" />
        </property>
        <property name="publisher">
            <map-with result-object="Publisher" />
        </property>
    </result-object>

    <result-object id="Publisher" class="domain.Publisher" key-columns="id">
        <property name="name">
            <column name="userName" />
        </property>
        <property name="email">
            <column name="userEmail" />
        </property>
        <property name="address">
            <column name="userAddress" />
        </property>
        <property name="telphone">
            <column name="userTelphone" />
        </property>
    </result-object>

测试通过,哈哈!
posted @ 2005-11-15 23:47 mmwy 阅读(482) | 评论 (0)编辑 收藏

1vsftpd安装

通常,装好RHCE AS3/4以后,vsftpd服务都已经安装完成。

如果安装RHCE AS3/4时未选择安装vsftpd,你也可以使用rpm –ivh vsftp…rpm使用手动安装,或者直接去vsftpd网站(http://vsftpd.beasts.org/)下载最新的tar.gz格式源码包,解包后使用make/make install即可

2vsftpd配置

Vsftpd默认使用linux系统账号登录,维护管理不太方便,也容易引发安全问题。因此,建议采用pam_userdb或是pam_mysql进行虚拟用户配置。

 

1)使用PAM_USERDB保存ftp登录账号

A、创建一个临时文件,如/root/a.txt,按下面的格式在此文件中添加虚拟的用户:

用户名1
密码
1
用户名
2
密码2

B、然后用db_load命令生成pam_userdb认证所需的账号文件

db_load -T -t hash -f a.txt /etc/vsftpd/vsftpd.login

CPAM配置信息

/etc/pam.d/下创建一个文件,如/etc/pam.d/ftp.vsftpd,文件内容如下

auth        required   /lib/security/pam_userdb.so   db=/etc/vsftpd/vsftpd.login
account   required   /lib/security/pam_userdb.so   db=/etc/vsftpd/vsftpd.login
[w1] 

 

D、编辑/etc/vsftpd.conf

Vsftpd默认的配置文件为/etc/vsftpd.conf,你也可以在启动vsftpd时使用“vsftpd /path/configfile”的命令使用别的配置文件。

 

通常, /etc/vsftpd.conf中只放置一些基本的配置信息(所有用户公共性的配置),然后针对具体用户做更详细的配置,下面是一个简单的vsftpd配置示例。

listen=YES
listen_port=21
#
禁止匿名登录

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
#
所有虚拟用户等同于ftp这个系统账号的权限
guest_username=ftp
#
允许匿名下载
anon_world_readable_only=NO
max_clients=100
max_per_ip=10
#
pam部分配置的文件名应匹配,这里是ftpd.vsftpd
pam_service_name=
ftp.vsftpd
#
指定每个虚拟用户账号配置目录,这里是/etc/vsftpd/virtual
#
如果需要对wuyu这个账号进行详细配置,你需要创一个

#/etc/vsftpd/virtual/wuyu
的文件
user_config_dir=/etc/vsftpd/virtaul/
#指定默认的ftp目录,如果不设置,则默认的ftp目录为ftp这个系统账号的默认目录(见/etc/passwd文件内容)
local_root=/www/ftp
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

按照上面这个配置文件,虚拟用户可以正常的登录ftp,在ftp上下载数据,但是不能创建目录,不能上传数据,用户的根目录指向/www/ftp。如果需要允许个别用户上传,或是更改用户的ftp根目录指向,我们需要在/etc/vsftpd/virtual目录下根据用户名创建相应的配置文件。以wuyu这个用户账号为例,其配置文件/etc/vsftpd/virtaul/wuyu的内容如下:

 

local_root=/home/wuyu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES

2)使用mysql数据库保存ftp登录账号

由于vsftpd使用PAM做为身份认证,因此,配置vsftpd使用mysql保存登录账号信息就非常方便,只要安装PAM_MYSQL,然后修改vsftpd的配置文件即可。

A、安装mysql

Mysql编译,安装文档参见mysql安装文档。完成mysql安装,启动mysql服务后,针对vsftpd服务,做如下操作:

a、添加一个用户账号,如vsftpd(密码为1234567)。

b、创建vsftpd使用的数据库(如vsftpd

c、建表(字段名称可任意定义)

CREATE TABLE `users` (

  `name` varchar(50),

  `passwd` varchar(50)

)

 

B、安装pam_mysql

http://pam-mysql.sourceforge.net/下载pam_mysql的源码包(tar.gz格式),使用tar xvfz命令解包。然后执行以下三步命令完成安装。

 

./configure --with-mysql=mysql安装目录  --prefix=安装目的目录,默认为/usr/local

make

make install

 

C、配置pam_mysql

vsftpdpam_userdb改为pam_mysql,仅仅需要修改与使用pam_userdb相类似,在/etc/pam.d/下创建一个文件,如/etc/pam.d/ftp.vsftpd,文件内容如下

auth        required          /usr/lib/security/pam_mysql.so             user=vsftpd           passwd=1234567          host=127.0.0.1              db=vsftpd              table=users     usercolumn=name         passwdcolumn=passwd        crypt=2

account   required          /usr/lib/security/pam_mysql.so             user=vsftpd           passwd=1234567          host=127.0.0.1              db=vsftpd              table=users            usercolumn=name         passwdcolumn=passwd        crypt=2

这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1 口令使用UNIX系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过MySQLpassword()函数加密后保存。

3)在使用iptables的情况下允许被动模式。

modprobe iptable_nat

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

posted @ 2005-11-15 23:45 mmwy 阅读(5060) | 评论 (1)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4