1
1
module Puppet ::Parser ::Functions
2
- require 'puppet_x/util.rb'
2
+ begin
3
+ require 'puppet_x/aco/util'
4
+ rescue LoadError
5
+ mod = Puppet ::Module . find ( 'oracle_java' , Puppet [ :environment ] . to_s )
6
+ require File . join mod . path , 'lib/puppet_x/aco/util'
7
+ end
3
8
4
9
newfunction ( :oracle_sso , :type => :rvalue ) do |args |
5
10
fileuri = args [ 0 ]
6
11
ssousername = args [ 1 ]
7
12
password = args [ 2 ]
8
13
9
14
cookies = [ 'oraclelicense=accept-securebackup-cookie' ]
10
- auth_required = false
11
15
12
16
#
13
17
# Step 1: try unauthenticated download from given URI
@@ -16,19 +20,18 @@ module Puppet::Parser::Functions
16
20
#
17
21
18
22
begin
19
- response , _ = PuppetX ::Util . request ( fileuri , 'HEAD' , cookies )
20
- if response . uri . host == 'login.oracle.com'
23
+ uri , _ , _ = PuppetX :: Aco ::Util . request ( fileuri , 'HEAD' , cookies )
24
+ if uri . host == 'login.oracle.com'
21
25
debug ( "Authentication required for #{ fileuri } " )
22
- elsif response . uri . request_uri . include? ( 'AuthParam=' )
26
+ elsif uri . query . include? ( 'AuthParam=' )
23
27
debug ( "Authentication not required for #{ fileuri } " )
24
- return response . uri . to_s
28
+ return uri . to_s
25
29
else
26
30
raise "Unknown failure while fetching #{ fileuri } "
27
31
end
28
32
rescue Net ::HTTPServerException => e
29
33
debug ( "File not found at #{ fileuri } " )
30
34
debug ( 'Trying authenticated download...' )
31
- auth_required = true
32
35
fileuri = fileuri . gsub! ( 'otn-pub' , 'otn' )
33
36
end
34
37
@@ -40,7 +43,7 @@ module Puppet::Parser::Functions
40
43
41
44
# retrieve SSO form and read OAM_REQ parameter value
42
45
debug ( 'Retrieving Oracle.com SSO form.' )
43
- response , cookies = PuppetX ::Util . request ( fileuri , 'GET' , cookies )
46
+ _ , response , cookies = PuppetX :: Aco ::Util . request ( fileuri , 'GET' , cookies )
44
47
matchdata = /name="OAM_REQ" value="(.+?)"/ . match ( response . body )
45
48
if matchdata and !matchdata . captures . nil?
46
49
oamreq = matchdata [ 1 ]
@@ -54,7 +57,7 @@ module Puppet::Parser::Functions
54
57
ssouri = URI ( 'https://login.oracle.com/oam/server/sso/auth_cred_submit' )
55
58
cookies . push ( 's_cc=true' )
56
59
57
- request = Net ::HTTP ::Post . new ( ssouri , { 'user-agent' => 'Mozilla/5.0 (Puppet)' , 'cookie' => cookies . join ( '; ' ) } )
60
+ request = Net ::HTTP ::Post . new ( ssouri . request_uri , { 'user-agent' => 'Mozilla/5.0 (Puppet)' , 'cookie' => cookies . join ( '; ' ) } )
58
61
request . set_form_data ( 'ssousername' => ssousername , 'password' => password )
59
62
request . body += "&OAM_REQ=#{ oamreq } "
60
63
@@ -79,9 +82,9 @@ module Puppet::Parser::Functions
79
82
#
80
83
81
84
begin
82
- response , _ = PuppetX ::Util . request ( location , 'HEAD' , cookies )
83
- if response . uri . request_uri . include? ( 'AuthParam=' )
84
- return response . uri . to_s
85
+ uri , _ , _ = PuppetX :: Aco ::Util . request ( location , 'HEAD' , cookies )
86
+ if uri . query . include? ( 'AuthParam=' )
87
+ return uri . to_s
85
88
else
86
89
raise "Unknown failure while fetching #{ fileuri } "
87
90
end
0 commit comments