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 import edu.internet2.middleware.shibboleth.idp.util.HttpServletHelper;
29
30
31
32
33
34
35
36
37
38
39
40 public class UsernamePasswordLoginHandler extends AbstractLoginHandler {
41
42
43 private final Logger log = LoggerFactory.getLogger(UsernamePasswordLoginHandler.class);
44
45
46 private String authenticationServletURL;
47
48
49
50
51
52
53 public UsernamePasswordLoginHandler(String servletURL) {
54 super();
55 setSupportsPassive(false);
56 setSupportsForceAuthentication(true);
57 authenticationServletURL = servletURL;
58 }
59
60
61 public void login(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) {
62
63 try {
64 URLBuilder urlBuilder = HttpServletHelper.getServletContextUrl(httpRequest);
65
66 StringBuilder pathBuilder = new StringBuilder(urlBuilder.getPath());
67 if (!authenticationServletURL.startsWith("/")) {
68 pathBuilder.append("/");
69 }
70 pathBuilder.append(authenticationServletURL);
71 urlBuilder.setPath(pathBuilder.toString());
72
73 log.debug("Redirecting to {}", urlBuilder.buildURL());
74 httpResponse.sendRedirect(urlBuilder.buildURL());
75 return;
76 } catch (IOException ex) {
77 log.error("Unable to redirect to authentication servlet.", ex);
78 }
79
80 }
81 }