2014-10-15 4 views
1

rubycas-server GEM을 CAS 서버로 사용하고 있습니다. 이 CAS 서버는 다른 데이터베이스의 사용자 테이블에서 사용자 자격 증명을 확인합니다. 이 사용자는 Devise gem을 사용하여 생성됩니다. Devise는 모든 사용자의 암호를 암호화 된 형식으로 데이터베이스 테이블에 저장합니다. 그래서이 rubycas-server의 구성 파일에 그것은 아래 코드 주어진다있어하는 authenticator 섹션을 포함, encrypted_function 자격 증명을 확인하는 알고리즘을 포함하고 코드의 마지막 줄에 위에서 언급 한 바와 같이레일에서 rubycas-server를 사용하여 사용자를 인증하는 방법은 무엇입니까?

authenticator: 
class: CASServer::Authenticators::SQL 
database: 
    adapter: postgresql 
    database: testdb 
    username: postgres 
    password: root 
    host: localhost 
    pool: 5 
user_table: users 
username_column: email 
password_column: encrypted_password 
encrypt_function: <encryption function> 

. 일부 샘플은 URL

https://code.google.com/p/rubycas-server/wiki/UsingTheSQLEncryptedAuthenticator

에 gelow을 제공하지만 devise에 적합합니다 찾을 수 없습니다. 도와주세요.

+0

rubycas-server는 기본적으로 Bcrypt를 지원하고 Bcrypt를 사용하여 Devise를 지원한다고 생각합니다. 그래서 그 줄을 제거하고 무슨 일이 일어나는 지 지켜봐 주시겠습니까? –

+0

그 줄을 지우면'rubycas-server'는 기본적으로 일반 문자열 암호를 검사합니다. 로그인 양식에 입력 된 비밀번호가 암호화 된 비밀번호로 직접 확인 된 다음 "잘못된 로그인 인증 정보"가 표시 될 때마다 –

+0

인증 정보 (사용자 이름 및 비밀번호)가 이미 저장되어 있는지 확인하십시오. 인증 자 db 즉, testdb. –

답변

2

마지막으로 내 질문에 대한 해결책을 얻었습니다. 실제로 encrypt_function:은 인증 자 설정에 필요하지 않습니다. 나는 이메일과 사용자의 자격 증명을 확인 Devise에 의해 생성되는 encrypted_password는 사용하고로서, 최종 인증은 다음과 같습니다 기본적으로 고안 사용자 BCrypt 암호를 암호화하는

authenticator: 
    class: CASServer::Authenticators::SQLBcrypt 
    database: 
    adapter: postgresql 
    database: testdb 
    username: postgres 
    password: root 
    host: localhost 
    pool: 5 
    user_table: users 
    username_column: email 
    password_column: encrypted_password 

으로 내가 CASServer::Authenticators::SQLBcrypt 클래스를 사용하고 있는데 왜 그건 . 그러나 rubycas-server 보석은 기본적으로 SQLBcrypt 구성을 설정하지 않습니다. 따라서 lib/casserver/authenticators/authlogic_crypto_providers 경로로 이동하여 brypt.rb 파일을여십시오. 이 파일에서 그렇게 그들을 해제 주석이 라인은 주석 참조하거나 제시하지 않을 경우 다음 그들에게

acts_as_authentic do |c| 
    c.crypto_provider = Authlogic::CryptoProviders::BCrypt 
    end 

그런 다음 터미널에서 gem install bcrypt-ruby를 실행 추가하거나 rubycas-server GEMFILE이 GEM을 추가하고 서버를 다시 시작할 수 있습니다. 나는 이것이 효과가 있다고 생각한다.