多帐户web应用程序中的JavaSpring身份验证、授权和所有权
我对web应用程序和安全性还不熟悉,我有一个基本的问题 设想一个java web应用程序有一个数据库但有多个帐户。让我们考虑一个简单的待办事项列表,其中人们只能在/item/item-id处访问自己的“项目”。例如:多帐户web应用程序中的JavaSpring身份验证、授权和所有权,java,spring,security,spring-mvc,authorization,Java,Spring,Security,Spring Mvc,Authorization,我对web应用程序和安全性还不熟悉,我有一个基本的问题 设想一个java web应用程序有一个数据库但有多个帐户。让我们考虑一个简单的待办事项列表,其中人们只能在/item/item-id处访问自己的“项目”。例如: User1创建项目1和2 User2创建项目3和4 例如,如何防止User2访问/item/1 对我来说,这似乎超出了身份验证(这是谁?)和授权(他/她扮演什么角色?)的范围 我是否应该保留用户项的持久化映射,并在每次返回响应之前进行检查 这个问题是否有Spring(或其他)技
- User1创建项目1和2李>
- User2创建项目3和4李>
/item/1
的资源。允许吗?不,所以拒绝他们进入
我是否应该保留用户项的持久化映射,并在每次返回响应之前进行检查 如何执行授权取决于您。springsecurity提供了一些很好的工具,可以从数据库中执行此操作,同时将该逻辑与应用程序逻辑分离(如果需要的话)
我还想推荐另一个安全框架:。我认为配置比Spring Security更容易一些,我发现它的认证/授权逻辑更简单。 < P>除了Spring Security和Apache Shiro之外,您还需要考虑基于XACML的授权框架,例如SunxAcML、WSO2、公理学(免责声明:我为公理学工作)。 XACML是可扩展的访问控制标记语言。这是细粒度授权的事实标准。与SAML擅长身份联合/SSO一样,XACML帮助您实现授权 XACML为您提供了一个体系结构(见下图)和一种授权语言,您可以使用它来表示特定的授权场景,例如
- 医生可以查看分配给他们的患者的病历
- 护士可以查看属于同一诊所的患者的病历
- 患者可以查看自己的记录以及作为监护人的患者的记录
谢谢!您能给我指一下利用Spring安全性实现与应用程序逻辑分离的授权的任何文档或示例代码吗?不幸的是,网络上有太多无用的东西……或是Shiro的例子,可以满足我的需求。我更喜欢把太多的东西混合在一起,但如果Shiro提供了大量的简化,那就太好了。@Gevorg网上应该有一些Shiro的例子。但他们的文档是最好的起点。了解两个主要组件:和。