redmine 로그인 정보를 파라메터로 자동 로그인 처리하려고 합니다.
강 상범이(가) 2017-05-16에 추가
안녕하세요
bitnami redmine 2.5.1 사용자 입니다.
내부 업무시스템과 redmine 사용자 정보를 연동해서 SSO 처럼 URL 파라메터로 로그인 처리하려고 합니다.
구글링을 해보니 외부 자동로그인 설정을 하는 방법이 있더군요
http://localhost/redmine/login?back_url=http%3A%2F%2Flocalhost%2Fredmine%2F&username=admin&password=admin1 --> 이런 방식으로 URL 클릭으로 자동 로그인 처리를 해보려고 하는데
파라메터로 username, password를 넘기고 파라메터를 받을수 있도록 login.html.erb 파일을 수정한다
login.html.erb 파일의 5번째 라인부터 시작
c:\BitNami\redmine-2.5.1\apps\redmine\htdocs\app\views\account\login.html.erb 에서
<td align="left"><%= password_field_tag 'password', params[:password], :tabindex => '2' %></td>
이렇게 바꾸고
자동으로 로그인 할 수 있도록 Javascript로 submit() 할 수 있게 처리한다
<script type="text/javascript">
document.forms[0].action = "/redmine/login";
document.forms[0].target = "_self";
if(document.getElementById("username").value != "" &&
document.getElementById("password").value != "")
{
document.forms[0].submit();
}
</script>
위 스크립트만 사용할 경우 아이디와 패스워드가 파라메터로 들어왔을 경우 로그인이 성공하지 못해도 무한 Submit처리가 된다.
로그인이 실패 할 경우 fish_error div tag가 생기는데 해당 tag를 확인해서 있다면 submit을 하지 않도록 수정하는것도 좋은 방법 같다.
<div class="flash error" id="flash_error"></div>
최종 javascript submit 코드
<script type="text/javascript">
document.forms[0].action = "/redmine/login";
document.forms[0].target = "_self";
if(document.getElementById("username").value != "" &&
document.getElementById("password").value != "")
{
var errtag = document.getElementById("flash_error");
if(errtag == null) {
document.forms[0].submit();
}
}
</script>
이렇게 수정해서 테스트를 해봤는데 잘 안되더군요.
혹시 다른 방법은 없는지 아시는 분 계시면 정보 공유 부탁드립니다.