adp-product-userinfo 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +42 -0
- data/Gemfile +4 -0
- data/LICENSE +201 -0
- data/README.md +253 -0
- data/Rakefile +6 -0
- data/adp-product-userinfo.gemspec +41 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/democlient/Gemfile +16 -0
- data/democlient/Gemfile.lock +47 -0
- data/democlient/LICENSE +201 -0
- data/democlient/README.md +2 -0
- data/democlient/Rakefile +9 -0
- data/democlient/adp_userinfo_ruby.rb +216 -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 +225 -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 +128 -0
- data/democlient/views/client_credentials.erb +76 -0
- data/democlient/views/layout.erb +52 -0
- data/democlient/views/welcome.erb +33 -0
- data/lib/adp/product/dto/user_info.rb +30 -0
- data/lib/adp/product/userinfo.rb +11 -0
- data/lib/adp/product/userinfo/helper.rb +40 -0
- data/lib/adp/product/userinfo/version.rb +7 -0
- metadata +162 -0
@@ -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_userinfo_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,225 @@
|
|
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
|
+
background: #0769ad;
|
13
|
+
margin: 0 auto;
|
14
|
+
padding: 0 20px;
|
15
|
+
}
|
16
|
+
|
17
|
+
#container {
|
18
|
+
background: #0769ad;
|
19
|
+
margin: 0 auto;
|
20
|
+
padding: 0 20px;
|
21
|
+
}
|
22
|
+
|
23
|
+
/* --- Welcome Page Styles --- */
|
24
|
+
body {
|
25
|
+
background: #0769ad;
|
26
|
+
color: #333;
|
27
|
+
font-family: Sans-Serif;
|
28
|
+
line-height: 18px;
|
29
|
+
}
|
30
|
+
|
31
|
+
.wrapper {
|
32
|
+
background: #fff;
|
33
|
+
-moz-box-shadow: 0 0 10px rgba(0,0,0,.3);
|
34
|
+
-webkit-box-shadow: 0 0 10px rgba(0,0,0,.3);
|
35
|
+
box-shadow: 0 0 10px rgba(0,0,0,.3);
|
36
|
+
margin: 16px auto;
|
37
|
+
max-width: 960px;
|
38
|
+
padding: 2.25%; /* 18px / 800px */
|
39
|
+
width: 85%;
|
40
|
+
}
|
41
|
+
|
42
|
+
h1 {
|
43
|
+
font-size: 36px;
|
44
|
+
line-height: 54px;
|
45
|
+
}
|
46
|
+
|
47
|
+
h2 {
|
48
|
+
border-bottom: 2px solid #ccc;
|
49
|
+
font-size: 24px;
|
50
|
+
line-height: 36px;
|
51
|
+
margin-bottom: 16px;
|
52
|
+
}
|
53
|
+
|
54
|
+
h3 {
|
55
|
+
font-size: 18px;
|
56
|
+
line-height: 36px;
|
57
|
+
}
|
58
|
+
|
59
|
+
p {
|
60
|
+
margin-bottom: 18px;
|
61
|
+
}
|
62
|
+
|
63
|
+
.main {
|
64
|
+
overflow: hidden;
|
65
|
+
}
|
66
|
+
|
67
|
+
.content {
|
68
|
+
float: left;
|
69
|
+
width: 470px; /* 480px / 800px */
|
70
|
+
}
|
71
|
+
|
72
|
+
.sidebar_logo {
|
73
|
+
float: right;
|
74
|
+
}
|
75
|
+
|
76
|
+
.sidebar {
|
77
|
+
background: #eee;
|
78
|
+
border: 1px solid #ccc;
|
79
|
+
float: right;
|
80
|
+
padding: 2.08333333333%; /* 5px / 240px */
|
81
|
+
width: 390px; /* 240px / 800px */
|
82
|
+
min-height: 170px;
|
83
|
+
height: 240px;
|
84
|
+
position:relative;
|
85
|
+
}
|
86
|
+
|
87
|
+
.sidebar ul {
|
88
|
+
font-size: 14px;
|
89
|
+
}
|
90
|
+
|
91
|
+
.results_footer {
|
92
|
+
background-color: #ccc;
|
93
|
+
width:95%;
|
94
|
+
height:65px;
|
95
|
+
bottom: 0px;
|
96
|
+
left: 10px;
|
97
|
+
position: absolute;
|
98
|
+
}
|
99
|
+
|
100
|
+
.branding {
|
101
|
+
clear: both;
|
102
|
+
}
|
103
|
+
|
104
|
+
footer.branding {
|
105
|
+
border-top: 2px solid #ccc;
|
106
|
+
margin-top: 20px;
|
107
|
+
padding-top: 20px;
|
108
|
+
}
|
109
|
+
|
110
|
+
table.success {
|
111
|
+
max-width:300px;
|
112
|
+
}
|
113
|
+
table.success th {
|
114
|
+
text-align: left;
|
115
|
+
}
|
116
|
+
table.success td {
|
117
|
+
text-align: left;
|
118
|
+
width: 200px;
|
119
|
+
}
|
120
|
+
.truncate {
|
121
|
+
width: 250px;
|
122
|
+
white-space: nowrap;
|
123
|
+
overflow: hidden;
|
124
|
+
text-overflow: ellipsis;
|
125
|
+
}
|
126
|
+
|
127
|
+
.menu a {
|
128
|
+
color: #428bca;
|
129
|
+
text-decoration: none;
|
130
|
+
font-size: 1.3em;
|
131
|
+
width: 200px;
|
132
|
+
height: 32px;
|
133
|
+
display: inline-block;
|
134
|
+
background-color: #ccc;
|
135
|
+
padding: 10px 10px 10px 5px;
|
136
|
+
text-align: center;
|
137
|
+
vertical-align: middle;
|
138
|
+
}
|
139
|
+
|
140
|
+
.menu a:hover {
|
141
|
+
text-decoration: underline;
|
142
|
+
}
|
143
|
+
|
144
|
+
.menu span {
|
145
|
+
text-decoration: none;
|
146
|
+
font-size: 1.3em;
|
147
|
+
width: 200px;
|
148
|
+
height: 32px;
|
149
|
+
display: inline-block;
|
150
|
+
background-color: #ccc;
|
151
|
+
padding: 10px 10px 10px 5px;
|
152
|
+
text-align: center;
|
153
|
+
vertical-align: middle;
|
154
|
+
}
|
155
|
+
|
156
|
+
.content code {
|
157
|
+
font-family: Monaco, Monospace;
|
158
|
+
display: block;
|
159
|
+
padding: 1em;
|
160
|
+
margin-left: 25px;
|
161
|
+
background: #2f1f1e;
|
162
|
+
font-size: 0.1em;
|
163
|
+
font-weight: bold;
|
164
|
+
color: #CEC8AA;
|
165
|
+
-webkit-border-radius: 12px;
|
166
|
+
-moz-border-radius: 12px;
|
167
|
+
border-radius: 12px;
|
168
|
+
}
|
169
|
+
|
170
|
+
.busy_icon {
|
171
|
+
/*
|
172
|
+
width: 24px;
|
173
|
+
height: 24px;
|
174
|
+
*/
|
175
|
+
/* margin-top: -20px; */
|
176
|
+
margin-left: 10px;
|
177
|
+
display: inline-block;
|
178
|
+
background-color: transparent;
|
179
|
+
}
|
180
|
+
.busy_icon img {
|
181
|
+
border-radius: 5px;
|
182
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
|
183
|
+
margin: 5px auto;
|
184
|
+
background: url("../images/busy.gif");
|
185
|
+
vertical-align: middle;
|
186
|
+
}
|
187
|
+
|
188
|
+
.message {
|
189
|
+
background-color: oldlace;
|
190
|
+
padding: 20px;
|
191
|
+
color: green;
|
192
|
+
}
|
193
|
+
}
|
194
|
+
|
195
|
+
@media screen and (max-width: 600px) {
|
196
|
+
.wrapper {
|
197
|
+
-moz-box-shadow: none;
|
198
|
+
-webkit-box-shadow: none;
|
199
|
+
box-shadow: none;
|
200
|
+
width: auto;
|
201
|
+
}
|
202
|
+
|
203
|
+
.content, .sidebar {
|
204
|
+
float: none;
|
205
|
+
width: 100%;
|
206
|
+
}
|
207
|
+
|
208
|
+
.sidebar {
|
209
|
+
background: transparent;
|
210
|
+
border: none;
|
211
|
+
border-top: 2px solid #ccc;
|
212
|
+
padding: 0;
|
213
|
+
}
|
214
|
+
|
215
|
+
h1 {
|
216
|
+
font-size: 24px;
|
217
|
+
line-height: 36px;
|
218
|
+
}
|
219
|
+
|
220
|
+
h2 {
|
221
|
+
font-size: 18px;
|
222
|
+
line-height: 24px;
|
223
|
+
}
|
224
|
+
}
|
225
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative "spec_helper"
|
2
|
+
require_relative "../adp_userinfo_ruby.rb"
|
3
|
+
|
4
|
+
def app
|
5
|
+
AdpConnectionRuby
|
6
|
+
end
|
7
|
+
|
8
|
+
describe AdpConnectionRuby do
|
9
|
+
it "responds with a welcome message" do
|
10
|
+
get '/'
|
11
|
+
|
12
|
+
last_response.body.must_include 'Welcome to the Sinatra Template!'
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
|
5
|
+
Bundler.setup
|
6
|
+
Bundler.require
|
7
|
+
|
8
|
+
ENV["RACK_ENV"] = "test"
|
9
|
+
|
10
|
+
require 'minitest/pride'
|
11
|
+
require 'minitest/autorun'
|
12
|
+
require 'minitest/spec'
|
13
|
+
require 'rack/test'
|
14
|
+
|
15
|
+
|
16
|
+
require "find"
|
17
|
+
%w{./config/initializers ./lib}.each do |load_path|
|
18
|
+
Find.find(load_path) { |f| require f if f.match(/\.rb$/) }
|
19
|
+
end
|
20
|
+
|
21
|
+
class MiniTest::Spec
|
22
|
+
include Rack::Test::Methods
|
23
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
<div class="menu">
|
2
|
+
<p>
|
3
|
+
<strong>Authorization </strong><br/>
|
4
|
+
<a href="/client_credentials" >Client Credential</a>
|
5
|
+
<span href="authorization_code" >Authentication Code</span>
|
6
|
+
</p>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="content">
|
10
|
+
<ol>
|
11
|
+
<li><b>1.</b>
|
12
|
+
<% if session["AuthorizationCode"].nil? %>
|
13
|
+
<a href="/authorization_code/login">Login</a>
|
14
|
+
<% else %>
|
15
|
+
<a>Loged in</a>
|
16
|
+
<% end %>
|
17
|
+
<br/>
|
18
|
+
<code>
|
19
|
+
<pre>
|
20
|
+
authorizationcode_config = AuthorizationCodeConfiguration.new(config);
|
21
|
+
connection = ADPApiConnectionFactory::createConnection(authorizationcode_config)
|
22
|
+
authorizationurl = connection.get_authorization_url
|
23
|
+
redirect authorizationurl unless authorizationurl.nil?
|
24
|
+
</pre>
|
25
|
+
</code>
|
26
|
+
</li>
|
27
|
+
<br/>
|
28
|
+
<li><b>2.</b>
|
29
|
+
<% if session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil? %>
|
30
|
+
<a>Get Token</a>
|
31
|
+
<% else %>
|
32
|
+
<a href="/authorization_code/get_token">Get Token</a>
|
33
|
+
<% end %>
|
34
|
+
<br/>
|
35
|
+
<code>
|
36
|
+
<pre>
|
37
|
+
#store callback code
|
38
|
+
connection.connection_configuration.authorizationCode = params[:code]
|
39
|
+
#then connect
|
40
|
+
connection.connect()
|
41
|
+
</pre>
|
42
|
+
</code>
|
43
|
+
</li>
|
44
|
+
<% if session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil? || session["AuthorizationCode"].access_token.nil? %>
|
45
|
+
<br/>
|
46
|
+
<% else %>
|
47
|
+
<br/>
|
48
|
+
<li><b>3.</b>
|
49
|
+
<a href="/authorization_code/get_userinfo">Get UserInfo</a>
|
50
|
+
<br/>
|
51
|
+
<code>
|
52
|
+
<pre>
|
53
|
+
#create new helper with a valid, connected connection
|
54
|
+
helper = UserInfoHelper.new(connection)
|
55
|
+
#then get the data and put it in a user defined PORO (plain old Ruby Object)
|
56
|
+
json_data = helper.get_user_info()
|
57
|
+
results[:userinfo] = UserInfo.new(json_data)
|
58
|
+
</pre>
|
59
|
+
</code>
|
60
|
+
</li>
|
61
|
+
<% end %>
|
62
|
+
<!--
|
63
|
+
<li><b>3.</b> <a>Get UserInfo</3.a></li>
|
64
|
+
<br/>
|
65
|
+
-->
|
66
|
+
|
67
|
+
<% if !(session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil?) %>
|
68
|
+
|
69
|
+
<li><b>4.</b>
|
70
|
+
<a href="/authorization_code/logout">Logout</a>
|
71
|
+
<code>
|
72
|
+
|
73
|
+
connection.logout()
|
74
|
+
|
75
|
+
</code>
|
76
|
+
</li>
|
77
|
+
<% end %>
|
78
|
+
|
79
|
+
</ol>
|
80
|
+
|
81
|
+
<p>
|
82
|
+
<% if (!(session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil? || view_bag[:userinfo].nil?)) %>
|
83
|
+
<article style="border: 1px ridge #ccc;">
|
84
|
+
<table class="success">
|
85
|
+
<tr><th>Sub</th> <td class="truncate"><p><%= view_bag[:userinfo].sub %></p></td></tr>
|
86
|
+
<tr><th>Organization OID</th> <td><%= view_bag[:userinfo].organizationOID %></td></tr>
|
87
|
+
<tr><th>Associate ID</th> <td><%= view_bag[:userinfo].associateOID %></td></tr>
|
88
|
+
<tr><th>Given Name</th> <td><%= view_bag[:userinfo].givenName %></td></tr>
|
89
|
+
<tr><th>Family Name</th> <td><%= view_bag[:userinfo].familyName %></td></tr>
|
90
|
+
<tr><th>Name</th> <td><%= view_bag[:userinfo].name %></td></tr>
|
91
|
+
<tr><th>Email</th> <td><%= view_bag[:userinfo].email %></td></tr>
|
92
|
+
</table>
|
93
|
+
<!-- <b>Picture</b> <dd>@Model.picture</dd> -->
|
94
|
+
</article>
|
95
|
+
<% end %>
|
96
|
+
</p>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
<div class="sidebar">
|
100
|
+
<h3>Results...</h3>
|
101
|
+
<ul>
|
102
|
+
<!--
|
103
|
+
<li><b>Ruby:</b> <%= RUBY_VERSION %></li>
|
104
|
+
<li><b>Environment:</b> <%= ENV["RACK_ENV"] %></li>
|
105
|
+
<li><b>Server:</b> <%= @env["SERVER_SOFTWARE"] %></li>
|
106
|
+
<li><b>Port:</b> <%= @env["SERVER_PORT"] %></li>
|
107
|
+
-->
|
108
|
+
<% if session["AuthorizationCode"].nil? %>
|
109
|
+
<li><b>Access token:</b> not logged in</li>
|
110
|
+
<li> </li>
|
111
|
+
<li> </li>
|
112
|
+
<li> </li>
|
113
|
+
<li> </li>
|
114
|
+
<% else %>
|
115
|
+
<li><b>Authorization code:</b> <%= session["AuthorizationCode"].connection_configuration.authorizationCode %> </li>
|
116
|
+
<% unless session["AuthorizationCode"].access_token.nil? %>
|
117
|
+
<li><b>Access token:</b> <%= session["AuthorizationCode"].access_token.token %> </li>
|
118
|
+
<li><b>Token type:</b> <%= session["AuthorizationCode"].access_token.token_type %> </li>
|
119
|
+
<li><b>Expires in:</b> <%= session["AuthorizationCode"].access_token.expires_in %> </li>
|
120
|
+
<li><b>Scope:</b> <%= session["AuthorizationCode"].access_token.scope %> </li>
|
121
|
+
<li><b>Expires on:</b> <%= session["AuthorizationCode"].access_token.expires_on %> </li>
|
122
|
+
<% end %>
|
123
|
+
<% end %>
|
124
|
+
</ul>
|
125
|
+
<div class="results_footer" style="">
|
126
|
+
<a href="https://github.com/adplabs/adp-userinfo-ruby.git"><img class="sidebar_logo" src="/images/ADP_logo_tagline.png" alt="Marketplace/Ruby/Library" /></a>
|
127
|
+
</div>
|
128
|
+
</div>
|