diff --git a/src/main/scala/util/TransactionFilter.scala b/src/main/scala/util/TransactionFilter.scala new file mode 100644 index 0000000..499a62f --- /dev/null +++ b/src/main/scala/util/TransactionFilter.scala @@ -0,0 +1,30 @@ +package util + +import javax.servlet._ +import org.slf4j.LoggerFactory +import javax.servlet.http.HttpServletRequest + +/** + * Controls the transaction with the open session in view pattern. + */ +class TransactionFilter extends Filter { + + private val logger = LoggerFactory.getLogger(classOf[TransactionFilter]) + + def init(config: FilterConfig) = {} + + def destroy(): Unit = {} + + def doFilter(req: ServletRequest, res: ServletResponse, chain: FilterChain): Unit = { + if(req.asInstanceOf[HttpServletRequest].getRequestURI().startsWith("/assets/")){ + // assets don't need transaction + chain.doFilter(req, res) + } else { + // TODO begin transaction! + logger.debug("TODO begin transaction") + chain.doFilter(req, res) + logger.debug("TODO end transaction") + } + } + +} \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 9799689..cb33996 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -22,6 +22,16 @@ + TransactionFilter + util.TransactionFilter + + + + TransactionFilter + /* + + + BasicAuthenticationFilter util.BasicAuthenticationFilter