2011-02-10 124 views
4

我在jsp中有关于以下的等价物。这里也没有显示!Spring Security授权标签始终为假

我第一次进军Spring Security 3.0.5。我已经使用3.0.3没有问题。

<sec:authorize ifNotGranted="ROLE_ACTIVE"> 
    here 
</sec:authorize> 
<sec:authorize ifAnyGranted="ROLE_ACTIVE"> 
    there  
</sec:authorize> 
+0

我应该在任何地方添加任何错误或警告。其余的页面呈现良好。 – 2011-02-10 18:50:29

回答

7

感谢您的见解。我发现这是因为过滤器映射的顺序。春季安全需要在Sitemesh之前。

不知道如果没有我发布这么多看似微不足道的项目,任何人都可以得到。

我知道将来发布web.xml。可能只是更多地关注成为问题的来源。

1

看起来像ifNotGranted和ifAnyGranted不赞成使用访问表达式。尝试类似

<sec:authorize access="hasRole('ROLE_ACTIVE')">here</sec:authorize> 
+0

刚刚尝试过它仍然没有去。很高兴知道他们已被弃用,但我会猜测会使用访问权限。 – 2011-02-10 18:57:28

+0

接下来的问题是,如果您的委托人正确设置(.i.e。具有您认为他们这样做的角色)以及您的代码是否正在评估。如果你查看源文件,你没有 digitaljoel 2011-02-10 20:11:10

+0

permitAll仍然不会呈现内容。我知道他们的角色是正确的,因为它确实保证并允许访问给定角色的@Secured的SpringMVC @RequestMapping。控制器的安全性似乎很好。 – 2011-02-26 19:15:42

1

如果你设置好的过滤器=“无” JSP页面,写上面的代码在同一个JSP那么你的授权代码会始终返回false。

你可以参考这个问题,你的问题可能是一样的我相信。

Spring security login/logout url related issue

如果你的问题是你能不能详细了解您的安全配置不同,那么。