0 0

关于springsecurity权限配置的问题10

现在我在项目中使用过以下两种配置方式


第一种.URl拦截式
数据库菜单表 设立一个该菜单Url字段,比如:user_adduser.action,然后可以与一个或多个角色关联,只有拥有其中角色的用户才能访问该Url,当用户登录时获取他的角色集合,这种模式角色就是用户的权限,当用户进行Url访问时,首先会通过该Url去数据库找到这个菜单,然后获取拥有这个菜单访问权限的所有角色,与当前用户所有拥有的角色进行对比,如果有相匹的角色,那么说明当前用户有访问该Url的权限

第二种.Action标注式
数据库菜单表 设立一个该菜单权限标识字段,比如: ADDUSER,然后还是与一个或多个角色关联,然后在Struts Action方法上标注@PreAuthorize("hasRole(' ADDUSER’)”),指明只有拥有ADDUSER权限的角色才能访问这个action方法,当用户登录时获取他的角色集合,然后取出这些角色对应的权限,然后匹配判断是否有访问当前链接的权限


第一种方式相对简便,但是会在数据库暴露所有的url地址
第二种方式稍微繁琐,需要在每个action配置权限和配置权限常量,但是不会暴露url,而且权限可以重用,比如两个action方法公用同一个权限


大家谈谈自己的看法,或者还有其他更好的方式,本人刚出道的小菜鸟,请多多指教

2012年6月18日 10:09

3个答案 按时间排序 按投票排序

0 0

同不欣赏权限设置在code上。 写在database或者xml中挺好的。改起来比较方便。
写在code上真的就悲催了,如果需要改动,痛苦的要死。

2012年7月02日 12:49
0 0

第一种方式比较好,因为角色在系统运行时通常是变动的,角色和访问权限也可能会变动,如果是标注式写死新增角色要改代码的话太不值了。
我不是特别明白你说的菜单表中增加url字段的意思,一个菜单进入后功能只对应一个action吗?并且进入菜单后又有细节的权限怎么办?
我建议直接建url和角色对应的权限表,当然url可以是/user/**的方式来对同一权限内的部分多个URL进行一次性的处理,自己实现accessDecisionManager来处理角色授权投票。

2012年6月18日 14:44
0 0

可以通过配置security.xml来实现访问级别的权限配置规则,页面也可以用security的标签来实现页面控件级别的权限控制!

<http pattern="/uploadSummary.do" security="none" />
<http pattern="/summaryerror.do" security="none" />
<http pattern="/client/*.do" security="none" />
<http pattern="/。。/download.do" security="none" />
<http auto-config="false" realm="omm Realm" access-denied-page="/accessDenied.jsp">
<intercept-url pattern="/logout.do" access="ROLE_ADMIN,ROLE_USER" />
<intercept-url pattern="/system/**" access="ROLE_ADMIN" />
<intercept-url pattern="/**" access="ROLE_ADMIN,ROLE_USER" />

<!-- 为所有用户配置 flag 1:认证失败 2:会话过期 3:访问被拦截 -->
<form-login login-page="/default.go?flag=3"/>
<logout logout-url="/logout.do" logout-success-url="/default.go?flag=4" invalidate-session="true" delete-cookies="SPRING_SECURITY_REMEMBER_ME_COOKIE" />
<remember-me/>
<session-management>
<concurrency-control max-sessions="1" expired-url="/default.go?flag=2" />
</session-management>
<custom-filter before="FORM_LOGIN_FILTER" ref="authenticationProcessingFilter" />
</http>

2012年6月18日 11:30

相关推荐

    springsecurity使用配置详解

    在提供的压缩包`springsecurity配置demo`中,你将找到示例代码和详细说明,这将帮助你更好地理解和实践上述概念。通过学习和实践这些示例,你将能够为自己的Spring应用程序构建强大的安全防护。

    SpringSecurity权限管理

    在"SpringSecurity权限管理开发手册.pdf"和"SpringSecurity权限管理开发手册.pdf.txt"中,你将找到更多关于如何配置和使用SpringSecurity进行权限管理的详细信息,包括配置XML或Java配置、定义访问规则、处理未授权...

    springboot springsecurity动态权限控制

    在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...

    spring security2配置

    在Spring Security的配置中,我们通常会用到这样的数据来设置默认的用户和权限。 接下来,我们来了解一下Spring Security的配置步骤: 1. **依赖注入**:首先,我们需要在项目中引入Spring Security的依赖。 2. *...

    Spring Security in Action

    Spring Security 实践指南 ...* 高度可配置性:Spring Security 的配置项非常灵活,可以根据实际需求进行配置。 Spring Security 是一个功能强大且灵活的安全框架,广泛应用于 Java 应用开发中。

    spring security 项目配置源码

    在这个"Spring Security 项目配置源码"中,我们有机会深入理解这个框架如何在实际项目中配置和使用。下面将详细介绍Spring Security的核心概念、配置过程以及如何在Eclipse环境中运行该项目。 1. **核心概念** - *...

    SpringSecurity 3配置文件

    在本文中,我们将深入探讨Spring Security 3的配置文件,以及如何理解和使用这些配置来增强应用的安全性。 首先,Spring Security的配置通常位于一个或多个XML文件中,这些文件通过`&lt;beans&gt;`标签定义了安全相关的...

    spring security 2 配置说明

    标题与描述均提到了“Spring Security 2 配置说明”,这表明文章旨在阐述Spring Security 2版本的配置细节,尤其是对于那些希望深入了解并正确应用该框架的安全特性开发者们。以下将基于给定的部分内容,深入解析...

    spring security权限管理

    在"spring security权限管理"这个主题中,我们将深入探讨如何利用Spring Security来实现复杂而灵活的权限控制。 首先,`MyUser.java`可能是自定义的用户实体类,它通常会包含用户的基本信息,如用户名、密码、角色...

    spring security实现动态授权

    在传统的权限管理中,权限配置通常硬编码在应用程序中,这使得权限调整变得困难,每次变动都需要重新部署应用。然而,通过动态授权,我们可以将用户、角色和资源信息存储在数据库中,允许在运行时动态配置权限,而...

    Spring Security 权限控制中文API

    这个“Spring Security 权限控制中文API”很可能是对Spring Security框架的中文文档或指南,帮助开发者理解和使用权限控制功能。 Spring Security的核心在于保护资源、进行身份验证(Authentication)和授权...

    SpringSecurity.pdf

    Spring Security的配置灵活,可以通过XML配置文件、Java配置类或者注解来定制安全策略。它还提供了大量的扩展点,允许开发者根据自己的业务需求进行定制和扩展。 Spring Security的学习过程可以分为入门、进阶和...

    Spring Security 资料合集

    - **Java配置**:随着Spring Boot的发展,Spring Security也提供了Java配置方式,更易于理解和维护,通过`@EnableWebSecurity`和`WebSecurityConfigurerAdapter`的子类进行配置。 4. **Remember-Me服务**: - ...

    spring security权限控制

    通过分析"springsecuritydemo4"项目,我们可以学习到如何在实际应用中设置和配置Spring Security,以及如何处理各种权限控制场景。这有助于我们创建一个安全、健壮的Web应用程序。在实践中,不断调试和调整Spring ...

    Spring Security 基于数据库的权限管理配置

    在基于数据库的权限管理配置中,Spring Security 允许我们存储、管理和验证用户的访问权限,这使得权限控制更加灵活和可扩展。下面将详细阐述如何进行Spring Security的数据库权限管理配置。 1. **配置数据源** 在...

    spring security3配置和使用实例+教程

    教程文档`教你使用_SpringSecurity_3.0_52页.pdf`会详细指导你如何一步步配置和使用Spring Security。它应该包含了配置文件的示例、如何集成到Spring应用中、如何创建自定义认证逻辑以及如何进行授权设置等内容。...

    Spring Security权限管理开发手册

    ### Spring Security权限管理开发手册知识点概述 #### 一、序言 - **为什么选择Spring Security:** - **安全性:** 提供了强大的安全性保障,包括认证(Authentication)、授权(Authorization)以及会话管理(Session...

    spring security用户权限项目

    **Spring Security 用户权限项目概述** Spring Security 是一个强大的安全框架,专为 Java 应用程序设计,用于处理身份验证和授权。在这个项目中,它被用来实现用户权限管理,确保只有授权的用户才能访问特定的资源...

    SpringSecurity笔记,编程不良人笔记

    在`SpringSecurity.md`和`SpringSecurity.pdf`文档中,可能包含SpringSecurity配置、自定义用户服务、授权策略等方面的代码示例。`codes`目录可能包含实际运行的项目代码,方便读者实践和理解。 8. **图笔记.draw...

Global site tag (gtag.js) - Google Analytics