应用弹簧安全 - 这种用法正确吗?

Posted

技术标签:

【中文标题】应用弹簧安全 - 这种用法正确吗?【英文标题】:Applying spring security - is this usage correct? 【发布时间】:2016-09-22 22:54:52 【问题描述】:

我正在将 Spring Security 应用于需要执行以下操作的 Web 应用程序:

限制某些角色/权限对某些页面的访问

根据用户访问权限和用户角色限制对某些数据的访问(对于 例如管理员可以查看所有数据,用户只能查看管理员授予用户访问权限的数据)

根据用户拥有的访问权限(读取、 管理等)

所以,我在想:

限制某些角色/权限对某些页面的访问 -> 使用 hasRole 限制对某些数据的访问 -> 直接在查询中过滤 从安全上下文中获取主体 根据用户拥有的访问权限允许对数据执行操作 -> 使用 我自定义 PermissionEvluator 的 hasPermission 方法

现在这是我想出的一个设置,但想知道这是否有意义,以及它是否符合对 spring 安全框架的良好使用,或者我只是把它扭曲了太多。

【问题讨论】:

【参考方案1】:

Spring 安全性提供了所有这些功能,并使这些功能的实现变得简单。是的,您的方法是正确的。您可以添加以下案例。

安全无:允许未经身份验证的用户访问某些 pages.(login, public pages) 认证:允许访问 经过身份验证的用户..(所有注册用户的一般访问权限) 基于角色限制:只读、编辑/经理、基于 permissionEvaluator 对用户有权访问的数据

您还可以使用 Spring Security 来保护您的 Web 应用程序免受恶意用户的攻击,这些功能包括 - CSRF 保护(默认启用) - XSS 保护 更多细节请阅读:spring security manual

【讨论】:

以上是关于应用弹簧安全 - 这种用法正确吗?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA线程安全之synchronized关键字的正确用法

spring的用法和短语例句

NSTimer 的正确用法你真的知道吗?

NSTimer 的正确用法你真的知道吗?

XML 命名空间的这种用法是不是正确?

Java 13都发布了,线程池的正确用法你知道吗?