为GitHub量身定制的浏览器插件
力推几款为GitHub量身定制的浏览器插件OctotreeGitHub现有的目录层级形式,在查看来自不同层级文件夹的文件的时候显得似乎不是很方便,体验相当糟糕,只能重复地点进一个文件夹,再进入其中一个文件夹,如此循环. 尤其是在文件繁多的项目之中,文件夹嵌套堪称噩梦,一个个点击太费时间和精力. 而octotree这款插件则可以解决这个痛点,他能够像 IDE 一样提供项目目录,快捷导航,方便浏览 ! https://github.com/ovity/octotree
Awesome Autocomplete for GitHub Awesome Autocomplete for GitHub是一款GitHub智能搜索插件 : 有点类似自动补全功能,实时监听输入的搜索关键字,自动列出相关内容. 正如官方介绍 : 致力于打造 GitHub 上最好的搜索引擎,助你在搜索仓库和用户方面,比以往更快人一步 ! https://github.com/algolia/github-awesome-autocomplete
Isometric ContributionsIsometric Contr ...
一个基础的SpringBoot整合Shiro案例
学习笔记 : 一个基础的SpringBoot整合Shiro案例前些日子写了一个整合Shiro的基本Web案例,然后又进阶地学习了SpringBoot整合Shiro的基本知识,继而今天总结一下 : 写一个基础的SpringBoot整合Shiro案例~ 该案例的代码仓库 : https://github.com/YUbuntu0109/Shiro-learning/tree/master/spring%20boot%20project%20with%20shiro
数据库设计数据库ER图如下所示 :
数据表中用户及其分配的权限信息如下所示 :
账户
密码(MD5加密前)
角色
权限
admin
demo
admin
*
tea
demo
teacher
teaListView:view , stuListView:view , stuListView:add , stuListView:edit
stu
demo
student
stuListView:view
资源权限设计springboot-shiro/src/main/java/pers/huangyuh ...
详解Shiro的缓存机制
学习笔记 : 详解Shiro的缓存机制简介Shiro作为一个开源的权限框架,其组件化的设计思想使得开发者可以根据具体业务场景灵活地实现权限管理方案,权限粒度的控制非常方便,Shiro框架的架构图如下所示 :
从上图我们可以很清晰地看到,CacheManager也是Shiro架构中的主要组件之一,Shiro正是通过CacheManager组件实现权限数据缓存.当权限信息存放在数据库中时,对于每次前端的访问请求都需要进行一次数据库查询. 特别是在大量使用shiro的jsp标签的场景下,对应前端的一个页面访问请求会同时出现很多的权限查询操作,这对于权限信息变化不是很频繁的场景,每次前端页面访问都进行大量的权限数据库查询是非常不经济的! 因此非常有必要对权限数据使用缓存方案~
Shiro权限数据的缓存方式关于shiro权限数据的缓存方式,可以分为以下两类 :
将权限数据缓存到集中式存储中间件中,比如redis或者memcached
将权限数据缓存到本地
如何在Shiro中使用缓存根据Shiro官方的说法,虽然缓存在权限框架中非常重要,但是如果实现一套完整的缓存机制会使得Shiro偏离 ...
SpringBoot中Shiro集成EhCache
学习笔记 : SpringBoot项目中Shiro集成EhCache示例程序摘自 : 一个简单的SpringBoot整合Shiro的权限管理案例
添加依赖Shiro-learning/spring boot project with shiro/springboot-shiro/pom.xml
1234567891011121314<dependencies> <!-- Shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.1</version> </dependency> <!-- Ehcache --> <dependency> <groupId>org.apache.shiro& ...
详解Intellij IDEA中的DEBUG功能
学习笔记 : 详解Intellij IDEA中的DEBUG功能Debug用于追踪代码的执行流程,其主要用途如下 :
若程序运行过程中出现异常,可通过启用Debug模式来分析程序运行过程中各个参数的变化,继而定位到异常发生的位置
通过启用Debug模式来跟踪代码的运行流程,继而去学习一些第三方框架的源码
基本用法&快捷键IDEA版本 : Intellij IDEA 2019.1.3-UItimate Edition
如上debug视图,从上到下依次讲解 :
Show Execution Point (Alt + F10) : 如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行
Step Over (F6) : 步过,一行一行地往下走,如果这一行上有方法,并不会进入
Step Into (F5) : 步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法
Force Step Into (Alt + Shift + F7) : 强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法
Step Out ...
Thymeleaf整合Shiro标签
学习笔记 : Thymeleaf整合Shiro标签详情请参考 : 一个简单的SpringBoot整合Shiro的权限管理案例
引入依赖添加Thymeleaf及其对Shiro扩展的依赖
1234567891011<!-- Thymeleaf --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- Thymeleaf对shiro的扩展 --><dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId> <version>2.0.0< ...
SpringBoot集成Shiro的基本配置
学习笔记 : SpringBoot集成Shiro的基本配置Spring集成Shiro一般通过的 xml 配置,比较繁琐,而Spring Boot集成Shiro相对简单,只需要配置两个类 : ShiroConfiguration类及继承AuthorizingRealm的Realm类,如下所示 :
ShiroConfig : 顾名思义就是对Shiro的一些配置,相对于Spring中的xml配置. 包括 : 包括过滤器(ShiroFilter)、安全事务管理器(SecurityManager)、密码凭证匹配器(CredentialsMatcher)、缓冲管理器(EhCacheManager)、aop注解支持(authorizationAttributeSourceAdvisor)、等等
CustomRealm : 自定义的CustomRealm继承自AuthorizingRealm,重写了父类中的doGetAuthorizationInfo(授权认证)、doGetAuthenticationInfo(登陆认证)这两个方法
基本的配置以下示例代码摘自 : 一个简单的SpringBoot集成 ...
一个基础的Web整合Shiro案例
学习笔记 : 一个基础的Web整合Shiro案例总结前面Shiro的基本学习笔记,继而尝试整合web,来写一个基础的Web整合Shiro案例( Java web ),用户权限划分如下,该案例的代码仓库 : https://github.com/YUbuntu0109/Shiro-learning/tree/master/basic%20web%20project%20with%20shiro
管理员(admin) : 具有操控部门/员工信息管理页的所有权限
用户(yuhui) : 仅具有部门信息的view权限
环境配置
baseWebShiro\pom.xml : Maven依赖
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM ...
Hi Layui ~
学习笔记 : 拥抱前端框架Layuilayui 的出发点很简单 : 满足服务端程序员的需求,因此可以毫不保留地说,layui 并非面向于前端开发者,所以在组织形式上毅然采用了几年前的以浏览器为宿主的类 AMD 模块管理方式. 对比EasyUI,Layui的作者贤心写出了如下评语,一直用EasyUI写小项目前端的我看后内心波涛汹涌,特么太生动了趴ヾ(=・ω・=)o
12Layui : 一个是邻家女孩,尚处芳龄,简而纯EasyUI : 一个是彪悍妇女,昨日黄花,强而丑
官方简介官方简介 : layui(谐音:类UI)是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用. 其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发. layui 首个版本发布于2016年金秋,她区别于那些基于 MVVM 底层的 UI 框架,却并非逆道而行,而是信奉返璞归真之道. 准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切 ...
Shiro的拦截器机制
学习笔记 : Shiro的拦截机制默认拦截器Shiro内置了很多默认的拦截器,比如身份验证、授权等相关的.更多默认拦截器可以参考 org.apache.shiro.web.filter.mgt.DefaultFilter中的枚举拦截器,如下所示 :
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253/** * Enum representing all of the default Shiro Filter instances available to web applications. * Each filter instance is typically accessible * in configuration the {@link #name() name} of the enum constant. * * @since 1.0 */public enum DefaultFilter { an ...