1

在使用 Sitemesh 装饰我的视图的 Spring MVC 应用程序中,我想将 Model一个名为sec的安全属性注入到每个类型WebSecurityExpressionRoot中。

通过这种方式,我可以在我所有的视图中调用 hasAnyRole()、hasAuthority()...,以便管理员可以通过底层模板引擎(Thymeleaf BTW)获得额外的东西。

具有覆盖 postHandle(...)的自定义HandlerInterceptorAdapter似乎是 Spring MVC 实现此目的的方式,但似乎我的主 Sitemesh 装饰器有点窃取我的安全属性,因为每当我尝试在某些视图中引用它时它都是空的。

但是只有在我的一个控制器受到影响后呈现的视图,映射的视图mvc:view-controller确实具有sec属性。

我正在考虑将Filtersec写入当前HttpServletRequest以解决此问题,但我可能遗漏了一些东西。

提前致谢!

4

1 回答 1

0

您确定mvc:view-controller视图/路径正在命中拦截器吗?

另外,我不了解 Thymeleaf,但是使用 JSP(例如,JstlView)使 Spring MVC 将模型复制到请求属性中(为了呈现视图)——我认为 Sitemesh 也通过请求属性获取值的事实是,一个后果。

于 2012-06-15T23:13:31.290 回答