1
|
##
|
2
|
## Velocity Template for DisplayUsernamePasswordPage view-state
|
3
|
##
|
4
|
## Velocity context will contain the following properties
|
5
|
## flowExecutionUrl - the form action location
|
6
|
## flowRequestContext - the Spring Web Flow RequestContext
|
7
|
## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl)
|
8
|
## profileRequestContext - root of context tree
|
9
|
## authenticationContext - context with authentication request information
|
10
|
## authenticationErrorContext - context with login error state
|
11
|
## authenticationWarningContext - context with login warning state
|
12
|
## ldapResponseContext - context with LDAP state (if using native LDAP)
|
13
|
## rpUIContext - the context with SP UI information from the metadata
|
14
|
## extendedAuthenticationFlows - collection of "extended" AuthenticationFlowDescriptor objects
|
15
|
## passwordPrincipals - contents of the shibboleth.authn.Password.PrincipalOverride bean
|
16
|
## encoder - HTMLEncoder class
|
17
|
## request - HttpServletRequest
|
18
|
## response - HttpServletResponse
|
19
|
## environment - Spring Environment object for property resolution
|
20
|
## custom - arbitrary object injected by deployer
|
21
|
##
|
22
|
#set ($rpContext = $profileRequestContext.getSubcontext('net.shibboleth.idp.profile.context.RelyingPartyContext'))
|
23
|
#set ($username = $authenticationContext.getSubcontext('net.shibboleth.idp.authn.context.UsernamePasswordContext', true).getUsername())
|
24
|
#set ($passwordEnabled = false)
|
25
|
#if (!$passwordPrincipals or $passwordPrincipals.isEmpty() or $authenticationContext.isAcceptable($passwordPrincipals))
|
26
|
#set ($passwordEnabled = true)
|
27
|
#end
|
28
|
##
|
29
|
<!DOCTYPE html>
|
30
|
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
31
|
<head>
|
32
|
<meta charset="utf-8">
|
33
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
34
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
35
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
36
|
<meta name="description" content="OpenAIRE SSO"/>
|
37
|
<link href="$request.getContextPath()/images/favicon.ico" />
|
38
|
<title>#springMessageText("idp.title", "Web Login Service")</title>
|
39
|
## <link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/main.css">
|
40
|
|
41
|
<script src="$request.getContextPath()/js/jquery.js"></script>
|
42
|
<script src="$request.getContextPath()/js/uikit.js"></script>
|
43
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/theme.css">
|
44
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/custom.css">
|
45
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/aai-custom.css">
|
46
|
</head>
|
47
|
|
48
|
<body class="" style="">
|
49
|
<div class="uk-offcanvas-content uk-height-viewport">
|
50
|
<!-- MENU STARTS HERE-->
|
51
|
<div class="tm-header tm-header-transparent" uk-header="">
|
52
|
<div class="uk-container uk-container-expand">
|
53
|
<nav class="uk-navbar" uk-navbar="{"align":"left"}">
|
54
|
<div class="uk-navbar-center">
|
55
|
<div class="uk-logo uk-navbar-item">
|
56
|
<img alt="OpenAIRE" class="uk-responsive-height" src="$request.getContextPath()/images/Logo_Horizontal.png">
|
57
|
</div>
|
58
|
</div>
|
59
|
</nav>
|
60
|
</div>
|
61
|
</div>
|
62
|
<!-- MENU ENDS HERE -->
|
63
|
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
64
|
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
65
|
</div>
|
66
|
</div>
|
67
|
|
68
|
<div class=" uk-section uk-margin-large-top tm-middle custom-main-content" id="tm-main">
|
69
|
<div class="uk-container">
|
70
|
<div uk-grid="" class="uk-grid uk-grid-stack">
|
71
|
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-2@l uk-align-center">
|
72
|
|
73
|
<div class="uk-child-width-1-2@m uk-grid-small uk-grid-match" uk-grid>
|
74
|
<div>
|
75
|
#parse("login-error.vm")
|
76
|
|
77
|
<form action="$flowExecutionUrl" method="post">
|
78
|
|
79
|
#set ($serviceName = $rpUIContext.serviceName)
|
80
|
#if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName))
|
81
|
<p>
|
82
|
#springMessageText("idp.login.loginTo", "Login to") $encoder.encodeForHTML($serviceName)
|
83
|
</p>
|
84
|
#end
|
85
|
|
86
|
#if ($passwordEnabled)
|
87
|
<div class="form-element-wrapper">
|
88
|
<label for="username">#springMessageText("idp.login.username", "Username")</label>
|
89
|
<input class="form-element form-field" id="username" name="j_username" type="text"
|
90
|
value="#if($username)$encoder.encodeForHTML($username)#end">
|
91
|
</div>
|
92
|
|
93
|
<div class="form-element-wrapper">
|
94
|
<label for="password">#springMessageText("idp.login.password", "Password")</label>
|
95
|
<input class="form-element form-field" id="password" name="j_password" type="password" value="">
|
96
|
</div>
|
97
|
|
98
|
<p>
|
99
|
<input type="checkbox" name="donotcache" value="1" id="donotcache">
|
100
|
<label for="donotcache">#springMessageText("idp.login.donotcache", "Don't remember login")</label>
|
101
|
</p>
|
102
|
#end
|
103
|
|
104
|
<p>
|
105
|
<input id="_shib_idp_revokeConsent" type="checkbox" name="_shib_idp_revokeConsent" value="true">
|
106
|
<label for="_shib_idp_revokeConsent">#springMessageText("idp.attribute-release.revoke", "Clear prior granting of permission for release of your information to this service.")</label>
|
107
|
</p>
|
108
|
|
109
|
#if ($passwordEnabled)
|
110
|
<div class="form-element-wrapper">
|
111
|
<button class="uk-button uk-button-primary" type="submit" name="_eventId_proceed"
|
112
|
onClick="this.childNodes[0].nodeValue='#springMessageText("idp.login.pleasewait", "Logging in, please wait...")'"
|
113
|
>#springMessageText("idp.login.login", "Login")</button>
|
114
|
</div>
|
115
|
#end
|
116
|
|
117
|
#foreach ($extFlow in $extendedAuthenticationFlows)
|
118
|
#if ($authenticationContext.isAcceptable($extFlow) and $extFlow.apply(profileRequestContext))
|
119
|
<div class="form-element-wrapper">
|
120
|
<button class="form-element form-button" type="submit" name="_eventId_$extFlow.getId()">
|
121
|
#springMessageText("idp.login.$extFlow.getId().replace('authn/','')", $extFlow.getId().replace('authn/',''))
|
122
|
</button>
|
123
|
</div>
|
124
|
#end
|
125
|
#end
|
126
|
</form>
|
127
|
#*
|
128
|
//
|
129
|
// SP Description & Logo (optional)
|
130
|
// These idpui lines will display added information (if available
|
131
|
// in the metadata) about the Service Provider (SP) that requested
|
132
|
// authentication. These idpui lines are "active" in this example
|
133
|
// (not commented out) - this extra SP info will be displayed.
|
134
|
// Remove or comment out these lines to stop the display of the
|
135
|
// added SP information.
|
136
|
//
|
137
|
*#
|
138
|
#set ($logo = $rpUIContext.getLogo())
|
139
|
#if ($logo)
|
140
|
<p>
|
141
|
<img src= "$encoder.encodeForHTMLAttribute($logo)"
|
142
|
alt="$encoder.encodeForHTMLAttribute($serviceName)" style="float: left;">
|
143
|
#end
|
144
|
#set ($desc = $rpUIContext.getServiceDescription())
|
145
|
#if ($desc)
|
146
|
$encoder.encodeForHTML($desc)
|
147
|
#end
|
148
|
</p>
|
149
|
</div>
|
150
|
|
151
|
|
152
|
<div>
|
153
|
<ul class="list list-help uk-list uk-margin-left">
|
154
|
#if ($passwordEnabled)
|
155
|
<li class="list-help-item"><a href="#springMessageText("idp.url.password.reset", "#")"> #springMessageText("idp.login.forgotPassword", "Forgot your password?")</a></li>
|
156
|
#end
|
157
|
<li class="list-help-item"><a href="#springMessageText("openaire.username.reset", "#")"> #springMessageText("openaire.username.forgot", "Forgot your username?")</a></li>
|
158
|
<li class="list-help-item"><a href="#springMessageText("idp.url.helpdesk", "#")"> #springMessageText("idp.login.needHelp", "Need help?")</a></li>
|
159
|
<li class="list-help-item"><a href="#springMessageText("openaire.delete.url", "#")"> #springMessageText("openaire.delete.msg", "Delete account")</a></li>
|
160
|
</ul>
|
161
|
</div>
|
162
|
</div>
|
163
|
</div>
|
164
|
</div>
|
165
|
</div>
|
166
|
</div>
|
167
|
<!-- FOOTER STARTS HERE-->
|
168
|
<div class="custom-footer">
|
169
|
<div class="uk-section-primary uk-section uk-section-small">
|
170
|
<div class="uk-container">
|
171
|
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
172
|
<div class="uk-width-1-1@m uk-first-column">
|
173
|
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
174
|
<img alt="OpenAIRE" class="el-image" src="$request.getContextPath()/images/Logo_Horizontal_white_small.png">
|
175
|
</div>
|
176
|
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
177
|
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="$request.getContextPath()/images/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
178
|
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
179
|
</div>
|
180
|
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
181
|
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
182
|
</div>
|
183
|
</div>
|
184
|
</div>
|
185
|
</div>
|
186
|
</div>
|
187
|
<!-- FOOTER ENDS HERE-->
|
188
|
</div>
|
189
|
</div>
|
190
|
|
191
|
|
192
|
</body>
|
193
|
</html>
|