README.rdoc
May 17, 2011 ยท View on GitHub
= Authlogic x509 login
Authlogic x509 is an extension of the Authlogic library to add x509 support.
== Dependancies
This plugin requires authlogic model based ruby authentication solution (https://github.com/binarylogic/authlogic). It also requires that the web server (i.e. Apache) will provide (controller.request.env) the x509 login information in the following variables:
SSL_CLIENT_S_DN (Subject DN) SSL_CLIENT_I_DN (Issuer DN)
OR
REDIRECT_SSL_CLIENT_S_DN (Subject DN) REDIRECT_SSL_CLIENT_I_DN (Issuer DN)
OR
HTTP_REDIRECT_SSL_CLIENT_S_DN (Subject DN) HTTP_REDIRECT_SSL_CLIENT_I_DN (Issuer DN)
== Install and use
=== 1. Install the authlogic_x509 plugin
$ script/plugin install git://github.com/auth-scc/authlogic_x509.git
=== 2. Create the login and mapping methods at your User class
Add in your User class something like this:
class User < ActiveRecord::Base
...
def self.find_by_x509_login(x509_subject_dn, x509_issuer_dn)
X509Login.where(:subject_dn => x509_subject_dn, :issuer_dn => x509_issuer_dn).first && X509Login.where(:subject_dn => x509_subject_dn, :issuer_dn => x509_issuer_dn).first.user
end
def self.map_x509_login(x509_subject_dn, x509_issuer_dn)
dn = X509Login.where(:subject_dn => x509_subject_dn, :issuer_dn => x509_issuer_dn).first || X509Login.new(:subject_dn => x509_subject_dn, :issuer_dn => x509_issuer_dn)
dn.owner = self
dn.save
end
...
end