Spring Security:允许所有经过完全身份validation的用户的页面查看,除非他们具有特定角色

我正在使用带有Spring Security的Spring 3.0.3。

所以,我对我正在制作的应用程序有相当宽松的限制。 我只想确保一个人可以登录并进行身份validation,以便查看该应用程序。 我不想为这个应用程序的每个潜在用户授予角色(可能是成千上万的)。

所以,使用起来很好:

 

但是现在我希望能够限制人们在需要时使用应用程序,所以我创建了一个名为ROLE_BANNED的角色,希望我能够为那些有问题的人分配角色。

那么,现在我正在尝试这个:

  

这似乎最初起作用,但它无法加载我拒绝的页面。 我认为它限制了对被拒绝页面的访问。 我无法通过控制器加载被拒绝的页面或作为WEB-INF中的jsp加载。

有人可以告诉我如何允许经过身份validation的用户访问我的所有应用并将具有特定角色(ROLE_BANNED)的人员发送到被拒绝的页面吗?

编辑这是我的全部安全:http设置:

            

我已经尝试使用控制器映射被拒绝页面(/被拒绝),jsp页面(/denied.jsp)甚至是一个简单的html页面(/denied.html),但我得到了每个单独的一个404。 发生这种情况时,我在日志文件中看不到任何内容。

我最终做了以下事情:

   

这意味着您必须在两种情况下都登录,但您必须具有BANNED角色才能访问被禁止的页面。

我还添加了一个在每个带有RequestMethod.GET的控制器方法之前运行的方面,它检查用户是否具有BANNED角色,如果是,则将它们重定向到/禁止。

如果有人知道更好的方法,请添加答案。

正如你所说,我认为你只需要让你的“被拒绝”页面不需要任何安全性来访问,所以只需为该特定页面添加一个拦截url……

这个例子是Spring Security 2,但它应该翻译……

  

编辑:

您可能还需要使您的javascript,css,图像等也有类似的安全限制豁免,否则您的页面将不会加载除纯文本以外的任何内容。