1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.internet2.middleware.shibboleth.idp.authn.provider;
18
19 import java.io.IOException;
20
21 import javax.servlet.http.HttpServletRequest;
22 import javax.servlet.http.HttpServletResponse;
23
24 import org.opensaml.util.URLBuilder;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
27
28
29
30
31
32
33
34
35
36
37
38 public class UsernamePasswordLoginHandler extends AbstractLoginHandler {
39
40
41 private final Logger log = LoggerFactory.getLogger(UsernamePasswordLoginHandler.class);
42
43
44 private String authenticationServletURL;
45
46
47
48
49
50
51 public UsernamePasswordLoginHandler(String servletURL) {
52 super();
53 setSupportsPassive(false);
54 setSupportsForceAuthentication(true);
55 authenticationServletURL = servletURL;
56 }
57
58
59 public void login(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) {
60
61 try {
62 StringBuilder pathBuilder = new StringBuilder();
63 pathBuilder.append(httpRequest.getContextPath());
64 if (!authenticationServletURL.startsWith("/")) {
65 pathBuilder.append("/");
66 }
67 pathBuilder.append(authenticationServletURL);
68
69 URLBuilder urlBuilder = new URLBuilder();
70 urlBuilder.setScheme(httpRequest.getScheme());
71 urlBuilder.setHost(httpRequest.getServerName());
72 urlBuilder.setPort(httpRequest.getServerPort());
73 urlBuilder.setPath(pathBuilder.toString());
74
75 log.debug("Redirecting to {}", urlBuilder.buildURL());
76 httpResponse.sendRedirect(urlBuilder.buildURL());
77 return;
78 } catch (IOException ex) {
79 log.error("Unable to redirect to authentication servlet.", ex);
80 }
81
82 }
83 }