MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

rails应用的认证和授权

Posted on 2010-02-14 21:00 leekiang 阅读(553) 评论(0)  编辑  收藏 所属分类: ruby
 一个带完整的RBAC授权系统的rails应用
http://www.javaeye.com/topic/215074

RESTful_ACL


declarative_authorization
aegis
cancan           http://github.com/ryanb/cancan
Authologic
acl9             http://github.com/be9/acl9
role_requirement http://github.com/timcharper/role_requirement
ActiveRbac


restful_authentication
1,ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
项目右键->rails 插件->资源库里添加url:http://svn.techno-weenie.net/projects/plugins
->新插件里找到restful_authentication然后安装
2, ruby script/generate authenticated user sessions
Right-click on your application in the projects pane and choose  
"Generate". In the dialog box that comes up, choose "authenticated"  
from the drop-down "Generator" menu near the top, and in the arguments  
field enter "user sessions" (without the quotes). Hit OK.
----------------------------------------------------------------------
Don't forget to:

Try these for some familiar login URLs if you like:

map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate', :activation_code => nil
map.signup '/signup', :controller => 'users', :action => 'new'
map.login '/login', :controller => 'sessions', :action => 'new'
map.logout '/logout', :controller => 'sessions', :action => 'destroy'

----------------------------------------------------------------------
      create  app/views/sessions
      create  app/views/users
      create  app/models/user.rb
      create  app/controllers/sessions_controller.rb
      create  app/controllers/users_controller.rb
      create  lib/authenticated_system.rb
      create  lib/authenticated_test_helper.rb
      create  test/functional/sessions_controller_test.rb
      create  test/functional/users_controller_test.rb
      create  test/unit/user_test.rb
      create  test/fixtures/users.yml
      create  app/helpers/sessions_helper.rb
      create  app/helpers/users_helper.rb
      create  app/views/sessions/new.html.erb
      create  app/views/users/new.html.erb
      create  db/migrate/20100218184435_create_users.rb
      route  map.resource :session
      route  map.resources :users

运行测试时要把SessionsControllerTest和UsersControllerTest都改为继承ActionController::TestCase,同时把fixtures :users注释掉。

要使用current_user和logged_in? helper方法的话要在ApplicationController里include AuthenticatedSystem 

resource与resources的区别见http://api.rubyonrails.org/classes/ActionController/Resources.html

http://www.javaeye.com/topic/353831
http://www.javaeye.com/topic/177508
http://hideto.javaeye.com/blog/115157
https://github.com/nakajima/roleful

只有注册用户登录后才能发表评论。


网站导航: