分属于2个不同的系统,它们之间不能共用同一套Session,要实现SSO这就需要使用一些特殊的机制来实现它们之间的互相通信。最简单的方法是使用Cookie来实现。(Redmine中支持LDAP认证,不过需要搭建Ldap服务器,现在没搞明白正在研究,稍后再介绍)
首先要修改一下RedMine中的代码,配置action,通过访问www.example.com/redmine/ssologin的url进行登录验证
修改redmine/config/routes.rb添加下面代码
rails 代码
- map.signin 'ssologin', :controller => 'account', :action => 'ssologin'
修改redmine/app/controllers/account_controller.rb添加ssologin方法
rails 代码
- def ssologin
- if cookies[:ssoid] && cookies[:uid] && cookies[:ssoid] == "验证码"
- user = User.try_to_ssologin(cookies[:uid<