annotate gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java @ 8505:b1580e4d342a

(issue1777) Add options to change login redirect and disable login
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 16 Dec 2014 14:16:10 +0100
parents 238fc722f87a
children 5e38e2924c07
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5952
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5952
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.server.filter;
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
11 import org.dive4elements.river.client.server.auth.Authentication;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
12 import org.dive4elements.river.client.server.auth.AuthenticationException;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
13 import org.dive4elements.river.client.server.auth.AuthenticationFactory;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
14 import org.dive4elements.river.client.server.auth.User;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
15 import org.dive4elements.river.client.server.features.Features;
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import java.io.IOException;
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
18 import java.net.InetAddress;
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
19 import java.net.UnknownHostException;
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import java.util.Enumeration;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import javax.servlet.Filter;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import javax.servlet.FilterChain;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24 import javax.servlet.FilterConfig;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 import javax.servlet.ServletContext;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import javax.servlet.ServletException;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 import javax.servlet.ServletRequest;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28 import javax.servlet.ServletResponse;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 import javax.servlet.http.HttpServletRequest;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 import javax.servlet.http.HttpServletResponse;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 import javax.servlet.http.HttpSession;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 import org.apache.log4j.Logger;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 /** ServletFilter used for GGInA authentification and certain authorisation. */
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 public class GGInAFilter implements Filter {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
39 /** Private log. */
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
40 private static Logger log = Logger.getLogger(GGInAFilter.class);
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 private boolean deactivate = false;
8505
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
43 private boolean loginDisabled = false;
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 private String authmethod;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 private String redirecturl;
8505
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
46 private String noAuthRedir;
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 private ServletContext sc;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
49 private static final String LOGIN_JSP = "/login.jsp";
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
50 private static final String LOGIN_SERVLET = "/flys/login";
5952
42b8447fa7ef Treat SAML URL as login URL in GGInAFilter.
Bernhard Herzog <bh@intevation.de>
parents: 5933
diff changeset
51 private static final String SAML_SERVLET = "/flys/saml";
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
52 private static final String FLYS_CSS = "/FLYS.css";
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 /**
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 * Initialize.
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 *
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58 * Read FilterConfig parameter deactivate
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 */
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 @Override
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 public void init(FilterConfig config)
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 throws ServletException
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64 String deactivate = config.getInitParameter("deactivate");
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65 this.sc = config.getServletContext();
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
66 log.debug("GGInAFilter context " + this.sc.getContextPath());
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67 this.authmethod = sc.getInitParameter("authentication");
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 this.redirecturl = sc.getInitParameter("redirect-url");
8505
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
69
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
70 noAuthRedir = sc.getInitParameter("unauth-redirect-url");
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
71 if (noAuthRedir == null) {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
72 noAuthRedir = LOGIN_JSP;
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
73 }
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
74
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
75 String disableLogin = sc.getInitParameter("disable-login");
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
76 if (disableLogin != null && disableLogin.equalsIgnoreCase("true")) {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
77 loginDisabled = true;
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
78 }
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
79
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 if (deactivate != null && deactivate.equalsIgnoreCase("true")) {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 this.deactivate = true;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 /**
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 * Called when filter in chain invoked.
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89 * @param req request to servlet
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 * @param resp response of servlet
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 * @param chain the filter chain
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92 */
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 @Override
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 throws IOException, ServletException
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
96 {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 if (this.deactivate) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
98 log.debug("GGinAFilter is deactivated");
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 chain.doFilter(req, resp);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 return;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103 HttpServletRequest sreq = (HttpServletRequest) req;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 String requesturi = sreq.getRequestURI();
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
106 if (log.isDebugEnabled()) {
4651
83a42e6a562d Added view for selecting ranges in wsts.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4549
diff changeset
107 for (Enumeration e = req.getAttributeNames() ; e.hasMoreElements() ;) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
108 log.debug(e.nextElement());
4651
83a42e6a562d Added view for selecting ranges in wsts.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4549
diff changeset
109 }
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
112 log.debug("Request for: " + requesturi);
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113
4965
8af500d62098 Editing Map print config.
Christian Lins <christian.lins@intevation.de>
parents: 4651
diff changeset
114 // Allow access to localhost
6894
389bf6b7d371 Backed out changeset 60f39ee19473
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6893
diff changeset
115 if (isLocalAddress(req)) {
6978
3bff11208d3d Fix for Browser and server running both on localhost. Previously all requests from localhost where accepted w/o auth. Now they are only accepted when a HTTP header X_NO_GGINA_AUTH=TRUE is send, too. This is ddone when printing maps.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6894
diff changeset
116 String noAuth = sreq.getHeader("X_NO_GGINA_AUTH");
3bff11208d3d Fix for Browser and server running both on localhost. Previously all requests from localhost where accepted w/o auth. Now they are only accepted when a HTTP header X_NO_GGINA_AUTH=TRUE is send, too. This is ddone when printing maps.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6894
diff changeset
117 if (noAuth != null && noAuth.equals("TRUE")) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
118 log.debug("Request to localhost");
6978
3bff11208d3d Fix for Browser and server running both on localhost. Previously all requests from localhost where accepted w/o auth. Now they are only accepted when a HTTP header X_NO_GGINA_AUTH=TRUE is send, too. This is ddone when printing maps.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6894
diff changeset
119 chain.doFilter(req, resp);
3bff11208d3d Fix for Browser and server running both on localhost. Previously all requests from localhost where accepted w/o auth. Now they are only accepted when a HTTP header X_NO_GGINA_AUTH=TRUE is send, too. This is ddone when printing maps.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6894
diff changeset
120 return;
3bff11208d3d Fix for Browser and server running both on localhost. Previously all requests from localhost where accepted w/o auth. Now they are only accepted when a HTTP header X_NO_GGINA_AUTH=TRUE is send, too. This is ddone when printing maps.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6894
diff changeset
121 }
6894
389bf6b7d371 Backed out changeset 60f39ee19473
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6893
diff changeset
122 }
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
123
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124 // Allow access to login pages
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125 String path = this.sc.getContextPath();
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 if (requesturi.equals(path + LOGIN_JSP)
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 || requesturi.equals(path + LOGIN_SERVLET)
5952
42b8447fa7ef Treat SAML URL as login URL in GGInAFilter.
Bernhard Herzog <bh@intevation.de>
parents: 5933
diff changeset
128 || requesturi.equals(path + SAML_SERVLET)
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
129 || requesturi.equals(path + FLYS_CSS)) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
130 log.debug("Request for login " + requesturi);
8505
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
131 if (loginDisabled && requesturi.equals(path + LOGIN_JSP)) {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
132 log.debug("Login disabled. Redirecting.");
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
133 if (noAuthRedir.equals(LOGIN_JSP) || noAuthRedir.equals(path + LOGIN_JSP)) {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
134 handleResponse(resp, false); /* Dont redirect to the same page */
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
135 } else {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
136 handleResponse(resp, true);
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
137 }
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
138 return;
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
139 }
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 chain.doFilter(req, resp);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 return;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
143
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 boolean redirect = false;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146 HttpSession session = sreq.getSession();
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 String uri = path + "/" + this.redirecturl;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 /* Redirect if uri is root or redirecturl */
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151 if (requesturi.equals(uri) || requesturi.equals(path + "/")) {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 redirect = true;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154
4651
83a42e6a562d Added view for selecting ranges in wsts.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4549
diff changeset
155 String queryString = sreq.getQueryString();
83a42e6a562d Added view for selecting ranges in wsts.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4549
diff changeset
156
83a42e6a562d Added view for selecting ranges in wsts.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4549
diff changeset
157 if (queryString != null) {
83a42e6a562d Added view for selecting ranges in wsts.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4549
diff changeset
158 uri += "?" + queryString;
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
159 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 session.setAttribute("requesturi", uri);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 User user = (User)session.getAttribute("user");
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163 if (user == null) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
164 log.debug("No user in session: " + requesturi);
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 this.handleResponse(resp, redirect);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 return;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 if (user.hasExpired()) {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169 // try to re-authenticate the user
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
170 log.debug("User ticket has expired: " + requesturi);
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171 String encoding = sreq.getCharacterEncoding();
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 try {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 Authentication auth = this.auth(user, encoding);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 if (auth == null || !auth.isSuccess()) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
175 log.debug("Re-athentication not successful");
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176 this.handleResponse(resp, redirect);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179 catch(AuthenticationException e) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
180 log.error("Failure during re-authentication", e);
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181 this.handleResponse(resp, redirect);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182 return;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
183 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 chain.doFilter(req, resp);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 return;
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
188 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 private void redirect(ServletResponse resp) throws IOException {
8505
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
191 if (noAuthRedir.startsWith("http")) {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
192 log.debug("Redirect to external page: " + noAuthRedir);
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
193 ((HttpServletResponse) resp).sendRedirect(noAuthRedir);
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
194 } else {
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
195 log.debug("Redirect to: " + noAuthRedir);
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
196 ((HttpServletResponse) resp).sendRedirect(this.sc.getContextPath() +
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
197 noAuthRedir);
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
198
b1580e4d342a (issue1777) Add options to change login redirect and disable login
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8203
diff changeset
199 }
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
201
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
202 private void sendNotAuthenticated(ServletResponse resp) throws IOException {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
203 log.debug("Send not authenticated");
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
204 ((HttpServletResponse)resp).sendError(HttpServletResponse.SC_FORBIDDEN, "User not authenticated");
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
205 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
206
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
207 private void handleResponse(ServletResponse resp, boolean redirect) throws IOException {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
208 if (redirect) {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
209 this.redirect(resp);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
210 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
211 else {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
212 this.sendNotAuthenticated(resp);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
213 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
214 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
215
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
216
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
217 /**
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
218 * Do nothing at destruction.
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
219 */
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
220 @Override
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
221 public void destroy() {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
222 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
223
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
224 private Authentication auth(User user, String encoding)
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
225 throws AuthenticationException, IOException {
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
226 Features features = (Features)sc.getAttribute(Features.CONTEXT_ATTRIBUTE);
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
227 return AuthenticationFactory.getInstance(this.authmethod).auth(
5933
1b939742629e Pass LoginServlet's ServletContext to the Authenticators.
Bernhard Herzog <bh@intevation.de>
parents: 5861
diff changeset
228 user.getName(), user.getPassword(), encoding, features, sc);
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
229 }
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
230
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
231 /**
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
232 * Returns true if the request is from our machine
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
233 * @param req The ServletRequest
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
234 * @return true if the request is from a loopback interface or from one of
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
235 * the interface addresses of the machine
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
236 */
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
237 private boolean isLocalAddress(ServletRequest req) {
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
238 try {
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
239 InetAddress addr = InetAddress.getByName(req.getRemoteAddr());
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
240 return addr.isAnyLocalAddress() || addr.isLoopbackAddress();
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
241 } catch (UnknownHostException e) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6978
diff changeset
242 log.error(e, e);
4549
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
243 return false;
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
244 }
9a2432485371 Allow requests from localhost in GGInA filter
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4436
diff changeset
245 }
4436
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
246 }
9fca4d60fb7c Reintroduce wrongly outbacked changes (rev 4418-4425).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
247 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org