rkerberos 0.1.0
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/CHANGES +3 -0
- data/MANIFEST +16 -0
- data/README +51 -0
- data/Rakefile +148 -0
- data/ext/rkerberos/ccache.c +250 -0
- data/ext/rkerberos/config.c +312 -0
- data/ext/rkerberos/context.c +77 -0
- data/ext/rkerberos/extconf.rb +14 -0
- data/ext/rkerberos/kadm5.c +991 -0
- data/ext/rkerberos/keytab.c +509 -0
- data/ext/rkerberos/keytab_entry.c +84 -0
- data/ext/rkerberos/policy.c +196 -0
- data/ext/rkerberos/principal.c +263 -0
- data/ext/rkerberos/rkerberos.c +566 -0
- data/ext/rkerberos/rkerberos.h +95 -0
- data/rkerberos.gemspec +28 -0
- data/test/test_config.rb +129 -0
- data/test/test_context.rb +33 -0
- data/test/test_credentials_cache.rb +153 -0
- data/test/test_kadm5.rb +424 -0
- data/test/test_keytab_entry.rb +66 -0
- data/test/test_krb5.rb +198 -0
- data/test/test_krb5_keytab.rb +294 -0
- data/test/test_policy.rb +123 -0
- data/test/test_principal.rb +134 -0
- metadata +155 -0
data/test/test_policy.rb
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_policy.rb
|
3
|
+
#
|
4
|
+
# Tests for the Kerberos::Kadm5::Policy class.
|
5
|
+
########################################################################
|
6
|
+
require 'rubygems'
|
7
|
+
gem 'test-unit'
|
8
|
+
|
9
|
+
require 'test/unit'
|
10
|
+
require 'rkerberos'
|
11
|
+
|
12
|
+
class TC_Kadm5_Policy < Test::Unit::TestCase
|
13
|
+
def setup
|
14
|
+
@policy = Kerberos::Kadm5::Policy.new(:name => 'test', :max_life => 10000)
|
15
|
+
end
|
16
|
+
|
17
|
+
test 'policy name basic functionality' do
|
18
|
+
assert_respond_to(@policy, :policy)
|
19
|
+
end
|
20
|
+
|
21
|
+
test 'policy name alias' do
|
22
|
+
assert_respond_to(@policy, :name)
|
23
|
+
assert_alias_method(@policy, :name, :policy)
|
24
|
+
end
|
25
|
+
|
26
|
+
test 'policy name must be a string' do
|
27
|
+
assert_raise(TypeError){ Kerberos::Kadm5::Policy.new(:name => 1) }
|
28
|
+
end
|
29
|
+
|
30
|
+
test 'policy name must be present' do
|
31
|
+
assert_raise(ArgumentError){ Kerberos::Kadm5::Policy.new(:max_life => 10000) }
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'min_life basic functionality' do
|
35
|
+
assert_respond_to(@policy, :min_life)
|
36
|
+
assert_nothing_raised{ @policy.min_life }
|
37
|
+
end
|
38
|
+
|
39
|
+
test 'min_life must be a number if not nil' do
|
40
|
+
assert_raise(TypeError){
|
41
|
+
Kerberos::Kadm5::Policy.new(:name => 'test', :min_life => 'test')
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
test 'max_life basic functionality' do
|
46
|
+
assert_respond_to(@policy, :max_life)
|
47
|
+
assert_nothing_raised{ @policy.max_life }
|
48
|
+
end
|
49
|
+
|
50
|
+
test 'max_life must be a number if not nil' do
|
51
|
+
assert_raise(TypeError){
|
52
|
+
Kerberos::Kadm5::Policy.new(:name => 'test', :max_life => 'test')
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
test 'min_length basic functionality' do
|
57
|
+
assert_respond_to(@policy, :min_length)
|
58
|
+
assert_nothing_raised{ @policy.min_length }
|
59
|
+
end
|
60
|
+
|
61
|
+
test 'min_length must be a number if not nil' do
|
62
|
+
assert_raise(TypeError){
|
63
|
+
Kerberos::Kadm5::Policy.new(:name => 'test', :min_length => 'test')
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
test 'min_classes basic functionality' do
|
68
|
+
assert_respond_to(@policy, :min_classes)
|
69
|
+
assert_nothing_raised{ @policy.min_classes }
|
70
|
+
end
|
71
|
+
|
72
|
+
test 'min_classes must be a number if not nil' do
|
73
|
+
assert_raise(TypeError){
|
74
|
+
Kerberos::Kadm5::Policy.new(:name => 'test', :min_classes => 'test')
|
75
|
+
}
|
76
|
+
end
|
77
|
+
|
78
|
+
test 'history_num basic functionality' do
|
79
|
+
assert_respond_to(@policy, :history_num)
|
80
|
+
assert_nothing_raised{ @policy.history_num }
|
81
|
+
end
|
82
|
+
|
83
|
+
test 'history_num must be a number if not nil' do
|
84
|
+
assert_raise(TypeError){
|
85
|
+
Kerberos::Kadm5::Policy.new(:name => 'test', :history_num => 'test')
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
89
|
+
test 'instance variables are set as expected from the constructor' do
|
90
|
+
@policy = Kerberos::Kadm5::Policy.new(
|
91
|
+
:name => 'test',
|
92
|
+
:min_life => 8888,
|
93
|
+
:max_life => 9999,
|
94
|
+
:min_length => 5,
|
95
|
+
:min_classes => 2,
|
96
|
+
:history_num => 7
|
97
|
+
)
|
98
|
+
|
99
|
+
assert_equal('test', @policy.name)
|
100
|
+
assert_equal(8888, @policy.min_life)
|
101
|
+
assert_equal(9999, @policy.max_life)
|
102
|
+
assert_equal(5, @policy.min_length)
|
103
|
+
assert_equal(2, @policy.min_classes)
|
104
|
+
assert_equal(7, @policy.history_num)
|
105
|
+
end
|
106
|
+
|
107
|
+
test 'constructor requires one argument' do
|
108
|
+
assert_raise(ArgumentError){ Kerberos::Kadm5::Policy.new }
|
109
|
+
assert_raise(ArgumentError){ Kerberos::Kadm5::Policy.new('foo', 'bar') }
|
110
|
+
end
|
111
|
+
|
112
|
+
test 'constructor requires a hash argument' do
|
113
|
+
assert_raise(TypeError){ Kerberos::Kadm5::Policy.new('test') }
|
114
|
+
end
|
115
|
+
|
116
|
+
test 'constructor raises an error if the hash is empty' do
|
117
|
+
assert_raise(ArgumentError){ Kerberos::Kadm5::Policy.new({}) }
|
118
|
+
end
|
119
|
+
|
120
|
+
def teardown
|
121
|
+
@policy = nil
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_principal.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Kerberos::Krb5::Principal class.
|
5
|
+
########################################################################
|
6
|
+
require 'rubygems'
|
7
|
+
gem 'test-unit'
|
8
|
+
|
9
|
+
require 'open3'
|
10
|
+
require 'test/unit'
|
11
|
+
require 'rkerberos'
|
12
|
+
|
13
|
+
class TC_Krb5_Principal < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@name = 'Jon'
|
16
|
+
@princ = Kerberos::Krb5::Principal.new(@name)
|
17
|
+
end
|
18
|
+
|
19
|
+
test "argument to constructor must be a string" do
|
20
|
+
assert_raise(TypeError){ Kerberos::Krb5::Principal.new(1) }
|
21
|
+
assert_raise(TypeError){ Kerberos::Krb5::Principal.new(true) }
|
22
|
+
end
|
23
|
+
|
24
|
+
test "name basic functionality" do
|
25
|
+
assert_respond_to(@princ, :name)
|
26
|
+
assert_nothing_raised{ @princ.name }
|
27
|
+
end
|
28
|
+
|
29
|
+
test "name returns expected results" do
|
30
|
+
assert_equal('Jon', @princ.name)
|
31
|
+
end
|
32
|
+
|
33
|
+
test "expire_time basic functionality" do
|
34
|
+
assert_respond_to(@princ, :expire_time)
|
35
|
+
assert_nothing_raised{ @princ.expire_time }
|
36
|
+
end
|
37
|
+
|
38
|
+
test "last_password_change basic functionality" do
|
39
|
+
assert_respond_to(@princ, :last_password_change)
|
40
|
+
assert_nothing_raised{ @princ.last_password_change }
|
41
|
+
end
|
42
|
+
|
43
|
+
test "password_expiration basic functionality" do
|
44
|
+
assert_respond_to(@princ, :password_expiration)
|
45
|
+
assert_nothing_raised{ @princ.password_expiration }
|
46
|
+
end
|
47
|
+
|
48
|
+
test "max_life basic functionality" do
|
49
|
+
assert_respond_to(@princ, :max_life)
|
50
|
+
assert_nothing_raised{ @princ.max_life }
|
51
|
+
end
|
52
|
+
|
53
|
+
test "mod_name basic functionality" do
|
54
|
+
assert_respond_to(@princ, :mod_name)
|
55
|
+
assert_nothing_raised{ @princ.mod_name }
|
56
|
+
end
|
57
|
+
|
58
|
+
test "mod_date basic functionality" do
|
59
|
+
assert_respond_to(@princ, :mod_date)
|
60
|
+
assert_nothing_raised{ @princ.mod_date }
|
61
|
+
end
|
62
|
+
|
63
|
+
test "attributes basic functionality" do
|
64
|
+
assert_respond_to(@princ, :attributes)
|
65
|
+
assert_nothing_raised{ @princ.attributes }
|
66
|
+
end
|
67
|
+
|
68
|
+
test "kvno basic functionality" do
|
69
|
+
assert_respond_to(@princ, :kvno)
|
70
|
+
assert_nothing_raised{ @princ.kvno }
|
71
|
+
end
|
72
|
+
|
73
|
+
test "policy basic functionality" do
|
74
|
+
assert_respond_to(@princ, :policy)
|
75
|
+
assert_nothing_raised{ @princ.policy }
|
76
|
+
end
|
77
|
+
|
78
|
+
test "max_renewable_life basic functionality" do
|
79
|
+
assert_respond_to(@princ, :max_renewable_life)
|
80
|
+
assert_nothing_raised{ @princ.max_renewable_life }
|
81
|
+
end
|
82
|
+
|
83
|
+
test "last_success basic functionality" do
|
84
|
+
assert_respond_to(@princ, :last_success)
|
85
|
+
assert_nothing_raised{ @princ.last_success }
|
86
|
+
end
|
87
|
+
|
88
|
+
test "last_failed basic functionality" do
|
89
|
+
assert_respond_to(@princ, :last_failed)
|
90
|
+
assert_nothing_raised{ @princ.last_failed }
|
91
|
+
end
|
92
|
+
|
93
|
+
test "fail_auth_count basic functionality" do
|
94
|
+
assert_respond_to(@princ, :fail_auth_count)
|
95
|
+
assert_nothing_raised{ @princ.fail_auth_count }
|
96
|
+
end
|
97
|
+
|
98
|
+
test "constructor accepts a name" do
|
99
|
+
assert_nothing_raised{ Kerberos::Krb5::Principal.new('delete_me') }
|
100
|
+
end
|
101
|
+
|
102
|
+
test "passing a name to the constructor sets the instance variable" do
|
103
|
+
assert_nothing_raised{ @princ = Kerberos::Krb5::Principal.new('delete_me') }
|
104
|
+
assert_equal('delete_me', @princ.name)
|
105
|
+
end
|
106
|
+
|
107
|
+
test "get realm basic functionality" do
|
108
|
+
assert_respond_to(@princ, :realm)
|
109
|
+
assert_nothing_raised{ @princ.realm }
|
110
|
+
assert_kind_of(String, @princ.realm)
|
111
|
+
end
|
112
|
+
|
113
|
+
test "set realm basic functionality" do
|
114
|
+
assert_respond_to(@princ, :realm=)
|
115
|
+
end
|
116
|
+
|
117
|
+
test "set realm works as expected" do
|
118
|
+
assert_nothing_raised{ @princ.realm = "TEST.REALM" }
|
119
|
+
assert_equal("TEST.REALM", @princ.realm)
|
120
|
+
end
|
121
|
+
|
122
|
+
test "equality basic functionality" do
|
123
|
+
assert_respond_to(@princ, :==)
|
124
|
+
end
|
125
|
+
|
126
|
+
test "equality works as expected" do
|
127
|
+
assert_true(@princ == @princ)
|
128
|
+
assert_false(@princ == Kerberos::Krb5::Principal.new('other'))
|
129
|
+
end
|
130
|
+
|
131
|
+
def teardown
|
132
|
+
@princ = nil
|
133
|
+
end
|
134
|
+
end
|
metadata
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rkerberos
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Daniel Berger
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-04-28 00:00:00 -06:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rake-compiler
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: test-unit
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 11
|
44
|
+
segments:
|
45
|
+
- 2
|
46
|
+
- 1
|
47
|
+
- 0
|
48
|
+
version: 2.1.0
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: dbi-dbrc
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 31
|
60
|
+
segments:
|
61
|
+
- 1
|
62
|
+
- 1
|
63
|
+
- 6
|
64
|
+
version: 1.1.6
|
65
|
+
type: :development
|
66
|
+
version_requirements: *id003
|
67
|
+
description: " The rkerberos library is an interface for the Kerberos 5 network\n authentication protocol. It wraps the Kerberos C API.\n"
|
68
|
+
email: djberg96@gmail.com
|
69
|
+
executables: []
|
70
|
+
|
71
|
+
extensions:
|
72
|
+
- ext/rkerberos/extconf.rb
|
73
|
+
extra_rdoc_files:
|
74
|
+
- README
|
75
|
+
- CHANGES
|
76
|
+
- MANIFEST
|
77
|
+
- ext/rkerberos/principal.c
|
78
|
+
- ext/rkerberos/rkerberos.c
|
79
|
+
- ext/rkerberos/kadm5.c
|
80
|
+
- ext/rkerberos/keytab_entry.c
|
81
|
+
- ext/rkerberos/context.c
|
82
|
+
- ext/rkerberos/keytab.c
|
83
|
+
- ext/rkerberos/ccache.c
|
84
|
+
- ext/rkerberos/policy.c
|
85
|
+
- ext/rkerberos/config.c
|
86
|
+
files:
|
87
|
+
- Rakefile
|
88
|
+
- README
|
89
|
+
- rkerberos.gemspec
|
90
|
+
- CHANGES
|
91
|
+
- test/test_principal.rb
|
92
|
+
- test/test_credentials_cache.rb
|
93
|
+
- test/test_config.rb
|
94
|
+
- test/test_krb5.rb
|
95
|
+
- test/test_context.rb
|
96
|
+
- test/test_krb5_keytab.rb
|
97
|
+
- test/test_kadm5.rb
|
98
|
+
- test/test_keytab_entry.rb
|
99
|
+
- test/test_policy.rb
|
100
|
+
- MANIFEST
|
101
|
+
- ext/rkerberos/extconf.rb
|
102
|
+
- ext/rkerberos/principal.c
|
103
|
+
- ext/rkerberos/rkerberos.c
|
104
|
+
- ext/rkerberos/kadm5.c
|
105
|
+
- ext/rkerberos/keytab_entry.c
|
106
|
+
- ext/rkerberos/context.c
|
107
|
+
- ext/rkerberos/keytab.c
|
108
|
+
- ext/rkerberos/ccache.c
|
109
|
+
- ext/rkerberos/policy.c
|
110
|
+
- ext/rkerberos/rkerberos.h
|
111
|
+
- ext/rkerberos/config.c
|
112
|
+
has_rdoc: true
|
113
|
+
homepage: http://github.com/djberg96/rkerberos
|
114
|
+
licenses:
|
115
|
+
- Artistic 2.0
|
116
|
+
post_install_message:
|
117
|
+
rdoc_options: []
|
118
|
+
|
119
|
+
require_paths:
|
120
|
+
- lib
|
121
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 3
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
version: "0"
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
hash: 3
|
136
|
+
segments:
|
137
|
+
- 0
|
138
|
+
version: "0"
|
139
|
+
requirements: []
|
140
|
+
|
141
|
+
rubyforge_project: rkerberos
|
142
|
+
rubygems_version: 1.6.2
|
143
|
+
signing_key:
|
144
|
+
specification_version: 3
|
145
|
+
summary: A Ruby interface for the the Kerberos library
|
146
|
+
test_files:
|
147
|
+
- test/test_principal.rb
|
148
|
+
- test/test_credentials_cache.rb
|
149
|
+
- test/test_config.rb
|
150
|
+
- test/test_krb5.rb
|
151
|
+
- test/test_context.rb
|
152
|
+
- test/test_krb5_keytab.rb
|
153
|
+
- test/test_kadm5.rb
|
154
|
+
- test/test_keytab_entry.rb
|
155
|
+
- test/test_policy.rb
|