在Spring Security中,您可以在一个地方定义要授权的端点,例如
http.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/admin/**").access("hasRole('ADMIN')")
.antMatchers("/**").denyAll();
在.NET中,我可以通过添加带有RequireAuthenticatedUser的AuthorizationPolicy来创建默认的拒绝策略:
services.AddControllersWithViews(o =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
o.Filters.Add(new AuthorizeFilter(policy));
o.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().AddRequirements(new endpoint))
});
是否有一种方法可以像在Spring Security中那样以类似于.NET的方式来定义我不希望授权的路径?
如果需要禁用特定URL的授权,例如登录页面,则可以在相应的操作上添加[AllowAnonymous]
属性。
[Authorize]
public class AccountController : Controller
{
[AllowAnonymous]
public ActionResult Login()
{
}
public ActionResult Logout()
{
}
}
看这个reference。