devise_ichain_authenticatable 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/README.md +117 -2
- data/lib/devise_ichain_authenticatable/version.rb +1 -1
- metadata +5 -9
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Y2RmMzFkMDdkZjIyMjYzZmQ5MjNjNzgxOTliNTk0NjhlM2U0Y2FmNA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MDI2MjhhZTBkMTBjMTcwMGQwM2RkODU4NzIyOTViZjQ5ZmNjMWM4Yg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzA1YTE4MDA5NTBhNDJmNmRmNGUzNzZhMTNiODJmMGI3MGIxMDIzZmZkMzVj
|
10
|
+
YTJkYTBmMTg1YjcyZGNhYjRjMWJmYWFkZmEwZjk1N2MxNWRlZjY4ZmJlM2I4
|
11
|
+
MWZlNTJlYTc1MGZjODY1YjdhYjNiOThkZjU3NzMzNDBjNTM5ODM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NmIwZjg1ZTNhZjUwODlkMDgwZDNhMTM0N2M4NTRkZjA0MTU4OTEyOTA1YmYy
|
14
|
+
Mzk4YmE0NWUwZjg2ZGQwYzVjYjFlZDI3Njc1NGI4ZmRhMDc4ZjE2YjU2NjBi
|
15
|
+
NTQ2ZTM2MTdmOGM0NzQzMmNjZTc1OTMwM2VmMjVmYzYzZThjM2U=
|
data/README.md
CHANGED
@@ -1,5 +1,120 @@
|
|
1
1
|
Devise iChain Authenticatable
|
2
2
|
=============================
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
iChain based authentication for the
|
5
|
+
[Devise](http://github.com/plataformatec/devise) authentication framework.
|
6
|
+
The plugin adds two new modules to Devise: `ichain_autenticatable` and
|
7
|
+
`ichain_registerable`. This plugin is compatible with Database Authenticatable,
|
8
|
+
so users in your application can be authenticated with both mechanism if
|
9
|
+
desired.
|
10
|
+
|
11
|
+
Requirements
|
12
|
+
------------
|
13
|
+
|
14
|
+
The plugin should be compatible with Ruby 1.8.7, 1.9.3 and 2.0, but have only be
|
15
|
+
tested in production with Ruby 1.9.3.
|
16
|
+
|
17
|
+
In the same way, it should work with any version of Devise equal or greater than 2.2
|
18
|
+
and with any version of Rails equal or greater than 3.2, but have only be tested
|
19
|
+
with Rails 3.2 and Devise 2.2.
|
20
|
+
|
21
|
+
Reporting of success stories with other setups would be highly appreciated.
|
22
|
+
|
23
|
+
Installation and basic setup
|
24
|
+
---------------------------
|
25
|
+
|
26
|
+
First of all, install Devise following the great documentation available in
|
27
|
+
[its official website](http://github.com/plataformatec/devise). Then, just add
|
28
|
+
the following line to your Gemfile and run the bundle command.
|
29
|
+
|
30
|
+
gem "devise_ichain_authenticatable"
|
31
|
+
|
32
|
+
Only two changes are required in your user model. First, you obviously need to
|
33
|
+
add the new modules to the devise call. In the other hand, you need to provide
|
34
|
+
a way to link the iChain usernames to your application users by implementing
|
35
|
+
the `for_ichain_username` class method. For example:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
class User < ActiveRecord::Base
|
39
|
+
devise :ichain_authenticatable, :ichain_registerable
|
40
|
+
|
41
|
+
def self.for_ichain_username(username, attributes)
|
42
|
+
find_or_create_by_login(username)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
After performing a valid iChain authentication, the plugin will call the
|
48
|
+
`from_ichain_username` class method of your model
|
49
|
+
passing two parameters: the username validated by iChain and a hash of
|
50
|
+
additional parameters defined in the configuration of your iChain proxy
|
51
|
+
(see `config.ichain_attributes_header` below).
|
52
|
+
The method is expected to return a valid user object. If the returned
|
53
|
+
value is evaluated to false or nil, the authentication will fail.
|
54
|
+
|
55
|
+
In the example, an ActiveRecord based model is used, but the plugin will
|
56
|
+
work with any storage backend as long as it's supported by Devise and
|
57
|
+
the `from_ichain_username` is properly implemented.
|
58
|
+
|
59
|
+
Finally, you'll need to add some configuration to your
|
60
|
+
`config/initializers/devise.rb` in order to tell your app how to talk
|
61
|
+
to your iChain proxy.
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
Devise.setup do |config|
|
65
|
+
...
|
66
|
+
# You will always need to set this parameter.
|
67
|
+
config.ichain_base_url = "https://my.application.org"
|
68
|
+
|
69
|
+
# The header used by your iChain proxy to pass the username.
|
70
|
+
# config.ichain_username_header = "HTTP_X_USERNAME"
|
71
|
+
|
72
|
+
# Additional parameters, beyond the username, provided by the iChain proxy.
|
73
|
+
# HTTP_X_EMAIL is expected by default. Set to {} if no additional attributes
|
74
|
+
# are configured in the proxy.
|
75
|
+
# config.ichain_attributes_header = {:email => "HTTP_X_EMAIL"}
|
76
|
+
|
77
|
+
# Configuration options for requests sent to the iChain proxy
|
78
|
+
# config.ichain_context = "default"
|
79
|
+
# config.ichain_proxypath = "reverse"
|
80
|
+
|
81
|
+
# Activate the test mode, useful when no real iChain is present, like in
|
82
|
+
# testing and development environments
|
83
|
+
# config.ichain_test_mode = false
|
84
|
+
end
|
85
|
+
```
|
86
|
+
|
87
|
+
Helpers
|
88
|
+
-------
|
89
|
+
|
90
|
+
This plugin provides the expected URL helpers, analogous to those provided by
|
91
|
+
Database Authenticable and Registerable. For example, for a model called User,
|
92
|
+
the following helpers would be available: `new_user_ichain_session_path`,
|
93
|
+
`destroy_user_ichain_session_path`, `new_ichain_registration_path`...
|
94
|
+
|
95
|
+
Test mode
|
96
|
+
---------
|
97
|
+
|
98
|
+
If the test mode is enabled in the configuration file, anytime
|
99
|
+
authentication is required, a very simple form asking for the username and the
|
100
|
+
additional parameters will be displayed. The entered values will be completely
|
101
|
+
trusted with no check. ```ichain_registerable```will have no effect if test mode
|
102
|
+
is enabled.
|
103
|
+
|
104
|
+
This mode is extremely useful during the development phase, in which an iChain
|
105
|
+
proxy is not usually configured or even available.
|
106
|
+
|
107
|
+
Contact
|
108
|
+
-------
|
109
|
+
|
110
|
+
Ancor González Sosa
|
111
|
+
|
112
|
+
* http://github.com/ancorgs
|
113
|
+
* ancor@suse.de
|
114
|
+
|
115
|
+
License
|
116
|
+
-------
|
117
|
+
|
118
|
+
The Redmine iChain Plugin is licensed under the MIT License (MIT-LICENSE.txt).
|
119
|
+
|
120
|
+
Copyright (c) 2013 Ancor González Sosa
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_ichain_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ancor González Sosa
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: devise
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -54,27 +51,26 @@ files:
|
|
54
51
|
homepage: https://github.com/openSUSE/devise_ichain_authenticatable
|
55
52
|
licenses:
|
56
53
|
- MIT
|
54
|
+
metadata: {}
|
57
55
|
post_install_message:
|
58
56
|
rdoc_options: []
|
59
57
|
require_paths:
|
60
58
|
- lib
|
61
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
60
|
requirements:
|
64
61
|
- - ! '>='
|
65
62
|
- !ruby/object:Gem::Version
|
66
63
|
version: '0'
|
67
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
65
|
requirements:
|
70
66
|
- - ! '>='
|
71
67
|
- !ruby/object:Gem::Version
|
72
68
|
version: '0'
|
73
69
|
requirements: []
|
74
70
|
rubyforge_project:
|
75
|
-
rubygems_version:
|
71
|
+
rubygems_version: 2.0.3
|
76
72
|
signing_key:
|
77
|
-
specification_version:
|
73
|
+
specification_version: 4
|
78
74
|
summary: Devise extension to allow authentication via iChain
|
79
75
|
test_files: []
|
80
76
|
has_rdoc:
|