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 public class RemoteUserLoginHandler extends AbstractLoginHandler {
32
33
34 private final Logger log = LoggerFactory.getLogger(RemoteUserLoginHandler.class);
35
36
37 private String servletURL;
38
39
40
41
42
43
44 public void setServletURL(String url) {
45 servletURL = url;
46 }
47
48
49
50
51
52
53 public String getServletURL() {
54 return servletURL;
55 }
56
57
58 public void login(HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
59
60
61 try {
62 StringBuilder pathBuilder = new StringBuilder();
63 pathBuilder.append(httpRequest.getContextPath());
64 if (!servletURL.startsWith("/")) {
65 pathBuilder.append("/");
66 }
67 pathBuilder.append(servletURL);
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 remote user authentication servlet.", ex);
80 }
81 }
82 }