개발/Tool

Trac 설치 - user, login, admin, auth

gonGon 2011. 3. 14. 11:29
* user 추가
여기를 참조하여 user를 추가해 보자.
apache를 연동했다면 apache user를 사용할 수 있지만, trac standalone일 경우, passwd 파일이 필요하다.

ex)
> tracd -p 8000 --basic-auth="testtrac,d:\Trac\passwd,localhost" d:\Trac\testtra


* passwd 파일 만들기
여기에서 md5로 인코딩한 passwd를 쉽게 만들 수 있다.


이제 browser를 띄워 접속하면 아래와 같이 browser의 로그인 인증창을 볼 수 있다.


로그인은 작동하지만, 일반적인 로그인창도 아니고 session이 브라우저 단위이기 때문에 브라우저를 종료하기 전까지는 로그인 상태가 계속 유지된다.

별도의 login form을 통해 로그인하는 방법을 찾아보자.



* form을 통한 login
여기에서 별도의 plugin을 다운받아 설치하자. 설치는 easy_install을 사용한다.

easy_install https://trac-hacks.org/svn/accountmanagerplugin/trunk

이 때, 기동할 때 사용한 "--basic-auth" 옵션을 사용하면 브라우저의 인증창을 사용하게 되므로 "--basic-auth"은 사용하면 안된다. 
대신, passwd 파일 관련 내용은 trac.ini에서 아래와 같이 지정한다.

[account-manager]
password_store = HtPasswdStore
htpasswd_hash_type = md5
password_file = D:\Trac\testtrac\conf\passwd

[components]
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.web_ui.loginmodule = enabled
trac.web.auth.loginmodule = disabled

cf) Account Manager Plugin 에서는 총 4개의 login 방법을 제공한다. 위 내용은 htpasswdstore를 사용한 경우이다.

이제 trac을 재기동한다.

ex)
> tracd -p 8000 d:\Trac\testtra

접속한 후, 상단의 로그인 링크를 클릭하면 아래와 같은 로그인폼을 볼 수 있다.





* admin 추가 
admin 계정을 등록해 보자.

>trac-admin [$ENV] permission add [USER_ID] TRAC_ADMIN

admin계정으로 로그인하면 상단 메뉴 우측에 "관리" 메뉴를 볼 수 있다. 여기서는 각 종 권한 설정과 trac.ini 관련 내용을 ui로 접할 수 있다. 
관리 > 권한 메뉴에서 등록되지 않은 사용자는 사용할 수 없도록 anonymous 그룹에 권한을 모두 없애자. 상태는 아래와 같아진다.





* lolgin page로 redirect
PermRedirectPlugin을 써서 permission 관련 에러시에 로그인 페이지로 redirect를 시킬 수 있다.
설치는 easy_install을 사용한다.

> easy_install http://trac-hacks.org/svn/permredirectplugin/0.11

trac.ini는 아래와 같이 추가한다.

[components]
permredirect.* = enabled