rpam-ruby19 1.1.1 → 1.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.
- data/README.rdoc +14 -6
- data/ext/Rpam/extconf.rb +1 -1
- data/ext/Rpam/{rpam.c → rpam_ext.c} +10 -9
- data/lib/rpam.rb +18 -0
- data/rpam.gemspec +4 -4
- metadata +25 -30
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Rpam
|
2
2
|
|
3
|
-
*
|
3
|
+
* https://github.com/canweriotnow/rpam-ruby19
|
4
4
|
|
5
5
|
== DESCRIPTION:
|
6
6
|
|
@@ -14,17 +14,25 @@
|
|
14
14
|
|
15
15
|
== SYNOPSIS:
|
16
16
|
|
17
|
-
In a nutshell:
|
17
|
+
In a nutshell (using the 'rpam' PAM service):
|
18
18
|
|
19
19
|
require 'rpam'
|
20
|
-
include Rpam
|
21
20
|
|
22
|
-
if
|
21
|
+
if Rpam.auth("user","password") == true
|
23
22
|
puts "Authenticate Successful"
|
24
23
|
else
|
25
|
-
|
24
|
+
puts "Authenticate Failure"
|
26
25
|
end
|
27
26
|
|
27
|
+
Or, to use a different PAM service:
|
28
|
+
|
29
|
+
if Rpam.auth("user", "password", :service => 'my_foo') == true
|
30
|
+
|
31
|
+
This also supports compatibility with the original 'rpam':
|
32
|
+
|
33
|
+
include Rpam
|
34
|
+
if authpam("user","password") == true
|
35
|
+
|
28
36
|
== REQUIREMENTS:
|
29
37
|
|
30
38
|
|
@@ -33,7 +41,7 @@ In a nutshell:
|
|
33
41
|
|
34
42
|
== INSTALL:
|
35
43
|
|
36
|
-
* gem install rpam (might need sudo privileges)
|
44
|
+
* gem install rpam-ruby19 (might need sudo privileges)
|
37
45
|
|
38
46
|
Or, you can do it the hard way (without Rubygems):
|
39
47
|
|
data/ext/Rpam/extconf.rb
CHANGED
@@ -26,12 +26,10 @@ typedef struct {
|
|
26
26
|
char *name, *pw;
|
27
27
|
} pam_auth_t;
|
28
28
|
|
29
|
-
static const char
|
30
|
-
*rpam_servicename = "rpam";
|
31
|
-
|
32
29
|
VALUE Rpam;
|
30
|
+
VALUE Rpam_Ext;
|
33
31
|
|
34
|
-
void
|
32
|
+
void Init_rpam_ext();
|
35
33
|
|
36
34
|
/*
|
37
35
|
* auth_pam_talker: supply authentication information to PAM when asked
|
@@ -89,14 +87,16 @@ int auth_pam_talker(int num_msg,
|
|
89
87
|
}
|
90
88
|
|
91
89
|
/* Authenticates a user and returns TRUE on success, FALSE on failure */
|
92
|
-
VALUE method_authpam(VALUE self, VALUE username, VALUE password) {
|
90
|
+
VALUE method_authpam(VALUE self, VALUE username, VALUE password, VALUE servicename) {
|
91
|
+
char* rpam_servicename;
|
93
92
|
pam_auth_t userinfo = {NULL, NULL};
|
94
93
|
struct pam_conv conv_info = {&auth_pam_talker, (void *) &userinfo};
|
95
94
|
pam_handle_t *pamh = NULL;
|
96
95
|
int result;
|
97
96
|
|
98
|
-
|
99
|
-
userinfo.
|
97
|
+
rpam_servicename = StringValuePtr(servicename);
|
98
|
+
userinfo.name = StringValuePtr(username);
|
99
|
+
userinfo.pw = StringValuePtr(password);
|
100
100
|
|
101
101
|
if ((result = pam_start(rpam_servicename, userinfo.name, &conv_info, &pamh))
|
102
102
|
!= PAM_SUCCESS) {
|
@@ -122,7 +122,8 @@ VALUE method_authpam(VALUE self, VALUE username, VALUE password) {
|
|
122
122
|
}
|
123
123
|
|
124
124
|
/* initialize */
|
125
|
-
void
|
125
|
+
void Init_rpam_ext() {
|
126
126
|
Rpam = rb_define_module("Rpam");
|
127
|
-
|
127
|
+
Rpam_Ext = rb_define_module_under(Rpam, "Ext");
|
128
|
+
rb_define_singleton_method(Rpam_Ext, "authpam", method_authpam, 3);
|
128
129
|
}
|
data/lib/rpam.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rpam_ext'
|
2
|
+
|
3
|
+
module Rpam
|
4
|
+
def authpam *args
|
5
|
+
::Rpam.auth(*args)
|
6
|
+
end
|
7
|
+
|
8
|
+
class <<self
|
9
|
+
def auth user, password, options = {}
|
10
|
+
options = options.dup
|
11
|
+
options[:service] ||= 'rpam'
|
12
|
+
|
13
|
+
Rpam::Ext.authpam(user, password, options[:service])
|
14
|
+
end
|
15
|
+
|
16
|
+
alias :authpam :auth
|
17
|
+
end
|
18
|
+
end
|
data/rpam.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{rpam-ruby19}
|
3
|
-
s.version = "1.
|
4
|
-
s.date = %q{2011-
|
3
|
+
s.version = "1.2.1"
|
4
|
+
s.date = %q{2011-08-16}
|
5
5
|
s.summary = %q{PAM integration with ruby.}
|
6
6
|
s.require_paths = ["lib"]
|
7
7
|
s.email = %q{jasonlewis.x@gmail.com}
|
@@ -10,8 +10,8 @@ Gem::Specification.new do |s|
|
|
10
10
|
Modules - integration}
|
11
11
|
s.required_ruby_version = Gem::Version::Requirement.new(">= 1.9.1")
|
12
12
|
s.extra_rdoc_files = ["README.rdoc"]
|
13
|
-
s.authors = ["Andre Osti de Moura", "Jason Lewis"]
|
14
|
-
s.files = ["ext/Rpam/
|
13
|
+
s.authors = ["Andre Osti de Moura", "Jason Lewis", "Fred Emmott"]
|
14
|
+
s.files = ["ext/Rpam/rpam_ext.c", "ext/Rpam/extconf.rb", "rpam.gemspec", "README.rdoc", "LICENSE", 'lib/rpam.rb']
|
15
15
|
s.has_rdoc = true
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rpam", "--main", "README.rdoc"]
|
17
17
|
s.extensions = ["ext/Rpam/extconf.rb"]
|
metadata
CHANGED
@@ -1,66 +1,61 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rpam-ruby19
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.1
|
4
5
|
prerelease:
|
5
|
-
version: 1.1.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Andre Osti de Moura
|
9
9
|
- Jason Lewis
|
10
|
+
- Fred Emmott
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
|
14
|
-
date: 2011-06-13 00:00:00 Z
|
14
|
+
date: 2011-08-16 00:00:00.000000000Z
|
15
15
|
dependencies: []
|
16
|
-
|
17
|
-
|
18
|
-
This extension provides PAM - Pluggable Authentication
|
19
|
-
Modules - integration
|
16
|
+
description: ! "This extension provides PAM - Pluggable Authentication\n Modules
|
17
|
+
- integration"
|
20
18
|
email: jasonlewis.x@gmail.com
|
21
19
|
executables: []
|
22
|
-
|
23
|
-
extensions:
|
20
|
+
extensions:
|
24
21
|
- ext/Rpam/extconf.rb
|
25
|
-
extra_rdoc_files:
|
22
|
+
extra_rdoc_files:
|
26
23
|
- README.rdoc
|
27
|
-
files:
|
28
|
-
- ext/Rpam/
|
24
|
+
files:
|
25
|
+
- ext/Rpam/rpam_ext.c
|
29
26
|
- ext/Rpam/extconf.rb
|
30
27
|
- rpam.gemspec
|
31
28
|
- README.rdoc
|
32
29
|
- LICENSE
|
30
|
+
- lib/rpam.rb
|
33
31
|
homepage: https://github.com/canweriotnow/rpam-ruby19
|
34
32
|
licenses: []
|
35
|
-
|
36
33
|
post_install_message:
|
37
|
-
rdoc_options:
|
34
|
+
rdoc_options:
|
38
35
|
- --line-numbers
|
39
36
|
- --inline-source
|
40
37
|
- --title
|
41
38
|
- Rpam
|
42
39
|
- --main
|
43
40
|
- README.rdoc
|
44
|
-
require_paths:
|
41
|
+
require_paths:
|
45
42
|
- lib
|
46
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
44
|
none: false
|
48
|
-
requirements:
|
49
|
-
- -
|
50
|
-
- !ruby/object:Gem::Version
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
51
48
|
version: 1.9.1
|
52
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
50
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
58
55
|
requirements: []
|
59
|
-
|
60
56
|
rubyforge_project:
|
61
|
-
rubygems_version: 1.
|
57
|
+
rubygems_version: 1.8.10
|
62
58
|
signing_key:
|
63
59
|
specification_version: 3
|
64
60
|
summary: PAM integration with ruby.
|
65
61
|
test_files: []
|
66
|
-
|