shiro

Inject CDI managed bean in custom Shiro AuthorizingRealm

徘徊边缘 提交于 2019-12-28 13:23:35
问题 In an app I'm building we're using straight Java 6 EE and JBoss (no Spring, etc), with JPA/Hibernate, JSF, CDI and EJBs. I haven't found many good general security solutions (recommendations are welcome), but the best bet I found is Apache Shiro. However this seems to have a number of shortcomings. Some of which you can read about at Balus C's site: http://balusc.blogspot.com/2013/01/apache-shiro-is-it-ready-for-java-ee-6.html But I've stumbled on another big problem which is already

Shiro学习(11)缓存机制

允我心安 提交于 2019-12-27 21:48:04
Shiro提供了类似于 spring 的Cache抽象,即Shiro本身不实现Cache,但是对Cache进行了又抽象,方便更换不同的底层Cache实现。对于Cache的一些概念可以参考我的《Spring Cache抽象详解》: http://jinnianshilongnian.iteye.com/blog/2001040 。 Shiro提供的Cache接口: Java代码 public interface Cache<K, V> { //根据Key获取缓存中的值 public V get(K key) throws CacheException; //往缓存中放入key-value,返回缓存中之前的值 public V put(K key, V value) throws CacheException; //移除缓存中key对应的值,返回该值 public V remove(K key) throws CacheException; //清空整个缓存 public void clear() throws CacheException; //返回缓存大小 public int size(); //获取缓存中所有的key public Set<K> keys(); //获取缓存中所有的value public Collection<V> values(); }

为什么要使用spring框架?

非 Y 不嫁゛ 提交于 2019-12-27 09:34:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> spring 是一个开源的轻量级 JavaBean 容器框架。使用 JavaBean 代替 EJB ,并提供了丰富的企业应用功能,降低应用开发的复杂性。 轻量:非入侵性的、所依赖的东西少、资源占用少、部署简单,不同功能选择不同的 jar 组合 容器:工厂模式实现对 JavaBean 进行管理,通过控制反转(IOC)将应用程序的配置和依赖性与应用代码分开 松耦合:通过 xml 配置或注解即可完成 bean 的依赖注入 AOP:通过 xml 配置 或注解即可加入面向切面编程的能力,完成切面功能,如:日志,事务...的统一处理 方便集成:通过配置和简单的对象注入即可集成其他框架,如 Mybatis、Hibernate、Shiro... 丰富的功能:JDBC 层抽象、事务管理、MVC、Java Mail、任务调度、JMX、JMS、JNDI、EJB、动态语言、远程访问、Web Service... 原文链接 Java 自学经历 Java 面试题 H5 Java 面试题小程序 来源: oschina 链接: https://my.oschina.net/ConstXiong/blog/3147959

springboot集成shiro的验证

女生的网名这么多〃 提交于 2019-12-26 23:39:22
package com.book.app.utils; import java.util.LinkedHashMap; import java.util.Map; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; import org.apache.shiro.spring.LifecycleBeanPostProcessor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; /** * * 功能:shiro和springboot的整合相当于shiro.ini文件 * 作者:张 * 2018年10月18日上午10:18:35 */ @Configuration public

Springboot整合shiro前后分离

强颜欢笑 提交于 2019-12-26 16:01:18
全局异常监控 AppExceptionAdivse @RestControllerAdvice //以json串的形式返回出去 public class AppExceptionAdivse { @ExceptionHandler ( value = { UnauthorizedException . class } ) public Map < String , Object > unauthorized ( ) { Map < String , Object > map = new HashMap < > ( ) ; map . put ( "code" , 302 ) ; map . put ( "msg" , "未授权" ) ; System . out . println ( "未授权" ) ; return map ; } } LoginController @RestController @RequestMapping ( "login" ) public class LoginController { /** * 登陆 */ @RequestMapping ( "login" ) public Map < String , Object > login ( String username , String password , HttpSession session

Shiro的原理及Web搭建

◇◆丶佛笑我妖孽 提交于 2019-12-26 15:17:48
shiro(java安全框架)     以下都是综合之前的人加上自己的一些小总结     Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 Shiro 主要分为来个部分就是认证和授权,在个人感觉来看就是查询数据库做相应的判断而已,Shiro只是一个框架而已,其中的内容需要自己的去构建,前后是自己的,中间是Shiro帮我们去搭建和配置好的     个人认为需要看一下其中的一些源码,更有帮助的深入的去了解Shiro的原理。 Shiro的主要框架图: 方法类的走向: 对一些其中的方法的简单说明: Subject Subject即主体,外部应用与subject进行交互,subject记录了当前操作用户,将用户的概念理解为当前操作的主体,可能是一个通过浏览器请求的用户,也可能是一个运行的程序。 Subject在shiro中是一个接口,接口中定义了很多认证授相关的方法,外部程序通过subject进行认证授,而subject是通过SecurityManager安全管理器进行认证授权 SecurityManager SecurityManager即安全管理器,对全部的subject进行安全管理,它是shiro的核心

