无痕客

落花无情,流水无痕……

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

到CollabNet SubversionEdge-1.3.0的用户管理等相关问题

 

用户管理


 

   SubversionEdge分两类用户:版本库授权用户和控制台用户。
   控制台默认用户是:admin,密码admin;版本库默认用户admin,密码admin。但两者保存位置是分开的,账户和密码都是可以分开的。

   控制台用户管理默认是只能增加用户,增加用户默认同时在版本库授权用户文件中增加该用户。反正我装修改删除用户都是出现下面的信息:


 

HTTP ERROR 404
Problem accessing /csvn/user/index. Reason:

    Not Found

--------------------------------------------------------------------------------
Powered by Jetty://

 

 控制台用户管理:

 

    相关重要文件:{安装路径}\data\csvn-production-hsqldb.script 和{安装路径}\data\csvn-production-hsqldb.properties

    原理推测(可能不正确):

    我找了几天后来才发现,控制台管理用的是hsql数据库,并且数据全部存储在内存中。
    第一步:服务启动(指服务CollabNetSubversionServer绑定的httpd.exe)时,执行csvn-production-hsqldb.script在内存中初始化表和数据;
    第二步:期间的所有操作都是保存在内存中;
    第三步:服务关闭是,内存中的所有数据更新到csvn-production-hsqldb.script文件中。

    因为无法在页面修改删除用户,所以采用关闭服务修改csvn-production-hsqldb.script的方式可以实现用户的管理。


 

csvn-production-hsqldb.script示例:

CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE CATEGORY(ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,VERSION BIGINT NOT NULL,NAME VARCHAR(255) NOT NULL)
...........................
INSERT INTO USER VALUES(1,1,'admin user','admin@rouselife.com',TRUE,'0ef9a776d895692b2710e8b996f12af6','Super Administrator','admin')

 

 修改密码

 

    因为htpasswd采用的密码MD5后进行了散列,所有同样密码每次出的字符串也是不同的,也没有时间验证上述0ef9a776d895692b2710e8b996f12af6是否为密码MD5后的标准值。
    我的做法是:

    先新建个知道密码的用户,然后关闭服务(从控制台或Win服务界面,有两个服务:CollabNetSubversionServer和CollabNet Subversion Edge),这时再打开csvn-production-hsqldb.script文件时文件末尾就会增加刚才的用户,用新的密码替换掉0ef9a776d895692b2710e8b996f12af6即可。(切忌:一定要停止服务后修改才有效,否则脚本文件会被覆盖掉。)
    删除用户

 

    关闭上面两个服务后删除csvn-production-hsqldb.script文件末尾的制定用户后启动服务即可。

    版本库授权用户管理
   
    用户存储文件为{安装路径}\data\conf\svn_auth_file,使用{安装路径}\bin\htpasswd.exe进行管理。

    需要在控制台下运行,以下为输出内容(先打印三次 用户名/密码的文件存储值,然后再增加用户,最后删除用户):

 

Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\meteor>d:

D:\>cd D:\csvn\bin

D:\csvn\bin>htpasswd
Usage:
        htpasswd [-cmdpsD] passwordfile username
        htpasswd -b[cmdpsD] passwordfile username password

        htpasswd -n[mdps] username
        htpasswd -nb[mdps] username password
 -c  Create a new file.
 -n  Don't update file; display results on stdout.
 -m  Force MD5 encryption of the password (default).
 -d  Force CRYPT encryption of the password.
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
 -D  Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

 

D:\csvn\bin>htpasswd -nb test test
Automatically using MD5 format.
test:$apr1$8zaa10Xj$H5vxdhlLDGCo94D5Xkfeu.


D:\csvn\bin>htpasswd -nb test test
Automatically using MD5 format.
test:$apr1$SlijYX9/$ahxS8zf3PPZHszCNump17/


D:\csvn\bin>htpasswd -nb test test
Automatically using MD5 format.
test:$apr1$kTeZJZWN$lg0VepXgOfutEgCd1kaM8.


 

//增加用户
D:\csvn\bin>htpasswd -b D:\csvn\data\conf\svn_auth_file test test
Automatically using MD5 format.
Adding password for user test

 

//删除用户

D:\csvn\bin>htpasswd -D D:\csvn\data\conf\svn_auth_file test
Automatically using MD5 format.
Deleting password for user test

 

D:\csvn\bin>


 

    由以上可以看到密码test 3次均得到完全不同的散列值。

    版本库管理

    通过在线控制台的 管理->服务器配置 可以设置版本库存放路径(如下图):

 

    可以在线增加版本库,在线增加版本库只支持小写字母和下划线,不支持大写字母。
    也可以直接拷贝其它Subversion的版本库到版本库存放路径,Subversion Edge会发现该版本库(在线 版本库->发现版本库 )。
    删除版本库可以直接在版本库存放路径下直接删除版本库,然后在线用发现版本库同步一下即可。

客户端一般采用TSVN就好。

 

转载:http://www.sadtojoy.com/aspx/Detail.aspx?id=3743

posted on 2011-10-23 15:03  无痕客  阅读(3887)  评论(0编辑  收藏  举报