summaryrefslogtreecommitdiff
path: root/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/RequestIdFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/RequestIdFilter.java')
-rw-r--r--BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/RequestIdFilter.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/RequestIdFilter.java b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/RequestIdFilter.java
new file mode 100644
index 00000000..210f482f
--- /dev/null
+++ b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/RequestIdFilter.java
@@ -0,0 +1,58 @@
+package at.gv.egiz.bku.online.webapp;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.slf4j.MDC;
+
+import at.gv.egiz.bku.binding.Id;
+import at.gv.egiz.bku.binding.IdFactory;
+
+/**
+ * Servlet Filter implementation class BindingProcessorFilter
+ */
+public class RequestIdFilter implements Filter {
+
+ /**
+ * @see Filter#destroy()
+ */
+ public void destroy() {
+ }
+
+ /**
+ * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
+ */
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+
+ if (request instanceof HttpServletRequest) {
+ HttpSession session = ((HttpServletRequest) request).getSession();
+ Id id = IdFactory.getInstance().createId(session.getId());
+ MDC.put("id", id.toString());
+ request.setAttribute("id", id);
+ }
+
+ // pass the request along the filter chain
+ try {
+ chain.doFilter(request, response);
+ } finally {
+ MDC.remove("id");
+ }
+
+ }
+
+ /**
+ * @see Filter#init(FilterConfig)
+ */
+ public void init(FilterConfig fConfig) throws ServletException {
+ }
+
+}