2012-03-01 129 views
1

在使用SiteMesh的装饰我的意见的Spring MVC应用程序,我希望注入每Model安全属性称为WebSecurityExpressionRoot类型的Spring MVC的拦截VS的sitemesh

这样我就可以在我所有的视图中调用hasAnyRole(),hasAuthority()...所以管理员将通过底层模板引擎(Thymeleaf)显示额外的东西。

自定义HandlerInterceptorAdapter与一个重写的postHandle(...)似乎是实现这个的Spring MVC的方式,但似乎我的主人SiteMesh的装饰是一种偷了我的安全属性,因为每当我尝试在一些参考的它认为它是空的。

但只有我一个控制器都受到影响后,呈现的意见,mvc:view-controller映射确实有属性的那些 。

我考虑写一个Filter藏匿到当前HttpServletRequest来解决这个问题,但我可能失去了一些东西。

在此先感谢!

回答

0

你确定mvc:view-controller views/path正在击中拦截器吗?

此外,我不知道有关Thymeleaf,但使用JSP(例如,JstlView)将Spring MVC复制模型转换为Request属性(用于呈现视图) - Sitemesh也通过请求获取值属性是我认为的一个结果。