shiro

【shiro】(3)---了解Shiro

匿名 (未验证) 提交于 2019-12-03 00:38:01
了解Shiro 一Apache Shiro作用 身份验证 , 授权 , 加密 和 会话管理 ,令行应用程序。 (1) Subject Subject:主体,用来与用户交互的对象 。比如认证用户信息, subject.login(用户信息)。再比如,判断用户是否有相关的角色 subject.hasRole("小学生"); Subject实例都绑定到(并且 需要)SecurityManager。当你与Subject进行交互时,这些交互转化为与SecurityManager的交互。 (2) SecurityManager SecurityManager即安全管理器 ,对全部的subject进行安全管理,它是shiro的核心,负责对所有的subject进行安全管理。通过SecurityManager可以完成subject的认证、授权等,实质上SecurityManager是通过Authenticator进行认证,通过Authorizer进行授权,通过SessionManager进行会话管理等 (3) Authenticator Authenticator即认证器,对用户身份进行认证 ,Authenticator是一个接口,shiro提供ModularRealmAuthenticator实现类,通过ModularRealmAuthenticator基本上可以满足大多数需求,也可以自定义认证器

教你 Shiro + SpringBoot 整合 JWT

匿名 (未验证) 提交于 2019-12-03 00:37:01
学习 Java 也有了不少时间,入 Java 后台的坑也有了一段时日。这段时间里,听过许多前辈的经验与分享,也看过许多大佬的文章和作品。找了个时间整理和总结了一下我个人到目前为止一路以来的听到看到或者自己感悟到的干货。 这篇文章可能更多的是面对初学者,当然,只要有人看了我的这篇文章后能有所收获,我就心满意足了。 学习路线 推荐一些书籍和公众号 对于想往 java 后台这个方向发展的同学,可以按照以下路线入门: - 先把 java 基础部分学完,重点关注多态继承等面向对象的概念,异常,IO,容器等,这部分建议通过视频来学习(毕向东,马士兵老师等的视频都是很经典的,虽然可能年代稍久远,但是万变不离其宗)。有些人可能会推荐看书来学习(如《head first java》等),但是个人认为,如果对于初学者,看书可能相对来说比较难理解,也很容易出现看不下去的情况,而许多优秀的教学视频更加生动,也更加容易理解。 - 然后就可以开始 javaweb 的学习了,Jsp,Servlet 相对来说比较老旧,但是对于初学者理解 HTTP 请求,理解前后端的交互,理解 MVC 模式,以及对以后框架的学习还是非常有帮助的;除此之外,这个时候还需要掌握数据库的知识,以及一些基础的前端知识。 - 等到以上都搞定之后,你就可以开始你的第一个 javaweb 项目了,可以尝试完成一个具有登陆注册

shiroFilter生命周期

匿名 (未验证) 提交于 2019-12-03 00:37:01
shiroFilter init doFilter destory isAccessAllowed onAccessDenied filter执行的是代理bean的id为shiroFilter相应的方法 接下来看看 shiroFilter 是什么 再来分析shiroFilter 这个实现了 javax.servlet.Filter 的生命周期 < bean id = "shiroFilter" class = "org.apache.shiro.spring.web.ShiroFilterFactoryBean" > < property name = "securityManager" ref = "securityManager" /> <!-- loginUrl认证提交地址,如果没有认证将会请求此地址进行认证,请求此地址将由formAuthenticationFilter进行表单认证 --> < property name = "loginUrl" value = "/login.action" /> <!-- 认证成功统一跳转到first.action,建议不配置,shiro认证成功自动到上一个请求路径 --> < property name = "successUrl" value = "/index.action" /> <!--

Spring Boot整合shiro,出现UnavailableSecurityManagerException 异常

匿名 (未验证) 提交于 2019-12-03 00:37:01
问题描述: 由于在java过滤器中通过User token = (User) SecurityUtils.getSubject().getPrincipal();获取当前的登录用户的信息,报UnavailableSecurityManagerException这个异常。 spring整合shiro出现UnavailableSecurityManagerException在网上查出的问题都是没有配置DelegatingFilterProxy或者DelegatingFilterProxy的配置顺序错了,对应的解决办法就是在web.xml上添加DelegatingFilterProxy。 <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <async-supported>true</async-supported> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping>

