oracle_ebs_authentication 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.
@@ -0,0 +1,3 @@
1
+ module OracleEbsAuthentication
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,37 @@
1
+ require "spec_helper"
2
+
3
+ describe "Authenticator" do
4
+ before(:all) do
5
+ if DATABASE_NAME && DATABASE_USERNAME && DATABASE_PASSWORD
6
+ plsql.connect! DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME
7
+ else
8
+ raise "You need to specify DATABASE_NAME, DATABASE_USERNAME, DATABASE_PASSWORD"
9
+ end
10
+ end
11
+
12
+ before(:each) do
13
+ @auth = OracleEbsAuthentication::Authenticator.new
14
+ @user = "SIMANRAI"
15
+ @password = "welcome1"
16
+ end
17
+
18
+ describe "#get_fnd_password" do
19
+ it "should get APPS password and validate user password" do
20
+ @auth.get_fnd_password(@user, @password).should_not be_nil
21
+ end
22
+
23
+ it "should not get APPS password for non-existing user" do
24
+ @auth.get_fnd_password("XXX", @password).should be_nil
25
+ end
26
+
27
+ it "should not get APPS password for wrong user password" do
28
+ @auth.get_fnd_password(@user, "XXX").should be_nil
29
+ end
30
+ end
31
+
32
+ describe "#validate_user_password" do
33
+ it "should validate user password for given user" do
34
+ @auth.validate_user_password(@user, @password).should be_true
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,94 @@
1
+ require "spec_helper"
2
+
3
+ describe "Security" do
4
+ before(:each) do
5
+ @security = OracleEbsAuthentication::Security.new
6
+ end
7
+
8
+ it "new_check should return nil if second parameter has encrypt failed message" do
9
+ @security.new_check("XXX", "ZG_ENCRYPT_FAILED_XXX", true).should be_nil
10
+ end
11
+
12
+ it "y should return SHA digest" do
13
+ @security.y("user","password").unpack("H*")[0].should == "a79ae8a67c2c3976b82fd25995501524e41c41a129095d06882c4bf7b2c3b782"
14
+ end
15
+
16
+ it "z should return hex reprezentation of string" do
17
+ @security.z("\xAA\xBB\xCC").should == "AABBCC"
18
+ @security.z("\x11\x22\x33\x44\x55\x66").should == "112233445566"
19
+ end
20
+
21
+ it "a_ should return UTF-8 encoded string" do
22
+ @security.a_("ACEĀČĒaceāčē").should == "ACEĀČĒaceāčē"
23
+ end
24
+
25
+ describe "#decrypt and #check" do
26
+ before(:each) do
27
+ @user1 = "ITA_JLAX"
28
+ @password1 = "vaidava1"
29
+ @wrong_password1 = "vaidava2"
30
+ @efp1 = "ZG614D5255C458E576C7E554E62DEFC58ECB33A539100C23FA1089CFCD550CFAC2C4BE9EC42A331C09E0B47B6EB431452C8C"
31
+ @eup1 = "ZGE0E4F7E40CE4586F5765ECD4A0F33A2C0991484F97BBD33F2C32E0A94C307D747363C0DF9816300C896CB5EA1F5EBB33E5"
32
+
33
+ @user2 = "ITA_JLAX"
34
+ @password2 = "warcraft3"
35
+ @wrong_password2 = "vaidava2"
36
+ @efp2 = "ZGEC82B1AE4D61E0EAF260B10AD7D557C2469A7EC4E6C9CE3FD77B9C8CEC8AC18FD0EC46DF6D54F94DC602C0BA3F6662C9DF"
37
+ @eup2 = "ZG65C60DF02F55BCCC7BB09BD70C1636C016AA415D486072E671489C0432C3D0CCAF05A0D2DEE7E55E2277356A930145CBA7"
38
+
39
+ @user3 = "hrms"
40
+ @password3 = "welcome"
41
+ @wrong_password3 = "welcome1"
42
+ @efp3 = "ZGBC22FF536248A02DC4B4FFAF8CAA1BDFD5564526BBEA23323D67C9BF541291333192D3C89A0447BB6B92FA8C9D272FD67C"
43
+
44
+ # R12 case-sensitive passwords
45
+ @user4 = "TESTEBRI"
46
+ @password4 = "R12tester"
47
+ @wrong_password4 = "R12TESTER"
48
+ @efp4 = "ZH6E999CDE99A952A00270CD7DAAEF1392CF1FBC6CFD6AB68EE970FFCEDEC3B88594B0E2A22AD5948B96BDA9B37F246E489C"
49
+ end
50
+
51
+ it "should check user1 password" do
52
+ @security.check(@user1.upcase + "/" + @password1.upcase, @efp1, false).should be_true
53
+ end
54
+
55
+ it "should not check user1 wrong password" do
56
+ @security.check(@user1.upcase + "/" + @wrong_password1.upcase, @efp1, false).should_not be_true
57
+ end
58
+
59
+ it "should compare user1 password with decrypted" do
60
+ apps_password = @security.decrypt(@user1.upcase + "/" + @password1.upcase, @efp1, false)
61
+ # puts "</br>DEBUG: apps_password=#{apps_password}"
62
+ @security.decrypt(apps_password, @eup1, false).should == @password1.upcase
63
+ end
64
+
65
+ it "should check user2 password" do
66
+ @security.check(@user2.upcase + "/" + @password2.upcase, @efp2, false).should be_true
67
+ end
68
+
69
+ it "should not check user2 wrong password" do
70
+ @security.check(@user2.upcase + "/" + @wrong_password2.upcase, @efp2, false).should_not be_true
71
+ end
72
+
73
+ it "should compare user2 password with decrypted" do
74
+ apps_password = @security.decrypt(@user2.upcase + "/" + @password2.upcase, @efp2, false)
75
+ @security.decrypt(apps_password, @eup2, false).should == @password2.upcase
76
+ end
77
+
78
+ it "should check user3 password" do
79
+ @security.check(@user3.upcase + "/" + @password3.upcase, @efp3, false).should be_true
80
+ end
81
+
82
+ it "should not check user3 wrong password" do
83
+ @security.check(@user3.upcase + "/" + @wrong_password3.upcase, @efp3, false).should_not be_true
84
+ end
85
+
86
+ it "should check user4 password" do
87
+ @security.check(@user4.upcase + "/" + @password4, @efp4, false).should be_true
88
+ end
89
+
90
+ it "should not check user4 wrong password" do
91
+ @security.check(@user4.upcase + "/" + @wrong_password4, @efp4, false).should_not be_true
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,7 @@
1
+ $:.unshift File.dirname(__FILE__) + '/../lib'
2
+
3
+ require "oracle_ebs_authentication"
4
+
5
+ DATABASE_NAME = ENV['DATABASE_NAME']
6
+ DATABASE_USERNAME = ENV['DATABASE_USERNAME']
7
+ DATABASE_PASSWORD = ENV['DATABASE_PASSWORD']
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: oracle_ebs_authentication
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
+ - Edgars Beigarts
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-03-09 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: activesupport
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 7
30
+ segments:
31
+ - 2
32
+ - 2
33
+ version: "2.2"
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: ruby-plsql
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 11
45
+ segments:
46
+ - 0
47
+ - 4
48
+ - 2
49
+ version: 0.4.2
50
+ type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: rake
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: rspec
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 27
75
+ segments:
76
+ - 2
77
+ - 5
78
+ - 0
79
+ version: 2.5.0
80
+ type: :development
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
83
+ name: ruby-oci8
84
+ prerelease: false
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ hash: 7
91
+ segments:
92
+ - 2
93
+ - 0
94
+ - 4
95
+ version: 2.0.4
96
+ type: :development
97
+ version_requirements: *id005
98
+ description: This plugin provides Oracle E-Business Suite user authentication functionality.
99
+ email: 1@wb4.lv
100
+ executables: []
101
+
102
+ extensions: []
103
+
104
+ extra_rdoc_files: []
105
+
106
+ files:
107
+ - lib/oracle_ebs_authentication/authenticator.rb
108
+ - lib/oracle_ebs_authentication/security.rb
109
+ - lib/oracle_ebs_authentication/version.rb
110
+ - lib/oracle_ebs_authentication.rb
111
+ - spec/authenticator_spec.rb
112
+ - spec/security_spec.rb
113
+ - spec/spec_helper.rb
114
+ - README.md
115
+ - LICENSE
116
+ has_rdoc: true
117
+ homepage: http://github.com/ebeigarts/oracle_ebs_authentication
118
+ licenses: []
119
+
120
+ post_install_message:
121
+ rdoc_options: []
122
+
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ hash: 3
131
+ segments:
132
+ - 0
133
+ version: "0"
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ hash: 3
140
+ segments:
141
+ - 0
142
+ version: "0"
143
+ requirements: []
144
+
145
+ rubyforge_project:
146
+ rubygems_version: 1.5.2
147
+ signing_key:
148
+ specification_version: 3
149
+ summary: This plugin provides Oracle E-Business Suite user authentication functionality.
150
+ test_files: []
151
+