adp-connection 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +202 -0
- data/README.md +56 -0
- data/Rakefile +6 -0
- data/adp-connection.gemspec +39 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/democlient/Gemfile +16 -0
- data/democlient/LICENSE +201 -0
- data/democlient/README.md +2 -0
- data/democlient/Rakefile +9 -0
- data/democlient/adp_connection_ruby.rb +215 -0
- data/democlient/config.ru +24 -0
- data/democlient/config/authorizationcode_config.yml +15 -0
- data/democlient/config/certs/apiclient_iat.key +27 -0
- data/democlient/config/certs/apiclient_iat.pem +45 -0
- data/democlient/config/certs/apiclient_iat.pfx +0 -0
- data/democlient/config/clientcredential_config.yml +11 -0
- data/democlient/public/favicon.ico +0 -0
- data/democlient/public/images/.gitkeep +0 -0
- data/democlient/public/images/ADP_logo_tagline.png +0 -0
- data/democlient/public/images/busy.gif +0 -0
- data/democlient/public/images/hazel_icon.png +0 -0
- data/democlient/public/images/hazel_small.png +0 -0
- data/democlient/public/javascripts/.gitkeep +0 -0
- data/democlient/public/stylesheets/.gitkeep +0 -0
- data/democlient/public/stylesheets/main.css +163 -0
- data/democlient/spec/adp_connection_ruby_spec.rb +14 -0
- data/democlient/spec/spec_helper.rb +23 -0
- data/democlient/views/authorization_code.erb +90 -0
- data/democlient/views/client_credentials.erb +76 -0
- data/democlient/views/layout.erb +40 -0
- data/democlient/views/welcome.erb +34 -0
- data/lib/adp/Product/.gitkeep +0 -0
- data/lib/adp/Product/dto/.gitkeep +0 -0
- data/lib/adp/access_token.rb +44 -0
- data/lib/adp/api_connection.rb +153 -0
- data/lib/adp/api_connection_factory.rb +32 -0
- data/lib/adp/authorization_code_configuration.rb +33 -0
- data/lib/adp/authorization_code_connection.rb +97 -0
- data/lib/adp/client_credential_configuration.rb +18 -0
- data/lib/adp/client_credential_connection.rb +9 -0
- data/lib/adp/connection.rb +16 -0
- data/lib/adp/connection/version.rb +5 -0
- data/lib/adp/connection_configuration.rb +30 -0
- data/lib/adp/connection_exception.rb +12 -0
- metadata +154 -0
data/democlient/Rakefile
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'tilt/erb'
|
3
|
+
require 'logger'
|
4
|
+
require 'adp/connection'
|
5
|
+
|
6
|
+
clientcredential_config = YAML.load(ERB.new(File.read('config/clientcredential_config.yml')).result)
|
7
|
+
authorizationcode_config = YAML.load(ERB.new(File.read('config/authorizationcode_config.yml')).result)
|
8
|
+
|
9
|
+
configure do
|
10
|
+
Log = Logger.new(STDOUT);
|
11
|
+
#Logger.new("sinatra.log")
|
12
|
+
Log.level = Logger::DEBUG
|
13
|
+
end
|
14
|
+
|
15
|
+
class AdpConnectionRuby < Sinatra::Base
|
16
|
+
|
17
|
+
enable :sessions
|
18
|
+
set :public_folder => "public", :static => true
|
19
|
+
|
20
|
+
#set :protection, :session => true
|
21
|
+
set :port, 8889
|
22
|
+
|
23
|
+
results = {
|
24
|
+
:message => "Welcome",
|
25
|
+
:auth_type => nil
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
before do
|
30
|
+
|
31
|
+
# request.path_info = '/foo/bar/baz'
|
32
|
+
end
|
33
|
+
|
34
|
+
after do
|
35
|
+
# erb :welcome, :locals => { :view_bag => results }
|
36
|
+
end
|
37
|
+
|
38
|
+
get "/" do
|
39
|
+
results[:message] = nil
|
40
|
+
erb :welcome, :locals => { :view_bag => results }
|
41
|
+
end
|
42
|
+
|
43
|
+
get '/client_credentials' do
|
44
|
+
results[:auth_type] = :client_credentials
|
45
|
+
results[:message] = nil
|
46
|
+
|
47
|
+
erb :client_credentials, :locals => { :view_bag => results }
|
48
|
+
end
|
49
|
+
|
50
|
+
get '/client_credentials/logout' do
|
51
|
+
session["ClientCredential"] = nil
|
52
|
+
results[:message] = nil
|
53
|
+
results[:auth_type] = :client_credentials
|
54
|
+
results[:userinfo] = nil
|
55
|
+
|
56
|
+
erb :client_credentials, :locals => { :view_bag => results }
|
57
|
+
end
|
58
|
+
|
59
|
+
get '/client_credentials/login' do
|
60
|
+
results[:auth_type] = :client_credentials
|
61
|
+
results[:message] = nil
|
62
|
+
connection = session["ClientCredential"]
|
63
|
+
results[:userinfo] = nil
|
64
|
+
|
65
|
+
if (connection.nil?)
|
66
|
+
|
67
|
+
# get new connection configuration
|
68
|
+
# YAML config object placed in yaml configuration files
|
69
|
+
config = YAML.load_file('config/clientcredential_config.yml');
|
70
|
+
|
71
|
+
if (!config || config.nil?)
|
72
|
+
results[:message] = "Unable to load configuration settings from file (config/clientcredential_config.yml)"
|
73
|
+
else
|
74
|
+
begin
|
75
|
+
clientcredential_config = Adp::Connection::ClientCredentialConfiguration.new(config);
|
76
|
+
|
77
|
+
connection = Adp::Connection::ApiConnectionFactory::createConnection(clientcredential_config)
|
78
|
+
|
79
|
+
connection.connect();
|
80
|
+
|
81
|
+
if (!connection.is_connected_indicator?)
|
82
|
+
results[:message] = "Error attempting to establish a connection"
|
83
|
+
Log.error "Not connected"
|
84
|
+
else
|
85
|
+
Log.debug("Connected and ready for getting data");
|
86
|
+
session["ClientCredential"] = connection;
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
erb :client_credentials, :locals => { :view_bag => results }
|
92
|
+
end
|
93
|
+
|
94
|
+
get '/authorization_code' do
|
95
|
+
results[:message] = nil
|
96
|
+
results[:auth_type] = :authorization_code
|
97
|
+
erb :authorization_code, :locals => { :view_bag => results}
|
98
|
+
end
|
99
|
+
|
100
|
+
get '/authorization_code/logout' do
|
101
|
+
session["AuthorizationCode"] = nil
|
102
|
+
results[:message] = nil
|
103
|
+
results[:auth_type] = :authorization_code
|
104
|
+
results[:userinfo] = nil
|
105
|
+
|
106
|
+
erb :authorization_code, :locals => { :view_bag => results }
|
107
|
+
end
|
108
|
+
|
109
|
+
get '/authorization_code/login' do
|
110
|
+
connection = session["AuthorizationCode"]
|
111
|
+
results[:message] = nil
|
112
|
+
authorizationurl = nil
|
113
|
+
results[:userinfo] = nil
|
114
|
+
|
115
|
+
if (connection.nil?)
|
116
|
+
|
117
|
+
# get new connection configuration
|
118
|
+
# YAML config object placed in yaml configuration files
|
119
|
+
config = YAML.load_file('config/authorizationcode_config.yml');
|
120
|
+
|
121
|
+
if (config.nil? || !config) then
|
122
|
+
results[:message] = "Unable to load configuration settings from file (config/authorizationcode_config.yml)"
|
123
|
+
else
|
124
|
+
begin
|
125
|
+
authorizationcode_config = Adp::Connection::AuthorizationCodeConfiguration.new(config);
|
126
|
+
|
127
|
+
Log.debug("Configuration from file was #{authorizationcode_config}")
|
128
|
+
connection = Adp::Connection::ApiConnectionFactory::createConnection(authorizationcode_config)
|
129
|
+
|
130
|
+
Log.debug("Connection object was #{connection}")
|
131
|
+
session["AuthorizationCode"] = connection;
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
authorizationurl = connection.get_authorization_url
|
137
|
+
|
138
|
+
Log.debug("Redirecting to authorizationurl #{authorizationurl} from connection #{connection}")
|
139
|
+
|
140
|
+
results[:auth_type] = :authorization_code
|
141
|
+
results[:authorizationurl] = authorizationurl
|
142
|
+
|
143
|
+
redirect authorizationurl unless authorizationurl.nil?
|
144
|
+
|
145
|
+
erb :authorization_code, :locals => { :view_bag => results}
|
146
|
+
end
|
147
|
+
|
148
|
+
get '/callback' do
|
149
|
+
results[:auth_type] = :authorization_code
|
150
|
+
results[:message] = nil
|
151
|
+
|
152
|
+
if !params[:error].nil?
|
153
|
+
results[:message] = "Callback Error: #{params[:error]}"
|
154
|
+
else
|
155
|
+
if params[:code].nil?
|
156
|
+
results[:message] = "Callback Error: Unauthorized"
|
157
|
+
else
|
158
|
+
connection = session["AuthorizationCode"]
|
159
|
+
unless connection.nil?
|
160
|
+
connection.connection_configuration.authorizationCode = params[:code]
|
161
|
+
Log.debug("Got authorization code #{connection.connection_configuration.authorizationCode}")
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
Log.debug("Back to callback with #{params[:code]}")
|
166
|
+
erb :authorization_code, :locals => { :view_bag => results}
|
167
|
+
end
|
168
|
+
|
169
|
+
get '/authorization_code/get_token' do
|
170
|
+
results[:auth_type] = :authorization_code
|
171
|
+
results[:message] = nil
|
172
|
+
results[:userinfo] = nil
|
173
|
+
connection = session["AuthorizationCode"]
|
174
|
+
|
175
|
+
begin
|
176
|
+
unless connection.nil? || connection.connection_configuration.authorizationCode.nil?
|
177
|
+
connection.connect()
|
178
|
+
session["AuthorizationCode"] = connection
|
179
|
+
end
|
180
|
+
rescue Adp::Connection::ConnectionException
|
181
|
+
e = env['sinatra.error']
|
182
|
+
results[:message] = "Connection error: The requested token could not be retrieved"
|
183
|
+
end
|
184
|
+
|
185
|
+
erb :authorization_code, :locals => { :view_bag => results}
|
186
|
+
end
|
187
|
+
|
188
|
+
get '/authorization_code/get_userinfo' do
|
189
|
+
results[:auth_type] = :authorization_code
|
190
|
+
results[:message] = nil
|
191
|
+
connection = session["AuthorizationCode"]
|
192
|
+
|
193
|
+
begin
|
194
|
+
Log.debug("Do we have a connection object? #{connection}")
|
195
|
+
unless connection.nil? || connection.connection_configuration.authorizationCode.nil?
|
196
|
+
Log.debug("Check if we are connected: #{connection.access_token}")
|
197
|
+
if (connection.is_connected_indicator?)
|
198
|
+
Log.debug("Getting helper object")
|
199
|
+
helper = Adp::Connection::UserInfoHelper.new(connection)
|
200
|
+
Log.debug("getting userinfo using helper object")
|
201
|
+
json_data = helper.get_user_info()
|
202
|
+
results[:userinfo] = Adp::Connection::UserInfo.new(json_data)
|
203
|
+
|
204
|
+
Log.debug("Got user info #{json_data}")
|
205
|
+
end
|
206
|
+
end
|
207
|
+
Log.debug("Done getting userinfo #{results[:userinfo]}")
|
208
|
+
rescue Adp::Connection::ConnectionException
|
209
|
+
e = env['sinatra.error']
|
210
|
+
results[:message] = "Connection error: #{e}"
|
211
|
+
end
|
212
|
+
|
213
|
+
erb :authorization_code, :locals => { :view_bag => results}
|
214
|
+
end
|
215
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Load path and gems/bundler
|
2
|
+
$LOAD_PATH << File.expand_path(File.dirname(__FILE__))
|
3
|
+
$LOAD_PATH << File.expand_path(File.dirname(__FILE__))+'../pkg'
|
4
|
+
|
5
|
+
require "bundler"
|
6
|
+
Bundler.require
|
7
|
+
|
8
|
+
# Local config
|
9
|
+
require "find"
|
10
|
+
|
11
|
+
# %w{config/initializers lib}.each do |load_path|
|
12
|
+
# Find.find(load_path) { |f|
|
13
|
+
# require f unless f.match(/\/\..+$/) || File.directory?(f)
|
14
|
+
# }
|
15
|
+
# end
|
16
|
+
|
17
|
+
|
18
|
+
use Rack::Session::Pool
|
19
|
+
set :protection, :session => true
|
20
|
+
|
21
|
+
# Load app
|
22
|
+
require "adp_connection_ruby"
|
23
|
+
#run AdpConnectionRuby
|
24
|
+
AdpConnectionRuby.run!
|
@@ -0,0 +1,15 @@
|
|
1
|
+
clientID: ec762f06-7410-4f6d-aa82-969902c1836a
|
2
|
+
clientSecret: 6daf2cd7-4604-46c0-ab43-a645a6571d34
|
3
|
+
sslCertPath: config/certs/apiclient_iat.pem
|
4
|
+
sslKeyPath: config/certs/apiclient_iat.key
|
5
|
+
sslKeyPass: adpadp10
|
6
|
+
tokenServerURL: https://iat-api.adp.com/auth/oauth/v2/token
|
7
|
+
disconnectURL: https://iat-accounts.adp.com/auth/oauth/v2/logout
|
8
|
+
apiRequestURL: https://iat-api.adp.com
|
9
|
+
baseAuthorizationURL: https://iat-accounts.adp.com/auth/oauth/v2/authorize
|
10
|
+
redirectURL: http://localhost:8889/callback
|
11
|
+
accessScope: hr.workerInformationManagement.workerManagement.workerViewing.worker.read hr.workerInformationManagement.workerManagement.associateManagment.associate.read hr.workerInformationManagement.workerManagement.employeeManagement.employee.read,
|
12
|
+
responseType: code
|
13
|
+
scope: openid
|
14
|
+
defaultexpiration: 3600
|
15
|
+
grantType: authorization_code
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpAIBAAKCAQEA5KnQ/0vmU/PZCs3Cw/chQMjzBELDUC/yOXfPRsXness3PXij
|
3
|
+
vPO/ROnQUJ3GY4A32gT6Cw3TjWOyOhWLN5/0ly9aeUSWM+sDWYYSyKp4XRQEc802
|
4
|
+
WvOh9oVjRptU3ACPqVaEMq3UF7GNc/F1ms+yI0fdcKabCNiL1tLmQ3u0yZpn1bjG
|
5
|
+
Hh0ynqWNf14Mz9hJnXt+SBZc2qIewUH8bYLFJDlC7RHBI62idWXcUW5bSE/9wxE5
|
6
|
+
SrUQZCymA7udIYY+7eaAJQXEYlmhRNS/05D6O+71qiIPFOz01rjmg/Dw6F9ZtusY
|
7
|
+
DSIFI3F1XogxYODwxRtA6e8/Ldg1gkJqozqDwwIDAQABAoIBAErvT7tqPygCAH2m
|
8
|
+
4o3f3fjiIamiy2jq3YFxvu6dindWQ1sUvuv8IRFPYmIY4lvXN/ZtrReUR2DNbCnW
|
9
|
+
x5HKDJjC/u5AyMxo1ucupdc27kzqc28TsB1sPAaSve70loGmeW3wGVCWYKwHFqkJ
|
10
|
+
VxYNvH4NXgc9wg7LEECtSqKQ1rU+EuMb9EkHC16lFj6039MqqeTzwz/3r2k76dZv
|
11
|
+
CqJDPGFwLtEOE256QnOHeXTBrKs6LTmKQAsZ5jTbQb4sjErkI1ZOWGWCdnP+WKZA
|
12
|
+
8pz0SzhzIgKlEsZKkh3Bgt+pUB6uTFYezU5I0KJqFVw65CZH5AI6bZbWRGrc2UDY
|
13
|
+
smiwRwECgYEA+a8MY+uBY1il6gJutsM/UJ7betlabrhwyru4Gf6GLkMVSB3qWjNi
|
14
|
+
OXBgT/w8O3rSH4E+FK9zTN1fZMS4s3rbo6uUhp0aS3MaWbSqEsGqSyGbAu78WBER
|
15
|
+
LTAyTf2kGhbjmHk2C9qTPoGg6YaisdyRwR7w2Tu6z8HlbbwcLyrm7YECgYEA6nKj
|
16
|
+
wsueRbYoZLutzprXfapwqnR67WtaI/gVKmzRn31IQqWFA4ucwFWKUnvNX6VcGyuZ
|
17
|
+
ykxliwq5S0oRxWLQb92vjFL5W/zu9O2uiJ7da5eyBmzSYQuvh2xQcupyjkZgDZ4f
|
18
|
+
zr0EDhmce8uwC6evxKsJHYlf5DvEAYdbV/Qd20MCgYEA4LAGFmT4Ks67f7pwp0dM
|
19
|
+
0uAh4ot2Ne0Ek2waYEoLtdXocN1653EWE1ptUY1LJruAG5nSpAq/V4xfK+9bxyfo
|
20
|
+
P4FIR1tZLkyGifNqmTZuaO308M7fhuDU9DVLD6QQ6OlwJuXtHP21Q6qjg4MFJcm3
|
21
|
+
4HJXiyWVFyEFtZpyQn/5EAECgYBeBtQ+z8MOWlwg6lRuxBMgxzagZk7W4XMpcdmr
|
22
|
+
RjFcMbbFY/TQ0zFuwd/T7OsVLRCfpQDs7W7cMNTXqUEvVM4bz2EUekKf7fU4LgsN
|
23
|
+
qAlNmW1Avmwxl6oyOfKZ5AVFolvrmjtPgucZcJQd4jcctYf87EufmPToaD/YDR1J
|
24
|
+
TRKcWQKBgQCQN7GPScLsLPjB7OL8eyvw+ZQpmtxxX6QrQ73uXCyF4tFa+teSpbkj
|
25
|
+
9r35IGo9Asa8VK7gLvS7NuACgzPz6vO6KRllRVBbGjmS03u8mRYj/c0RhlRarOg1
|
26
|
+
DbuyN75TupfTdOCPa8eG1I71FUOsBsMDQ60S2KGAH0MSI0EheXaBBQ==
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,45 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIH6zCCBdOgAwIBAgIKZr3kwAAAAAAKpjANBgkqhkiG9w0BAQwFADB3MRMwEQYK
|
3
|
+
CZImiZPyLGQBGRYDY29tMRMwEQYKCZImiZPyLGQBGRYDQURQMRIwEAYKCZImiZPy
|
4
|
+
LGQBGRYCQUQxEjAQBgoJkiaJk/IsZAEZFgJFUzEjMCEGA1UEAxMaQURQIEludGVy
|
5
|
+
bmFsIElzc3VpbmcgQ0EgMDEwHhcNMTYwMjE3MTYzNjE5WhcNMTgwMjE2MTYzNjE5
|
6
|
+
WjCBxjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxETAPBgNVBAcT
|
7
|
+
CFJvc2VsYW5kMScwJQYDVQQKEx5BdXRvbWF0aWMgRGF0YSBQcm9jZXNzaW5nLCBJ
|
8
|
+
bmMxGDAWBgNVBAsTD0lubm92YXRpb24gTGFiczEkMCIGA1UEAxMbTGFicyBBUEkg
|
9
|
+
Q2xpZW50IENlcnRpZmljYXRlMSYwJAYJKoZIhvcNAQkBFhd3aWxsaWFtLm55cXVp
|
10
|
+
c3RAYWRwLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSp0P9L
|
11
|
+
5lPz2QrNwsP3IUDI8wRCw1Av8jl3z0bF53rLNz14o7zzv0Tp0FCdxmOAN9oE+gsN
|
12
|
+
041jsjoVizef9JcvWnlEljPrA1mGEsiqeF0UBHPNNlrzofaFY0abVNwAj6lWhDKt
|
13
|
+
1BexjXPxdZrPsiNH3XCmmwjYi9bS5kN7tMmaZ9W4xh4dMp6ljX9eDM/YSZ17fkgW
|
14
|
+
XNqiHsFB/G2CxSQ5Qu0RwSOtonVl3FFuW0hP/cMROUq1EGQspgO7nSGGPu3mgCUF
|
15
|
+
xGJZoUTUv9OQ+jvu9aoiDxTs9Na45oPw8OhfWbbrGA0iBSNxdV6IMWDg8MUbQOnv
|
16
|
+
Py3YNYJCaqM6g8MCAwEAAaOCAycwggMjMB0GA1UdDgQWBBQFzk1EYEhaT60rKMur
|
17
|
+
Sy2a928RADAfBgNVHSMEGDAWgBQqCSRfiwi+a3Yo4qkvugtqSgHyQTCCATMGA1Ud
|
18
|
+
HwSCASowggEmMIIBIqCCAR6gggEahoHSbGRhcDovLy9DTj1BRFAlMjBJbnRlcm5h
|
19
|
+
bCUyMElzc3VpbmclMjBDQSUyMDAxLENOPURDMVBSUEtJU1VCQ0ExLENOPUNEUCxD
|
20
|
+
Tj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1
|
21
|
+
cmF0aW9uLERDPUFELERDPUFEUCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
22
|
+
TGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hkNodHRw
|
23
|
+
Oi8vcGtpLmVzLmFkLmFkcC5jb20vQ0RQL0FEUCUyMEludGVybmFsJTIwSXNzdWlu
|
24
|
+
ZyUyMENBJTIwMDEuY3JsMIIBKQYIKwYBBQUHAQEEggEbMIIBFzCBwwYIKwYBBQUH
|
25
|
+
MAKGgbZsZGFwOi8vL0NOPUFEUCUyMEludGVybmFsJTIwSXNzdWluZyUyMENBJTIw
|
26
|
+
MDEsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2Vz
|
27
|
+
LENOPUNvbmZpZ3VyYXRpb24sREM9QUQsREM9QURQLERDPWNvbT9jQUNlcnRpZmlj
|
28
|
+
YXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTBPBggr
|
29
|
+
BgEFBQcwAoZDaHR0cDovL3BraS5lcy5hZC5hZHAuY29tL0FJQS9BRFAlMjBJbnRl
|
30
|
+
cm5hbCUyMElzc3VpbmclMjBDQSUyMDAxLmNydDAOBgNVHQ8BAf8EBAMCBaAwOwYJ
|
31
|
+
KwYBBAGCNxUHBC4wLAYkKwYBBAGCNxUIh8uaRoWIo3mJnzPt/z2gqRiBfIenqFWE
|
32
|
+
hfd9AgFkAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBsGCSsGAQQBgjcVCgQOMAww
|
33
|
+
CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEMBQADggIBADIiHvrqYlYyuyJlvoupZM5r
|
34
|
+
bbx2miegyE7iQeSZx9Li5bkkJpQ4hZFfKeGWWFE/5Dkv0tRdbpbOt+F7Jild3rH5
|
35
|
+
azZXuhznkeLb//e7dF9w0F7DTmfWA8NASRjNadkWWe9JcyHw+jieVtePE95oCg1b
|
36
|
+
jFYoek1Hy4hBdAKpQZBhEe6VivKrVwiBLMV+Quwxdf4IKK4IdGBtW5eizDpu806p
|
37
|
+
6ZkxF6lTeznRxYa2bikZUs1sF4vlNI4g40+WugUtyR/KMRx6aLAaLyFJ3gqbBwsk
|
38
|
+
8k2g/DgPum36NfXtlAEkQd/rAu2bkct6wuzHdKQq5b3+f1bjO2twVt6n4vlS6hAJ
|
39
|
+
9fdxnTayKOZbFlSKkNl4uCeY4PnE/brnz5CHsArFGW6N5Fxa7Q8FDuRMhLDqi2tw
|
40
|
+
eF6sqrDzf70c0uxtA1l8ScA0iaZ3uEoe/y2TAXxJ4GfWIpdZisVaWaJbfYmEXneQ
|
41
|
+
hDBmwdfNAEsEkCgq5eqMOLDxcXOsSHdLWL8K0Q6LpZOyd/yWSws9wN0mwRoftnSe
|
42
|
+
DNIvLBbhIJGy+XFjQWQBmG19V/Gpo1Z+cSSiZA0qzZlsUqv8j6ZwuuKRZoSmHK/7
|
43
|
+
gsNNU2qrfprQOvrBO4sOHGrRwT6aAnW2ATkh5kPQdun9o2FtxqlXRKGm17Pa+1LT
|
44
|
+
yxZqfRg+TMQYhmzGoICk
|
45
|
+
-----END CERTIFICATE-----
|
Binary file
|
@@ -0,0 +1,11 @@
|
|
1
|
+
clientID: 88a73992-07f2-4714-ab4b-de782acd9c4d
|
2
|
+
clientSecret: a130adb7-aa51-49ac-9d02-0d4036b63541
|
3
|
+
sslCertPath: config/certs/apiclient_iat.pem
|
4
|
+
sslKeyPath: config/certs/apiclient_iat.key
|
5
|
+
sslKeyPass: adpadp10
|
6
|
+
tokenServerURL: https://iat-api.adp.com/auth/oauth/v2/token
|
7
|
+
disconnectURL: https://iat-accounts.adp.com/auth/oauth/v2/logout
|
8
|
+
apiRequestURL: https://iat-api.adp.com
|
9
|
+
responseType: code
|
10
|
+
defaultexpiration: 3600
|
11
|
+
grantType: client_credentials
|
Binary file
|
File without changes
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
@@ -0,0 +1,163 @@
|
|
1
|
+
@media screen {
|
2
|
+
/* --- Reset Styles --- */
|
3
|
+
* {
|
4
|
+
list-style: none;
|
5
|
+
margin: 0;
|
6
|
+
padding: 0;
|
7
|
+
}
|
8
|
+
|
9
|
+
html, body {
|
10
|
+
height: 100%;
|
11
|
+
width: 100%;
|
12
|
+
}
|
13
|
+
|
14
|
+
/* --- Welcome Page Styles --- */
|
15
|
+
body {
|
16
|
+
background: #eee;
|
17
|
+
color: #333;
|
18
|
+
font-family: Sans-Serif;
|
19
|
+
line-height: 18px;
|
20
|
+
}
|
21
|
+
|
22
|
+
.wrapper {
|
23
|
+
background: #fff;
|
24
|
+
-moz-box-shadow: 0 0 10px rgba(0,0,0,.3);
|
25
|
+
-webkit-box-shadow: 0 0 10px rgba(0,0,0,.3);
|
26
|
+
box-shadow: 0 0 10px rgba(0,0,0,.3);
|
27
|
+
margin: 16px auto;
|
28
|
+
max-width: 960px;
|
29
|
+
padding: 2.25%; /* 18px / 800px */
|
30
|
+
width: 85%;
|
31
|
+
}
|
32
|
+
|
33
|
+
h1 {
|
34
|
+
font-size: 36px;
|
35
|
+
line-height: 54px;
|
36
|
+
}
|
37
|
+
|
38
|
+
h2 {
|
39
|
+
border-bottom: 2px solid #ccc;
|
40
|
+
font-size: 24px;
|
41
|
+
line-height: 36px;
|
42
|
+
margin-bottom: 16px;
|
43
|
+
}
|
44
|
+
|
45
|
+
h3 {
|
46
|
+
font-size: 18px;
|
47
|
+
line-height: 36px;
|
48
|
+
}
|
49
|
+
|
50
|
+
p {
|
51
|
+
margin-bottom: 18px;
|
52
|
+
}
|
53
|
+
|
54
|
+
.main {
|
55
|
+
overflow: hidden;
|
56
|
+
}
|
57
|
+
|
58
|
+
.content {
|
59
|
+
float: left;
|
60
|
+
width: 54%; /* 480px / 800px */
|
61
|
+
}
|
62
|
+
|
63
|
+
.sidebar_logo {
|
64
|
+
float: right;
|
65
|
+
}
|
66
|
+
|
67
|
+
.sidebar {
|
68
|
+
background: #eee;
|
69
|
+
border: 1px solid #ccc;
|
70
|
+
float: right;
|
71
|
+
padding: 2.08333333333%; /* 5px / 240px */
|
72
|
+
width: 390px; /* 240px / 800px */
|
73
|
+
min-height: 170px;
|
74
|
+
height: 240px;
|
75
|
+
position:relative;
|
76
|
+
}
|
77
|
+
|
78
|
+
.sidebar ul {
|
79
|
+
font-size: 14px;
|
80
|
+
}
|
81
|
+
|
82
|
+
.results_footer {
|
83
|
+
background-color: #ccc;
|
84
|
+
width:95%;
|
85
|
+
height:65px;
|
86
|
+
bottom: 0px;
|
87
|
+
left: 10px;
|
88
|
+
position: absolute;
|
89
|
+
}
|
90
|
+
|
91
|
+
.branding {
|
92
|
+
clear: both;
|
93
|
+
}
|
94
|
+
|
95
|
+
footer.branding {
|
96
|
+
border-top: 2px solid #ccc;
|
97
|
+
margin-top: 20px;
|
98
|
+
padding-top: 20px;
|
99
|
+
}
|
100
|
+
|
101
|
+
table.success {
|
102
|
+
max-width:300px;
|
103
|
+
}
|
104
|
+
table.success th {
|
105
|
+
text-align: left;
|
106
|
+
}
|
107
|
+
table.success td {
|
108
|
+
text-align: left;
|
109
|
+
width: 200px;
|
110
|
+
}
|
111
|
+
.truncate {
|
112
|
+
width: 250px;
|
113
|
+
white-space: nowrap;
|
114
|
+
overflow: hidden;
|
115
|
+
text-overflow: ellipsis;
|
116
|
+
}
|
117
|
+
|
118
|
+
.content code {
|
119
|
+
font-family: Monaco, Monospace;
|
120
|
+
display: block;
|
121
|
+
padding: 1em;
|
122
|
+
margin-left: 25px;
|
123
|
+
background: #2f1f1e;
|
124
|
+
font-size: 0.1em;
|
125
|
+
font-weight: bold;
|
126
|
+
color: #CEC8AA;
|
127
|
+
-webkit-border-radius: 12px;
|
128
|
+
-moz-border-radius: 12px;
|
129
|
+
border-radius: 12px;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
|
133
|
+
@media screen and (max-width: 600px) {
|
134
|
+
.wrapper {
|
135
|
+
-moz-box-shadow: none;
|
136
|
+
-webkit-box-shadow: none;
|
137
|
+
box-shadow: none;
|
138
|
+
width: auto;
|
139
|
+
}
|
140
|
+
|
141
|
+
.content, .sidebar {
|
142
|
+
float: none;
|
143
|
+
width: 100%;
|
144
|
+
}
|
145
|
+
|
146
|
+
.sidebar {
|
147
|
+
background: transparent;
|
148
|
+
border: none;
|
149
|
+
border-top: 2px solid #ccc;
|
150
|
+
padding: 0;
|
151
|
+
}
|
152
|
+
|
153
|
+
h1 {
|
154
|
+
font-size: 24px;
|
155
|
+
line-height: 36px;
|
156
|
+
}
|
157
|
+
|
158
|
+
h2 {
|
159
|
+
font-size: 18px;
|
160
|
+
line-height: 24px;
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|