_018_Shiro
VeryHotLight
技术在于交流和分享,我的博客可以转载。
另外,我也转载了很多比较好的帖子。
如果作者有异议,请联系删除!
我的一些帖子可能存在错误与缺点,文档写得很烂(写不好),希望大家包容。
希望我的帖子能够帮助需要帮助的人。
展开
-
_001_Shiro_Shiro简介
转自https://www.cnblogs.com/fangpengchengbupter/p/7866623.html,感谢作者的无私分享。 Shiro框架简介Apache Shiro是Java的一个安全框架。对比另一个安全框架Spring Sercurity,它更简单和灵活。Shiro可以帮助我们完成:认证、授权、加密、会话管理、Web集成、缓存等。Apache Shiro特性...转载 2018-12-31 14:10:49 · 159 阅读 · 0 评论 -
_002_Shiro_Shiro的HelloWorld
1 环境搭建 2 Shiro的HelloWorldshiro-root-1.3.2-source-release\shiro-root-1.3.2\samples\quickstart 3 创建工程 4 介绍 // 获取当前的Subject,调用SecurityUtils.getSubject(); Subject currentUser = Sec...转载 2018-12-31 16:53:44 · 117 阅读 · 0 评论 -
_003_Shiro_集成Spring
转自https://www.cnblogs.com/jedjia/p/Shiro-spring.html,感谢作者的无私分享。 shiro应用到项目中,一般都是通过spring来管理。下面就如何把shiro整理到spring中进行了讲解,及给出了配置的步骤:一、pom.xml文件配置 本例子主要是介绍maven管理的web项目进行配置介绍,因此,首先需建立好一个mave...转载 2019-01-10 10:09:06 · 135 阅读 · 0 评论 -
_004_Shiro_工作原理
1 与Web 集成• Shiro 提供了与 Web 集成的支持,其通过一个ShiroFilter 入口来拦截需要安全控制的URL,然后进行相应的控制。• ShiroFilter 类似于如 Strut2/SpringMVC 这种web 框架的前端控制器,是安全控制的入口点,其负责读取配置(如ini 配置文件),然后判断URL是否需要登录/权限等工作。2 ShiroFilter ...转载 2019-01-10 10:22:22 · 99 阅读 · 0 评论 -
_005_Shiro_DelegatingFilterProxy
<!-- Shiro filter is defined in the spring application context: --> <!-- 1 配置Shiro的shiroFilter 2 DelegatingFilterProxy 实际上是Filter 的一个代理对象。 默认情况下,Spring 会到 IOC 容器中查找和<fil...转载 2019-01-10 10:46:43 · 163 阅读 · 0 评论 -
_006_Shiro_URL匹配模式
1 URL 匹配模式 • url 模式使用 Ant 风格模式• Ant 路径通配符支持 ?、*、**,注意通配符匹配不包括目录分隔符“/”:– ?:匹配一个字符,如 /admin? 将匹配 /admin1,但不匹配 /admin 或 /admin/;– *:匹配零个或多个字符串,如 /admin 将匹配 /admin、/admin123,但不匹配 /admin/1;– **...转载 2019-01-10 11:13:29 · 181 阅读 · 0 评论 -
_007_Shiro_认证思路分析
大概认证流程: 1. 获取当前的 Subject. 调用 SecurityUtils.getSubject();2. 测试当前的用户是否已经被认证. 即是否已经登录. 调用 Subject 的 isAuthenticated() 3. 若没有被认证, 则把用户名和密码封装为 UsernamePasswordToken 对象1). 创建一个表单页面2). 把请求提交到 SpringMVC...转载 2019-01-10 11:40:58 · 153 阅读 · 0 评论 -
_008_Shiro_md5加密及md5盐值加密
1 MD5加密<bean id="jdbcRealm" class="org.lfz.shiro.realms.ShiroRealm"> <property name="credentialsMatcher"> <bean class="org.apache.shiro.authc.credential.HashedCredentialsMat.转载 2019-01-10 16:58:27 · 155 阅读 · 0 评论 -
_009_Shiro_Realm、Authenticator、JdbcRealm
1 Realm: Shiro 从 Realm 获取安全数据(如用户、角色、权限),即 SecurityManager 要验证用户身份,那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作.。 一般继承 AuthorizingRealm(授权)即可;其继承了Authen...转载 2019-01-10 17:38:59 · 184 阅读 · 0 评论 -
_010_Shiro_多个Realm
<bean id="authenticator class="org.apache.shiro.authc.pam.ModularRealmAuthenticator"> <property name="realms"> <list> <ref bean="jdbcRealm" />转载 2019-01-22 15:14:01 · 110 阅读 · 0 评论 -
_011_Shiro_AuthenticationStrategy
• AuthenticationStrategy 接口的默认实现:• FirstSuccessfulStrategy:只要有一个 Realm 验证成功即可,只返回第一个 Realm 身份验证成功的认证信息,其他的忽略;• AtLeastOneSuccessfulStrategy:只要有一个Realm验证成功即可,和FirstSuccessfulStrategy 不同,将返回所有Realm身份验...转载 2019-01-22 15:56:52 · 148 阅读 · 0 评论 -
_012_Shiro_在SecurityManager中配置Realms
<!--1 配置securityManager --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="cacheManager" ref="cacheMa.转载 2019-01-22 16:35:13 · 236 阅读 · 0 评论 -
_013_Shiro_Permissions
• 授权,也叫访问控制,即在应用中控制谁访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。• 主体(Subject):访问应用的用户,在 Shiro 中使用 Subject 代表该用户。用户只有授权后才允许访问相应的资源。• 资源(Resource):在应用中...转载 2019-01-23 21:47:38 · 363 阅读 · 0 评论 -
_014_Shiro_Shiro标签
转载 2019-01-23 23:05:44 · 103 阅读 · 0 评论 -
_015_Shiro_权限注解
• @RequiresAuthentication:表示当前Subject已经通过login进行了身份验证;即 Subject. isAuthenticated() 返回 true。• @RequiresUser:表示当前 Subject 已经身份验证或者通过记住我登录的。• @RequiresGuest:表示当前Subject没有身份验证或通过记住我登录过,即是游客身份。• @Requir...转载 2019-01-24 21:13:48 · 88 阅读 · 0 评论 -
_016_Shiro_从数据表中初始化资源和权限
public class FilterChainDefinitionMapBuilder { public LinkedHashMap<String,String> buildFilterChainDefinitionMap(){ LinkedHashMap<String,String> lHMap=new LinkedHashMap<>(); ...转载 2019-01-24 21:52:20 · 173 阅读 · 0 评论 -
_017_Shiro_会话管理
Shiro 提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管 JavaSE 还是 JavaEE 环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web 的透明支持、SSO 单点登录的支持等特性。会话相关的API:• Subject.getSession():即可获取会话;其等价于Subject.getSe...转载 2019-01-30 14:00:58 · 185 阅读 · 0 评论