b2631d1f35b2a1a8f525b32f7e9ba1ae383e432f
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / idp / authn / provider / RemoteUserAuthenticationHandler.java
1 /*
2  * Copyright [2006] [University Corporation for Advanced Internet Development, Inc.]
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package edu.internet2.middleware.shibboleth.idp.authn.provider;
18
19 import java.io.IOException;
20
21 import javax.servlet.RequestDispatcher;
22 import javax.servlet.ServletException;
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25
26 import org.apache.log4j.Logger;
27
28 /**
29  * Authentication Handler that redirects to servlet protected by a Web Single-Sign-On system.
30  */
31 public class RemoteUserAuthenticationHandler extends AbstractAuthenticationHandler {
32
33     /** Class logger. */
34     private final Logger log = Logger.getLogger(RemoteUserAuthenticationHandler.class);
35
36     /** The URL of the SSO-protected servlet. */
37     private String servletURL;
38
39     /**
40      * Set the SSO-protected servlet's URL.
41      * 
42      * @param url The URL of the SSO-protected servlet.
43      */
44     public void setServletURL(String url) {
45         servletURL = url;
46     }
47
48     /**
49      * Get the URL of the SSO-protected servlet.
50      * 
51      * @return The URL of the SSO-protected servlet.
52      */
53     public String getServletURL() {
54         return servletURL;
55     }
56
57     /** {@inheritDoc} */
58     public void login(HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
59
60         // forward control to the servlet.
61         try {
62             RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(servletURL);
63             dispatcher.forward(httpRequest, httpResponse);
64         } catch (IOException ex) {
65             log.error("RemoteUserAuthenticationHandler: Unable to forward control to SSO servlet.", ex);
66         } catch (ServletException ex) {
67             log.error("RemoteUserAuthenticationHandler: Unable to forward control to SSO servlet.", ex);
68         }
69     }
70 }