十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可以选择自学也可以选择培训班
创新互联是一家专注于成都网站建设、网站制作与策划设计,岚县网站建设哪家好?创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:岚县等地区。岚县做网站价格咨询:18982081108
自学的话现在网上有很多免费的视频教程,给你推荐一下我经常看的,高淇的Java300集,讲得还不错,比较容易理解,可以到b站搜一下。
报培训班的话,可以节省你大量的时间,并且学的会更扎实,有老师有同学,学习氛围更好,比自学更容易坚持下去。
在学习之前你应该了解Java语言的知识体系。可以帮助你更好的学习
一、JavaSE基础阶段
面向对象编程(基础)
面向对象编程(进阶)
异常机制
Java常用类
数据结构和算法
集合(容器)
IO流
多线程
网络编程
集合提升训练
多线程提升训练
二、数据库阶段
MySQL基础
MySQL 查询语句
数据库对象
JDBC
反射和注解
数据库建模和UML建模
设计模式
三、WEB前端
JavaScript
jQuery
BootStrap
Vue
四、JavaEE阶段 (核心阶段)
HTTP/Tomcat
MVC 架构
Servlet
JSP
EL+JSTL+过滤器+监听器
Ajax和JSON
分页和文件上传/下载
五、JavaEE阶段(高级框架)
Spring 5.2.2
SpringMVC 5.2.2
RBAC
EasyUI 1.7.0
支付/短信验证
六、框架强化
Linux - CentOS 8
Maven
Logback
Quartz
Spring Boot 2.2.2
Shiro
Swagger
Git/GitEE
MyBatis
七、分布式架构
Zookeeper
RPC
Dubbo
Redis
Solr
RabbitMQ
FastDFS
Nginx
Spring Security
Spring Session
MyBatis Generator
Mycat
八、微服务阶段
ElasticSearch
MongoDB
Spring Cloud Netflix Eureka
Spring Cloud Netflix Ribbon
Spring Cloud OpenFeign
Spring Cloud Netflix Hystrix
Spring Cloud Config
Spring Cloud Gateway
Docker
K8S
LCN
祝你成功,程序员的世界欢迎你
ThinkPHP示例之RBAC,一个典型的后台数据管理,包括角色授权、数据管理、节点管理等。首先需要下载核心框架,然后把解压缩文件到web目录下面,导入rbac目录下面的rbac.sql数据库文件,并修改项目配置文件中的数据库连接信息,然后访问:
复制代码
会跳转到
复制代码
如图所示:
系统默认添加了3个角色(不包括超级管理员账号),用不同的账号登录后会有不同的操作权限。首先,我们建议用admin(超级管理员账号,不受权限控制影响)账号登录进行相关的修改设置。登录后,切换到应用中心
禁止的权限规则集
如果权限规则不是一个集合,因为只有与用户或角色关联的权限规则才允许访问,所以用户的权限是一个闭合区域,不想用户拥有某些权限时,只要不进行关联授权即可。如果权限规则使用通配符变成一个集合,那么用户的权限将变成一个开放区域,比如上面的论坛文章列表,假设论坛文章按照“版面/作者/文章标题”作为资源命名,那么将(阅览, 版面/作者/*)授权给某用户时,该用户允许阅览该版面下该作者的所有文章,假设现在有一种管理需求要求某用户可以阅览某版面下某作者除某几种文章标题外的所有文章,这样单纯的允许授权难以实现这个管理需求。
法律有许可和禁止的区别,那么权限管理也应该有许可和禁止两种授权,上面的不允许访问某几种文章标题的文章就是一种禁止规则,如果将这种禁止规则合并到允许规则中,就可以解决上面的问题。这就相当于画了一个大圈表示可以访问的区域,但是大圈里面的某些小圈是不可以访问的区域。这又带来一个问题,假设允许的和禁止的规则重叠,以谁为准?这个没有一个准则,不过基于安全性考虑,应该采用禁止优先,只要是禁止的集合,就算有允许的集合重叠,也不允许访问。
提高权限验证效率
使用关系数据库存储权限数据时,权限数据表更新和查询的操作频繁度通常小于1:9,也就是这是一个典型的OLAP系统,以查询为主,所以可以采用OLAP的优化策略进行优化,但是大多数优化策略都不具备实时性,如果兼顾实时性和效率要求,可以单独创建一个内存数据库,这个内存数据库只存放用户、资源、操作关联关系,也就是(用户, 操作, 资源)集合,如果用户通过角色关联到权限规则,那么将这些用户到权限规则的间接传递关系转变成直接传递关系保存。这个内存数据库就相当于权限数据的缓存,可以保证很高的查询效率,并且该内存数据库与权限管理保持同步,可以保证实时性。
安装和配置
附件是权限管理和权限验证的实现,也有用户管理的演示,不过用户管理很粗糙,实际使用需要做进一步开发,之所以没有开发相对完善的用户管理,是因为现在已有的系统通常都有完善的用户管理。
下面简单讲解安装配置,只在Tomcat5523+MySQL5037+jre1.5.0_12下测试过。
1. 下载rbac+profile.rar,解压,得到一系列文件,文件用途如下:
profile.admin.src.v1.jar 用户管理源代码
rbac.admin.src.v2.jar 权限管理源代码
rbac.auth.src.v2.jar 权限验证源代码
profile.v1.MySQL5.sql 用户管理用户数据表
profile.war 用户管理WEB系统
rbac.v2.MySQL5.sql 权限管理数据表
rbac.war 权限管理WEB系统
2. 创建数据库profile,使用UTF-8导入profile.v1.MySQL5.sql到profile,使用下面SQL创建用户root/1:
Insert into T_PROFILE(USER_ID, USER_NAME, USER_PASSWORD) values(‘1’, ‘root’, sha1(‘1’));
如果创建过先前SSO单点登陆的用户数据表,可以跳过这步,使用先前的数据表。
3. 创建数据库rbac,使用UTF-8导入rbac.v2.MySQL5.sql到rbac。
4. 拷贝profile.war和rbac.war到Tomcat5523/webapps/,会自动生成profile和rbac目录。
5. 参考配置单点登陆,因为权限管理和用户管理需要依赖单点登陆。
6. 下载相关依赖Java库:
下载cglib最新版本,拷贝asm.jar和cglib-2.1.3.jar到Tomcat/shared/lib。
下载c3p0最新版本,拷贝c3p0-0.9.1.1.jar到Tomcat/shared/lib。
下载mysql-connector最新版本,拷贝mysql-connector-java-5.0.4-bin.jar到Tomcat/shared/lib。
下载dwr最新版本,拷贝dwr2.0.1.jar到Tomcat/shared/lib。
7. 打开profile/ WEB-INF/classes/的rbac_auth.properties、sso_agent.properties、profile_admin.properties。
# 修改为合适配置
# rbac_auth.properties
rbac.auth.db.ds.c3p0.url=jdbc:mysql://localhost/rbac
rbac.auth.db.ds.c3p0.user=root
rbac.auth.db.ds.c3p0.password=1
# sso_agent.properties
sso.passport.login=
sso.passport.logout=
# profile_admin.properties
profile.admin.db.ds.c3p0.url=jdbc:mysql://localhost/profile
profile.admin.db.ds.c3p0.user=root
profile.admin.db.ds.c3p0.password=1
8. 打开rbac/WEB-INF/classes/下的rbac_admin.properties、rbac_auth.properties、sso_agent.properties。
# 修改为合适配置
# rbac_auth.properties
rbac.auth.db.ds.c3p0.url=jdbc:mysql://localhost/rbac
rbac.auth.db.ds.c3p0.user=root
rbac.auth.db.ds.c3p0.password=1
# sso_agent.properties
sso.passport.login=
sso.passport.logout=
# rbac_admin.properties
rbac.admin.profile.explorer=?
rbac.admin.profile.profile=?
rbac.admin.db.rbac.ds.c3p0.url=jdbc:mysql://localhost/rbac
rbac.admin.db.rbac.ds.c3p0.user=root
rbac.admin.db.rbac.ds.c3p0.password=1