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>
|
31
|
<head>
|
32
|
<meta charset="utf-8">
|
33
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
34
|
<title>#springMessageText("idp.title", "Web Login Service")</title>
|
35
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/main.css">
|
36
|
#**
|
37
|
<script src="#springMessageText("openaire.js.jquery", "./js/jquery.js")"></script>
|
38
|
<script src="#springMessageText("openaire.js.uikit", "./js/uikit.js")"></script>
|
39
|
<link rel="stylesheet" type="text/css" href="#springMessageText("openaire.css.custom", "./css/custom.css")">
|
40
|
<link rel="stylesheet" type="text/css" href="#springMessageText("openaire.css.theme", "./css/theme.css")">
|
41
|
<link rel="stylesheet" type="text/css" href="#springMessageText("openaire.css.aai-custom", "./css/aai-custom.css")">
|
42
|
*#
|
43
|
<script src="$request.getContextPath()/js/jquery.js")"></script>
|
44
|
<script src="$request.getContextPath()/js/uikit.js")"></script>
|
45
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/custom.css")">
|
46
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/theme.css")">
|
47
|
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/aai-custom.css")">
|
48
|
|
49
|
</head>
|
50
|
<body>
|
51
|
<div class="wrapper">
|
52
|
<div class="container">
|
53
|
<header>
|
54
|
<img src="$request.getContextPath()#springMessage("idp.logo")" alt="#springMessageText("idp.logo.alt-text", "logo")">
|
55
|
</header>
|
56
|
|
57
|
<div class="content">
|
58
|
<div class="column one">
|
59
|
#parse("login-error.vm")
|
60
|
|
61
|
<form action="$flowExecutionUrl" method="post">
|
62
|
|
63
|
#set ($serviceName = $rpUIContext.serviceName)
|
64
|
#if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName))
|
65
|
<legend>
|
66
|
#springMessageText("idp.login.loginTo", "Login to") $encoder.encodeForHTML($serviceName)
|
67
|
</legend>
|
68
|
#end
|
69
|
|
70
|
#if ($passwordEnabled)
|
71
|
<div class="form-element-wrapper">
|
72
|
<label for="username">#springMessageText("idp.login.username", "Username")</label>
|
73
|
<input class="form-element form-field" id="username" name="j_username" type="text"
|
74
|
value="#if($username)$encoder.encodeForHTML($username)#end">
|
75
|
</div>
|
76
|
|
77
|
<div class="form-element-wrapper">
|
78
|
<label for="password">#springMessageText("idp.login.password", "Password")</label>
|
79
|
<input class="form-element form-field" id="password" name="j_password" type="password" value="">
|
80
|
</div>
|
81
|
|
82
|
<div class="form-element-wrapper">
|
83
|
<input type="checkbox" name="donotcache" value="1" id="donotcache">
|
84
|
<label for="donotcache">#springMessageText("idp.login.donotcache", "Don't Remember Login")</label>
|
85
|
</div>
|
86
|
#end
|
87
|
|
88
|
<div class="form-element-wrapper">
|
89
|
<input id="_shib_idp_revokeConsent" type="checkbox" name="_shib_idp_revokeConsent" value="true">
|
90
|
<label for="_shib_idp_revokeConsent">#springMessageText("idp.attribute-release.revoke", "Clear prior granting of permission for release of your information to this service.")</label>
|
91
|
</div>
|
92
|
|
93
|
#if ($passwordEnabled)
|
94
|
<div class="form-element-wrapper">
|
95
|
<button class="form-element form-button" type="submit" name="_eventId_proceed"
|
96
|
onClick="this.childNodes[0].nodeValue='#springMessageText("idp.login.pleasewait", "Logging in, please wait...")'"
|
97
|
>#springMessageText("idp.login.login", "Login")</button>
|
98
|
</div>
|
99
|
#end
|
100
|
|
101
|
#foreach ($extFlow in $extendedAuthenticationFlows)
|
102
|
#if ($authenticationContext.isAcceptable($extFlow) and $extFlow.apply(profileRequestContext))
|
103
|
<div class="form-element-wrapper">
|
104
|
<button class="form-element form-button" type="submit" name="_eventId_$extFlow.getId()">
|
105
|
#springMessageText("idp.login.$extFlow.getId().replace('authn/','')", $extFlow.getId().replace('authn/',''))
|
106
|
</button>
|
107
|
</div>
|
108
|
#end
|
109
|
#end
|
110
|
</form>
|
111
|
|
112
|
#*
|
113
|
//
|
114
|
// SP Description & Logo (optional)
|
115
|
// These idpui lines will display added information (if available
|
116
|
// in the metadata) about the Service Provider (SP) that requested
|
117
|
// authentication. These idpui lines are "active" in this example
|
118
|
// (not commented out) - this extra SP info will be displayed.
|
119
|
// Remove or comment out these lines to stop the display of the
|
120
|
// added SP information.
|
121
|
//
|
122
|
*#
|
123
|
#set ($logo = $rpUIContext.getLogo())
|
124
|
#if ($logo)
|
125
|
<img src= "$encoder.encodeForHTMLAttribute($logo)"
|
126
|
alt="$encoder.encodeForHTMLAttribute($serviceName)">
|
127
|
#end
|
128
|
#set ($desc = $rpUIContext.getServiceDescription())
|
129
|
#if ($desc)
|
130
|
$encoder.encodeForHTML($desc)
|
131
|
#end
|
132
|
|
133
|
</div>
|
134
|
<div class="column two">
|
135
|
<ul class="list list-help">
|
136
|
#if ($passwordEnabled)
|
137
|
<li class="list-help-item"><a href="#springMessageText("idp.url.password.reset", "#")"><span class="item-marker">›</span> #springMessageText("idp.login.forgotPassword", "Forgot your password?")</a></li>
|
138
|
#end
|
139
|
<li class="list-help-item"><a href="#springMessageText("idp.url.helpdesk", "#")"><span class="item-marker">›</span> #springMessageText("idp.login.needHelp", "Need Help?")</a></li>
|
140
|
</ul>
|
141
|
</div>
|
142
|
</div>
|
143
|
</div>
|
144
|
|
145
|
<footer>
|
146
|
<div class="container container-footer">
|
147
|
<p class="footer-text">#springMessageText("idp.footer", "Insert your footer text here.")</p>
|
148
|
</div>
|
149
|
</footer>
|
150
|
</div>
|
151
|
|
152
|
</body>
|
153
|
</html>
|