1 |
49495
|
tsampikos.
|
##
|
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>
|