프로젝트

일반

사용자정보

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>

이렇게 수정해서 테스트를 해봤는데 잘 안되더군요.

혹시 다른 방법은 없는지 아시는 분 계시면 정보 공유 부탁드립니다.


    (1-1/1)
    클립보드 이미지 추가 (최대 크기: 500 MB)