지속적인 통합 툴인 Hudson(https://hudson.dev.java.net)은 기업 내부 즉 인트라넷용입니다. 회사 밖에서는 접근하지 않는다는 것을 기본으로 설정하게 되어있죠. 만약 인터넷 같은 외부에 노출이 되는 경우는 인증을 걸어서 아무나 컨트롤하지 못하도록 하는 것이 중요합니다.
구글에서 "hudson access control"이라고 검색해봤습니다. wiki페이지가 나오는군요.
첫번째 링크를 클릭해서 들어가면 Hudson 보안강화하기 위키페이지가 나옵니다.
http://hudson.gotdns.com/wiki/display/HUDSON/Securing+Hudson
보안 레벨을 다양하게 지원하는데, 토픽은 다음과 같습니다.
Topics
- Quick and Simple Security — "java -jar hudson.war"로 시작할 경우 간단
- Standard Security Setup — 사용자 DB연결과 상세한 제어
- Apache frontend for security — 아파치 웹서버 후방일 경우 아파치 보안 이용
- Authenticating scripted clients — BASIC인증을 이용해 프로그램에서 접속할 경우
- Help! I locked myself out! — 뭔가 잘못되서 꼼짝할 수 없을 때
저는 간략하게 설정해 보았습니다. 아직 경험이 많지 않아서 성큼성큼 나아가기 힘드니까요.
Quick and Simple Security 페이지의 설명에서 발췌한 내용입니다.
$ java -jar hudson.war --argumentsRealm.passwd.user=password --argumentsRealm.roles.user=admin
이러한 형식으로 시작 옵션을 줍니다.
$ java -jar hudson.war --argumentsRealm.passwd.kenu=okjsp --argumentsRealm.roles.kenu=admin
user와 password 부분을 변경해 주면 됩니다. 그리고 Hudson 설정에서 보안을 사용한다고 설정해야 합니다.
Hudson 관리(Manage Hudson) > Configure System 메뉴를 선택합니다.
설정화면에서 위쪽 설정 옵션 중 Enable security를 체크합니다. 하단의 옵션은 Delegate to servlet container 에 그 아래 옵션은 Legacy Mode 를 선택하고 저장하면 됩니다.
설정이 완료되고 옵션을 주어서 시작하면 다음과 같은 메시지를 볼 수 있습니다.
로그인 id별 권한처리도 가능하다 하니 위키 문서를 참고하시면 될 것입니다.