Omi*_*mid 9 spring spring-security
我将基于([User < - > Role < - > Right])模型实现自定义授权,并且应该将Rights与控制器和方法名称(例如"controller | method")进行比较.
我使用自定义UserDetails和AuthenticationProvider来调整授权权限(这里),但作为检查源代码和文档,关于如何自定义权限比较我发现有一个过滤器SecurityContextHolderAwareRequestWrapper,它实现了isGranted和isUserInRole来比较权限,而文档说使用AccessDecisionManager选民自定义(据我所知).应该使用哪一个?我有控制器和方法(动作)名称来比较权限吗?
我对Spring的安全性感到困惑.是否有任何其他资源,而不是官方文档,说明它是如何工作的,我的意思是行动和方法的序列以及如何定制它们.
Nil*_*ils 12
有几种方法:
基于角色
可以实现基于角色的安全机制,实现UserDetailsService接口并配置spring security以使用此类.
要了解如何实现这样的项目,请查看以下教程:
简而言之,Spring安全性在幕后执行以下操作:
为了更好地理解这些类的内部工作原理,您可以阅读javadoc:
SPEL
SPEL不是检查权限,而是还允许您检查用户的其他属性.您可以在URL模式中使用这些,但也可以使用@Preauthorize注释方法.这样保护业务层的方式不那么具有侵入性.
基于ACL
基于ACL的模型是在spring security 3.0中引入的,但尚未有详细记录.他们的建议是查看Contacts XML示例,因为这个示例使用了新的acl组件.
最后,本书包含有关如何进一步自定义安全愿望的很好示例.
| 归档时间: |
|
| 查看次数: |
10941 次 |
| 最近记录: |