View Javadoc
1   /**
2    * Copyright 2007 Björn Voß
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5    * use this file except in compliance with the License. You may obtain a copy of
6    * 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, WITHOUT
12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13   * License for the specific language governing permissions and limitations under
14   * the License.
15   */
16  package net.sf.oxclient.web;
17  
18  import java.io.IOException;
19  
20  import javax.servlet.http.HttpServletRequest;
21  import javax.servlet.http.HttpServletResponse;
22  
23  import org.apache.commons.httpclient.Cookie;
24  
25  import net.sf.oxclient.IUser;
26  import net.sf.oxclient.communication.ICommunicationClient;
27  
28  /**
29   * @author Björn Voß
30   *
31   */
32  public class StaticOXRedirector implements OXRedirector {
33  
34  	private ICommunicationClient client;
35  	private ICookieTransformer cookieTransformer;
36  	private String guiUrl;
37  
38  
39  
40  	public void setCookieTransformer(final ICookieTransformer cookieTransformer) {
41  		this.cookieTransformer = cookieTransformer;
42  	}
43  
44  	public ICommunicationClient getClient() {
45  		return this.client;
46  	}
47  
48  	public void setClient(final ICommunicationClient client) {
49  		this.client = client;
50  	}
51  
52  	public String getGuiUrl() {
53  		return this.guiUrl;
54  	}
55  
56  	public void setGuiUrl(final String guiUrl) {
57  		this.guiUrl = guiUrl;
58  	}
59  
60  	/* (non-Javadoc)
61  	 * @see net.sf.oxclient.web.OXRedirector#redirectToOX(javax.servlet.http.HttpServletResponse, net.sf.oxclient.IUser)
62  	 */
63  	public void redirectToOX(
64  			final HttpServletRequest request,
65  			final HttpServletResponse response,
66  			final IUser user) throws IOException {
67  		Cookie commonsCookie = this.client.getSessionCookie();
68  		if (commonsCookie == null) {
69  			this.client.login(user);
70  			commonsCookie = this.client.getSessionCookie();
71  			response.addCookie(this.cookieTransformer.transform(commonsCookie));
72  		}
73  
74  		response.sendRedirect(this.guiUrl);
75  	}
76  
77  }