How to configure Shiro with Spring Boot

雨燕双飞 提交于 2019-12-03 00:33:56
I have a Spring MVC web application that uses Shiro authentication using Spring configuration rather than a shiro.ini. I want to transition to a Spring Boot application. I have been mainly successful. The application starts in Spring Boot and my Shiro environment gets setup. However I just cannot work out how to setup the Shiro Filter correctly. I need this to be working to make sure requests end up being handled by the correct thread. In the original app I configured the Shiro Filter in the web.xml like this: <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework

shiro中获得当前subject的所有角色,权限列表

匿名 (未验证) 提交于 2019-12-03 00:32:02
两种方法: 1.首先我们注入自定义的realm shiroDbRealm.doGetAuthorizationInfo(SecurityUtils.getSubject().getPrincipals()) 从新执行一遍 doGetAuthorizationInfo AuthorizationInfo authorizationInfo1 = getAuthorizationInfo(SecurityUtils. getSubject ().getPrincipals()); doGetAuthorizationInfo方法,并写入缓存中。 文章来源: shiro中获得当前subject的所有角色,权限列表

shiro+jwt整合

匿名 (未验证) 提交于 2019-12-03 00:27:02
特性 完全使用了Shiro的注解配置,保持高度的灵活性。 放弃Cookie,Session,使用JWT进行鉴权,完全实现无状态鉴权。 JWT密钥支持过期时间。 对跨域提供支持 准备工作 在开始本教程之前,请保证已经熟悉以下几点。 Spring Boot 基本语法,至少要懂得 Controller 、 RestController 、 Autowired 等这些基本注释。其实看看官方的Getting-Start教程就差不多了。 JWT (Json Web Token)的基本概念,并且会简单操作JWT的 JAVA SDK 。 Shiro的基本操作,看下官方的 10 Minute Tutorial 即可。 模拟HTTP请求工具,我使用的是PostMan。 简要的说明下我们为什么要用JWT,因为我们要实现完全的前后端分离,所以不可能使用 session , cookie 的方式进行鉴权,所以JWT就被派上了用场,你可以通过一个加密密钥来进行前后端的鉴权。 程序逻辑 我们POST用户名与密码到 /login 进行登入,如果成功返回一个加密token,失败的话直接返回401错误。 之后用户访问每一个需要权限的网址请求必须在 header 中添加 Authorization 字段,例如 Authorization: token , token 为密钥。 后台会进行 token 的校验

springboot集成shiro时认证出现报错(Submitted credentials for token...)

匿名 (未验证) 提交于 2019-12-03 00:27:02
[ERROR:]2018-06-14 14:46:19,226 [Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - 1300, rememberMe=false] did not match the expected credentials.] org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - 1300, rememberMe=false] did not match the expected credentials. at org.apache.shiro.realm.AuthenticatingRealm.assertCredentialsMatch(AuthenticatingRealm.java:600) at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:578) at org.apache.shiro.authc

shiro权限框架整理

匿名 (未验证) 提交于 2019-12-03 00:26:01
Shiro简介 SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 Authentication: 身份认证/登录,验证用户是不是拥有相应的身份; Authorization: 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager: 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography: 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support: Web支持,可以非常容易的集成到Web环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; Concurrency: shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去; Testing: 提供测试支持; Run As: 允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; Remember Me: 记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。 记住一点

Shiro-1.2.2内置的FilterChain

匿名 (未验证) 提交于 2019-12-03 00:22:01
/** * Shiro-1.2.2内置的FilterChain * @see ============================================================================================================================= * @see 1)Shiro验证URL时,URL匹配成功便不再继续匹配查找(所以要注意配置文件中的URL顺序,尤其在使用通配符时) * @see 故filterChainDefinitions的配置顺序为自上而下,以最上面的为准 * @see 2)当运行一个Web应用程序时,Shiro将会创建一些有用的默认Filter实例,并自动地在[main]项中将它们置为可用 * @see 自动地可用的默认的Filter实例是被DefaultFilter枚举类定义的,枚举的名称字段就是可供配置的名称 * @see anon---------------org.apache.shiro.web.filter.authc.AnonymousFilter * @see authc--------------org.apache.shiro.web.filter.authc.FormAuthenticationFilter * @see authcBasic--------