通常,您定义一些拦截 URL 模式来配置对具有弹簧安全性的页面的访问
<http use-expressions="true">
<intercept-url pattern="/**/secure/**" access="hasRole('ROLE_SECURE_USER')" />
...
</http>
我们现在有事先不知道 url 的页面。但是我们可以编写一段代码来决定是否应该保护特定页面,即我们可以提供一个服务,如果该页面必须受到保护,则返回true。所以我们想做的是这样的:
<http use-expressions="true">
<intercept decide="@service.mustProtect()" access="hasRole('ROLE_SECURE_USER')" />
...
</http>
Spring如何实现这一点?我们必须编写自定义过滤器吗?你将如何实现这样的过滤器?