rpam2 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5c4a544a01935abef0fcad198c54eac69eadf13f911ac9d232e12b0febe345a
4
- data.tar.gz: 141df1f03c8fc332f68b8c7ef397a9040d2ba91c3ac4c4fd2639e41f3dc9f775
3
+ metadata.gz: 4de60837bda2784d6e3520925472e446f731837e7b411c80f830965ca49569c5
4
+ data.tar.gz: 27a46170ba7fba4f51258a10d2880d43dc8fd39552b99b6fc42620f12ba759c4
5
5
  SHA512:
6
- metadata.gz: 8d629dd561e80ad197493349953319477d7c7fd2d785dfdb2d30adf8b1c2ce4c6e6105b2ac73df18b3fb65dcdcb3087b3ba9464a5b1ae1a91e4aeba3cf402bda
7
- data.tar.gz: 8bc5288e360b0e6778f10b719b5d11f12a05a649f08b7ac41225ff29431e60e57193b33c3aa7b0349d5e0ec6cd864d0265f270fc05a6c35e995c3f69d936810f
6
+ metadata.gz: 02b2fc48fa2cf0605dc5aa2afde93c64d7326a2aa0e15cf41bb21e0f1f0e4ed3fecb79063e641cb79f60c7923cd811274984d07b8d6d7e04ef346b145e746d6b
7
+ data.tar.gz: 73b2c944a0d37715966cf22e4ec03bcb0db2a6184d03d847dd956456016b2f5415f7c38a92d9e785f8e9edb66114404e709ea8665e9720f17b4d0eec90713acb
data/ext/rpam2/extconf.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'mkmf'
2
2
 
3
- pam_installed = have_library("pam","pam_start") and have_header("security/pam_appl.h")
3
+ # use "and" here to have both errors in error case, helps admins to fix it faster
4
+ pam_installed = have_library("pam","pam_start") and have_header("security/pam_appl.h")
4
5
  #pam_installed = false
5
6
 
6
7
 
data/ext/rpam2/rpam2.c CHANGED
@@ -195,9 +195,6 @@ static VALUE method_authpam(VALUE self, VALUE servicename, VALUE username, VALUE
195
195
  unsigned int result = 0;
196
196
  struct pam_conv auth_c = {0,0};
197
197
 
198
- Check_Type(username, T_STRING);
199
- Check_Type(password, T_STRING);
200
-
201
198
  result = pam_start(rpam_default_servicename, StringValueCStr(username), &auth_c, &pamh);
202
199
  if (result != PAM_SUCCESS) {
203
200
  rb_warn("INIT: %s", pam_strerror(pamh, result));
@@ -223,8 +220,6 @@ static VALUE method_accountpam(VALUE self, VALUE servicename, VALUE username) {
223
220
  unsigned int result=0;
224
221
  struct pam_conv auth_c = {0,0};
225
222
 
226
- Check_Type(username, T_STRING);
227
-
228
223
  result = pam_start(rpam_default_servicename, StringValueCStr(username), &auth_c, &pamh);
229
224
  if (result != PAM_SUCCESS) {
230
225
  rb_warn("INIT: %s", pam_strerror(pamh, result));
@@ -251,10 +246,6 @@ static VALUE method_getenvpam(VALUE self, VALUE servicename, VALUE username, VAL
251
246
  unsigned int result = 0;
252
247
  struct pam_conv auth_c = {0,0};
253
248
 
254
- Check_Type(username, T_STRING);
255
- Check_Type(password, T_STRING);
256
- Check_Type(envname, T_STRING);
257
-
258
249
  result = pam_start(rpam_default_servicename, StringValueCStr(username), &auth_c, &pamh);
259
250
  if (result != PAM_SUCCESS) {
260
251
  rb_warn("INIT: %s", pam_strerror(pamh, result));
data/lib/rpam2.rb CHANGED
@@ -52,31 +52,39 @@ module Rpam2
52
52
 
53
53
  private
54
54
 
55
- def fake_compare(servicename, username)
55
+ def use_fake?(servicename)
56
56
  return false unless self.fake_data
57
57
  self.fake_data.fetch(:servicenames, Set.new).include?(servicename)
58
58
  end
59
59
 
60
60
  def _auth(servicename, username, password, ruser, rhost)
61
- return _authc(servicename, username, password, ruser, rhost) unless fake_compare(servicename, username)
61
+ raise TypeError unless username.is_a? String
62
+ raise TypeError unless password.is_a? String
63
+ return _authc(servicename, username, password, ruser, rhost) unless use_fake?(servicename)
62
64
  self.fake_data[:password] == password && self.fake_data.fetch(:usernames, Set.new).include?(username)
63
65
  end
64
66
 
65
67
  def _account(servicename, username)
66
- return _accountc(servicename, username) unless self.fake_data && self.fake_data.fetch(:servicenames, Set.new).include?(servicename)
68
+ raise TypeError unless username.is_a? String
69
+ return _accountc(servicename, username) unless use_fake?(servicename)
67
70
  self.fake_data.fetch(:usernames, Set.new).include?(username)
68
71
  end
69
72
 
70
73
  def _getenv(servicename, username, password, opensession, varname, ruser, rhost)
71
- return _getenvc(servicename, username, password, opensession, varname, ruser, rhost) unless fake_compare(servicename, username)
74
+ raise TypeError unless username.is_a? String
75
+ raise TypeError unless password.is_a? String
76
+ raise TypeError unless varname.is_a? String
77
+ return _getenvc(servicename, username, password, opensession, varname, ruser, rhost) unless use_fake?(servicename)
72
78
  return nil unless self.fake_data.fetch(:usernames, Set.new).include?(username)
73
- return nil if self.fake_data[:env].blank? || self.fake_data[:password] != password
79
+ return nil unless self.fake_data[:env] && self.fake_data[:password] == password
74
80
  self.fake_data[:env].fetch(varname, nil)
75
81
  end
76
82
 
77
83
  def _listenv(servicename, username, password, opensession, ruser, rhost)
78
- return _listenvc(servicename, username, password, opensession, ruser, rhost) unless fake_compare(servicename, username)
79
- return nil unless self.fake_data[:password] == password && self.fake_data.fetch(:usernames, Set.new).include?(username)
84
+ raise TypeError unless username.is_a? String
85
+ raise TypeError unless password.is_a? String
86
+ return _listenvc(servicename, username, password, opensession, ruser, rhost) unless use_fake?(servicename)
87
+ return nil unless self.fake_data[:password] == password && self.fake_data.fetch(:usernames, Set.new).include?(username)
80
88
  self.fake_data.fetch(:env, {})
81
89
  end
82
90
  end
data/rpam2.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "rpam2"
3
- s.version = "4.0.0"
4
- s.date = "2017-10-10"
3
+ s.version = "4.0.1"
4
+ s.date = "2018-03-23"
5
5
  s.summary = "PAM integration with ruby."
6
6
  s.email = "devkral@web.de"
7
7
  s.description = "Ruby PAM (Pluggable Authentication Modules) integration"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpam2
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kaftan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-10 00:00:00.000000000 Z
11
+ date: 2018-03-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby PAM (Pluggable Authentication Modules) integration
14
14
  email: devkral@web.de