HY,
由于
答案 0 :(得分:1)
通常只需在简单情况下保护URL即可。将方法级别的安全性视为URL级别安全性的补充。例如,可以借助URL级别安全性来简单地检查用户是否具有访问应用程序中某些URL的特定角色。
但是,有些情况下您需要更细粒度的安全性。如果您希望仅允许其创建者访问给定产品(id = 5),则不会仅使用URL级别安全性。但是你可以通过方法级别的安全性实现这一点。
考虑此网址。
https://myapp.com/products/5
您可以检查访问此网址的用户是否具有REQUIRED_ROLE角色。
<security:intercept-url pattern="/products/**" access="hasRole('REQUIRED_ROLE')" />
如果您需要确保用户也是产品创建者,则需要以下内容:
...
@PreAuthorize("#product.creator == authentication.name")
public void doSomething(Product product);
...