dae6fd179761cc8029e3b92896c469cea7e78669
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / idp / profile / ProfileRequestDispatcher.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 package edu.internet2.middleware.shibboleth.idp.profile;
17
18 import java.util.Map;
19
20 import javax.servlet.ServletException;
21 import javax.servlet.http.HttpServletRequest;
22 import javax.servlet.http.HttpServletResponse;
23
24 import org.springframework.web.servlet.HttpServletBean;
25
26 import edu.internet2.middleware.shibboleth.common.profile.ProfileHandler;
27
28 /**
29  * Servlet responsible for dispatching incoming requests to the appropriate {@link ProfileHandler}.
30  */
31 public class ProfileRequestDispatcher extends HttpServletBean {
32
33     /** Serial version UID. */
34     private static final long serialVersionUID = -8899576775507240060L;
35
36     /** Registered profile handlers. */
37     private Map<String, ProfileHandler> profileHandlers;
38     
39     /**
40      * Gets the profile handlers currently registered.
41      * 
42      * @return profile handlers currently registered
43      */
44     public Map<String, ProfileHandler> getProfileHandlers(){
45         return profileHandlers;
46     }
47     
48     /**
49      * Sets all the profile handlers to use.
50      * 
51      * @param handlers the profile handlers to use
52      */
53     public void setProfileHandlers(Map<String, ProfileHandler> handlers){
54         profileHandlers = handlers;
55     }
56     
57     /** {@inheritDoc} */
58     public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException{
59         String path = request.getPathInfo();
60         ProfileHandler handler = profileHandlers.get(path);
61         
62         if(handler != null){
63             handler.processRequest(request, response);
64         }
65         
66         // TODO handle case where there is no registered profile
67     }
68 }