java spring权限_权限管理系统 Spring-authority

本文介绍了一个基于Spring+SpringMVC+Hibernate+Spring-Security+EasyUI+Bootstrap的权限管理系统实现。系统采用细粒度的权限过滤,涵盖了角色-资源-用户-权限的管理设计,包括权限表、资源表、角色表、用户表等核心表结构。同时,文章提到了Spring Security的两种常见权限管理方式,并给出了代码配置示例。
摘要由CSDN通过智能技术生成

是由 spring+springmvc+hibernate+spring-security +easyui +boostrap 写的一个框架集合,目前实现了一个基础的权限管理系统,权限是基于细粒度的过滤,对于初学权限设计的人来说也算是个最简洁的权限实现,基于它来做项目,它只是做了一些绝大部分项目都应该做的一些基础功能。

1参考资料

2.数据库建表

采用基于角色-资源-用户-权限管理设计。

2.1.权限表    sys_authorities

2.2.权限资源表    sys_authorities_resources

2e60d9495c9e8556a2ef0fc5697356e9.png

2.3.菜单表    sys_menus

20a362178fe122e8f2a119bd9b41f171.png

2.4.资源表   sys_resources

2747d05371159d8f88f1eda86a0e7fb9.png

2.4.角色菜单表   sys_role_menu

6c55ed5a2a6637ff4740a673248d9bcf.png

2.5 角色表   sys_roles

75edd0b384fb8782a0a44e4292df9953.png

2.5 角色权限表sys_roles_anthorities

7a80c724f8956f7fbfeb362ace6fad73.png

2.6  用户表   sys_users

2bb992d6f69a184ccee338cc15b764eb.png

2.6  用户角色表sys_users_roles:

c0eebc17aef0c55a277f8c5139093a5d.png

3.梳理资料,整理思路

3.1.Spring Security3.1的2种常见方式

1.  用户信息和权限存储于数据库,而资源和权限的对应采用硬编码配置。

2.  细分角色和权限,并将角色、用户、资源、权限均都存储于数据库中。并且自定义过滤器,代替原来的FilterSecurityInterceptor过滤 器;并分别实现AccessDecisionManager、UserDetailsService和 InvocationSecurityMetadataSourceService,并在配置文件中进行相应配置。

4.代码整理

接下来开始着手代码编写,不管是两种实现方式中的哪种方式,个人感觉都需要把加载用户信息放在一个类里面管理,直观方便,结构清晰,不要用在配置文件直接写sql语句。

4.1.资源和权限对应写在配置文件中

1、     web.xml配置

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

log4jConfigLocation

/WEB-INF/log4j.properties

log4jRefreshInterval

600000

webAppRootKey

webPath

org.springframework.web.util.Log4jConfigListener

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

springSecurityFilterChain

org.springframework.web.filter.DelegatingFilterProxy

springSecurityFilterChain

/*

encodingFilter

/*

org.springframework.web.context.ContextLoaderListener

contextConfigLocation

classpath*:applicationContext.xml

dispatcher

org.springframework.web.servlet.DispatcherServlet

1

dispatcher

/

/WEB-INF/jsp/common/login.jsp

60

Xml代码

2、  application-security.xml文件的配置。application-servlet.xml配置不懂的参考spring MVC搭建全程。

Java代码  收藏代码

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:security="http://www.springframework.org/schema/security"

xmlns:beans="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security.xsd">

default-target-url="/home"

authentication-failure-url="/login"

authentication-success-handler-ref="loginSuccessHandler"

/>

1.系统实现了基于URL的权限管理,页面操作控制到按钮级别,根据权限配置进行显示,并在拦截器再次认证,只有分配权限后才能进行操作

页面效果图:

ed285d09877e9aff62ced39135388d8e.png

4637c60cbd51cb2cfda24fd93a981636.png

源码分享:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值