mesher授权系统

China☆狼群 提交于 2019-12-26 13:56:56
背景 Servicecomb-mesher 是 Apache servicecomb 的服务网格项目。mesher以调用链的形式处理请求,可以根据配置自由裁剪处理函数。在控制面mesher天然能够接入apache servicecomb微服务体系。mesher 实际上在应用层作为一个代理,拦截并代替业务服务发起和接收请求,mesher 和业务服务各司其职,业务服务只要保证业务功能正常,mesher负责服务治理层面,构建可靠的通信链路。因此必须构筑开放的生态系统,以支撑业务的进一步发展。通过三方授权登录,将平台的服务各能力开发给第三方,并将第三方的服务和能力接入平台,繁荣共生,共同发展。 授权系统 授权框架 目前实现统一身份认证和授权的技术较多,总体上可归为: 传统的 Cookie + Session 解决方案,有状态会话模式; 基于令牌/票据的解决方案,无状态交互模式。 分布式 Session 分布式 Session 是使用悠久的成熟解决方案,但因有状态会话模式与微服务中所倡导的API导向无状态通信相互违背,对于共享式存储,技术上存在安全隐患,对于微服务而言,适用性较低。 OAuth2.0 OAuth2.0 是业界成熟的授权登录解决方案, 它是一个授权框架而不是一个认证框架,它提供了4种授权模式,能够适应多种场景,作为基于令牌的安全系统,可以广泛用于需要统一身份认证和授权的场景。

shiro权限验证标签

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-26 03:29:10
实例: spring-shiro.xml /admin/repairType/index = roles["ROLE_ADMIN"] /admin/user=roles["ROLE_ADMIN"] /admin/complaint/list= roles["ROLE_SERVICE,ROLE_ADMIN"] jsp页面: <shiro:hasRole name="ROLE_ADMIN"> <li class="user"><a href="${ctx}/admin/user">用户</a></li> </shiro:hasRole> <shiro:hasAnyRoles name="ROLE_ADMIN,ROLE_SERVICE"> <li class="complaint"><a href="${ctx}/admin/complaint/list">服务</a></li> </shiro:hasAnyRoles> <shiro:hasRole name="ROLE_ADMIN"> <li class="system"><a href="${ctx}/admin/repairType/index">系统设置</a></li> </shiro:hasRole>    在使用Shiro标签库前,首先需要在JSP引入shiro标签: <%@ taglib prefix="shiro"

shiro权限管理

你离开我真会死。 提交于 2019-12-26 02:36:38
参考:https://blog.csdn.net/qq_39874546/article/details/79081950 https://www.cnblogs.com/moonlightL/p/8126910.html 1. Shiro入门 ApacheShiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理。 Shiro有三大核心组件: Subject:即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Subject 不仅仅代表某个用户,与当前应用交互的任何东西都是Subject,如网络爬虫等。所有的Subject都要绑定到SecurityManager上,与Subject的交互实际上是被转换为与SecurityManager的交互。 SecurityManager:即所有Subject的管理者,这是Shiro框架的核心组件,可以把他看做是一个Shiro框架的全局管理组件,用于调度各种Shiro框架的服务。作用类似于SpringMVC中的DispatcherServlet,用于拦截所有请求并进行处理。 Realm:Realm是用户的信息认证器和用户的权限人证器,我们需要自己来实现Realm来自定义的管理我们自己系统内部的权限规则

shiro android

天大地大妈咪最大 提交于 2019-12-26 02:35:42
shiro 实现自定义权限规则校验 时间 2014-07-10 15:37:17 CSDN博客 原文 http://blog.csdn.net/cml_blog/article/details/37657217 主题 Android Java <span style="font-family: Arial, Helvetica, sans-serif;">在系统中使用shiro进行权限管理,当用户访问没有权限的资源时会跳转到指定的登录url。</span> 但是如果系统中支持手机app,手机访问时没有使用session进行登录凭证管理,而是使用token,有两种解决方法: 1:支持手机客户端访问的资源在权限配置中配置成anon 2:实现自定义认证拦截器,对用户请求资源进行认证 显然第一种方法不适用,这些资源应该只能让我们自己的app进行访问。 第二中实现方式: <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <!-- 登录的页面 --> <property name="loginUrl" value="/login/login.jsp" />