authnScriptExample.groovy revision 267f3657df2e592dbc1397077658ca7426f0da74
f5e43c6208179131e179f075248880a8cae1e111cmaederSTART_TIME = 9 // 9am
b8cd2804f426fd97148615fe31c1f47afac7a683Christian MaederEND_TIME = 17 // 5pm
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens Elkner
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maederlogger.message("Starting authentication groovy script")
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maederlogger.message("User: " + username)
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder// Log out current cookies in the request
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maederif (logger.messageEnabled()) {
89d54db47b05c699454d4e057ce360cbed8fc3b5cmaeder cookies = requestData.getHeaders('Cookie')
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder for (cookie in cookies) {
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder logger.message('Cookie: ' + cookie)
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder }
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder}
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maederif (username != null) {
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder // Make REST call to the users endpoint if username is set.
89d54db47b05c699454d4e057ce360cbed8fc3b5cmaeder httpClientRequest.setUri("http://openam.example.com:8080/openam/json/users/" + username)
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder httpClientRequest.setMethod("GET")
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder response = httpClient.perform(httpClientRequest)
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder // Log out response from users REST call
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder logger.message("User REST Call. Status: " + response.getStatusCode() + ", Body: " + response.getEntity())
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder}
f5e43c6208179131e179f075248880a8cae1e111cmaeder
f5e43c6208179131e179f075248880a8cae1e111cmaedernow = new Date()
f5e43c6208179131e179f075248880a8cae1e111cmaederlogger.message("Current time: " + now.getHours())
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maederif (now.getHours() < START_TIME || now.getHours() > END_TIME) {
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder logger.error("Login forbidden outside work hours!")
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder authState = FAILED
b0268e45716f3a619c175132d7f1600f2bbc80ceChristian Maeder} else {
b0268e45716f3a619c175132d7f1600f2bbc80ceChristian Maeder logger.message("Authentication allowed!")
b0268e45716f3a619c175132d7f1600f2bbc80ceChristian Maeder authState = SUCCESS
b8cd2804f426fd97148615fe31c1f47afac7a683Christian Maeder}