shiro

sringboot2+shiro json接口形式未登录时报https中有http请求错误

≯℡__Kan透↙ 提交于 2019-11-27 14:04:14
最近开发一个小项目采用springboot2+shiro前后端分离的方式进行。由于访问使用https证书形式。结果在上线时遇到登录信息过期后shiro设置的跳转接口时重定向为http。从而https访问http报错。网上找了很多都没有一个很好的解决办法。 一开始想通过redirectHttp10Compatible:解决https环境下使用redirect重定向地址变为http的协议,无法访问服务的问题 设置为false,即关闭了对http1.0协议的兼容支持 ,实际测试不管用。只能从shiro源码进行分析如下: Java代码 publicboolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { return isAccessAllowed(request, response, mappedValue) || onAccessDenied(request, response, mappedValue); } 可以发现他是调用的isAccessAllowed方法和onAccessDenied方法,只要两者有一个可以就可以了,从名字中我们也可以理解,他的逻辑是这样:先调用isAccessAllowed,如果返回的是true

CAS 4.1.x 单点登出(退出登录)的原理解析

只谈情不闲聊 提交于 2019-11-27 14:02:33
我们在项目中使用了cas作为单点登录的解决方案,当在集成shiro做统一权限控制的时候,发现单点退出登录有坑,所以啃了一下CAS的单点登出的源码,在此分享一下。 1、回顾单点登录中一些关键事件 在解析CAS单点登出的原理之前,我们先回顾一下在单点登录过程中,CAS服务器和CAS客户端都做了一些什么事,这些事在后面解析单点登出时有助于理解。 一般情况下,在项目中使用cas client提供的几个过滤器实现WEB APP的单点登录、退出功能,配置如下: <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener </listener-class> </listener> <filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>http://passport.edu:18080</param-value> <

Shiro学习笔记

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 13:05:27
1 步骤 解压缩 unzip shiro-root-1.4.1-source-release.zip 进入目录 cd shiro-root-1.4.1/samples/quickstar 运行 mvn compile exec:java 概念 subject/session,然后判断user是否登录,没有则用subject(user)来使用 token登录, subject 是用户,但不这么叫,安全领域都这么做,session的好处是 不需要web Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); session.setAttribute( "someKey", "aValue" ); if ( !currentUser.isAuthenticated() ) { //collect user principals and credentials in a gui specific manner //such as username/password html form, X509 certificate, OpenID, etc. //We'll use the username/password example here since it

Springboot vue.js html 前后分离 跨域 集成代码生成器 shiro权限

给你一囗甜甜゛ 提交于 2019-11-27 12:09:49
特别注意: Springboot 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接口 前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 (特别注意,前端用的vue.js, 就是html页面引入vue.js形式, 用tomcat部署运行,更适合后台开发者) 工作流模块------------------------------------------------------------------------------------------- 1.模型管理 :web在线流程设计器、预览流程xml、导出xml、部署流程 2.流程管理 :导入导出流程资源文件、查看流程图、根据流程实例反射出流程模型、激活挂起 3.运行中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办人 4.历史的流程:查看流程信息、流程用时、流程状态、查看任务发起人信息 5.待办任务 :查看本人个人任务以及本角色下的任务、办理、驳回、作废、指派一下代理人 6.已办任务 :查看自己办理过的任务以及流程信息、流程图、流程状态(作废 驳回 正常完成) 注:当办理完当前任务时

使用SSM+Solr优雅的实现电商项目中的搜索功能

ε祈祈猫儿з 提交于 2019-11-27 10:37:43
在学习了 Redis&Spring-Data-Redis入门 和 Solr&Spring-Data-Solr入门 后,接下来就该是项目实战了。这次我们用Vue.JS和ElementUI写前端页面,优雅的整合SSM-Shiro-Redis-Solr框架。 手摸手教你优雅的实现电商项目中的Solr搜索功能,整合SSM框架和Shiro安全框架;教你用Vue.JS和ElementUI写出超漂亮的页面 项目开源地址: SSM整合Solr实现电商项目中的搜索功能 <!--more--> <br/> 准备 Shiro 关于Shiro,我这里写了详细的SSM框架整合Shiro安全框架的文档,利用SSM框架+Shiro框架实现用户-角色-权限管理系统; 详细的文档地址: SSM整合Shiro框架后的开发 项目Github源码地址: SSM整合Shiro框架后的开发 , 欢迎star <br/> Solr & Spring-Data-Solr ** 关于Solr安装配置和Spring-Data-Solr的入门Demo请查看博文: Solr和Spring-Data-Solr的入门学习 ** Solr需要单独部署到Tomcat服务器上,我这里提供自己已经安装和配置好的Tomcat和Solr: Github 注意事项: 部署Solr的Tomcat端口和本地项目的端口不能相同,会冲突。 注意 Github仓库

Shiro

强颜欢笑 提交于 2019-11-27 10:06:58
https://412887952-qq-com.iteye.com/blog/2299732 来源: https://www.cnblogs.com/cashew/p/11357975.html

springboot + shiro 构建权限模块

最后都变了- 提交于 2019-11-27 08:29:58
  权限模块基本流程   权限模块的基本流程:用户申请账号和权限 -->登陆认证 -->安全管控模块认证 -->调用具体权限模块(基于角色的权限控制) --> 登陆成功 -->访问资源 -->安全模块鉴权 -->通过后获取资源。整个流程如下图   常用的两个安全管控模块比较   JAAS,java验证和授权模块,jdk提供的一套标准的方法,对于有异构分布式的大型企业推荐这个框架,很多开源项目的安全框架就是JAAS,例如CAS 、tomcat、activemq等。   spring security,市场占有率最高的框架,支持范围广、功能更强大,但是学习比较复杂,成本比较高,跟spring框架绑定,无法在非spring项目中使用,对于安全需求复杂、支持范围广的项目可以使用。   shiro,简单易学,功能对于一般的web项目已经足够,相对独立,可用于非Spring的项目。   shiro基础知识   shiro扩展性很强,我们可以实现自己的realms、sessionDao、cachemanager以及自定义过滤器来实现个性化需求,其架构图如下:   shiro的核心概念有:   subject:用户,这个用户不一定使人,而是指任何与当前系统交互的对象   principal:身份标示,表示主体的抽象概念,可以用来表示任何实体,如username、ID、phone等  

开源框架及组件存在的bug集合-切记不要在生产环境中使用

大憨熊 提交于 2019-11-27 07:23:53
我们的项目已经全部测试通过,并且已经上线到了生产环境,并且已经平稳运行了一段时间了。辛苦了大半年,本想着万事大吉,可以放松吃鸡。 但是突然接到上级领导发布的消息: “你们用到了xxxx框架或组件吗,如果用到了必须改掉,或升级到最新版本!” 例如这次的jcakson低版本存在重大问题,我们生产上用的1.9.13,领导要我们直接升级到2.9.9。如果要改,涉及到几乎所有服务都要改,系统变动非常大,整个系统需要重新测试,重新上线! 遂记本文,也希望大家不要犯同样的问题。 大家可以关注本文,后期如果还有同样的问题,我也会更新到本文中。 同时欢迎大家在评论区留言讨论。 1、Fastjson存在的bug (1) 问题描述 攻击者可以利用该漏洞绕过黑名单策略进行远程代码执行 参考: https://www.cnblogs.com/chaos-li/p/11139992.html (2) 影响范围 FastJSON 1.2.30及以下版本 FastJSON 1.2.41至1.2.45版本 (3) 解决办法 升级至FastJSON最新版本,建议升级至1.2.58版本。 并且即使升级到了该版本,也不要使用如下代码(如果用到了必须删除) ParserConfig . getGlobalInstance ( ) . setAutoTypeSupport ( true ) ; 2、Shiro存在的bug

When to move from Container managed security to alternatives like Apache Shiro, Spring Security?

点点圈 提交于 2019-11-27 07:07:44
I am trying to secure my application which is built using JSF2.0. I am confused about when do people choose to go with security alternatives like Shiro, Spring Security or owasp's esapi leaving behind container managed security. Having seen some of related questions on Stack Overflow, where I realized that container based security was more preferred by JSF developers in past. But I have also been strongly recommended to use Apache Shiro. I am novice in terms of the security issues and have no idea what may be the relevant issues & how to deal with them. Therefore I'm looking for something that

Shiro vs. SpringSecurity [closed]

偶尔善良 提交于 2019-11-27 05:48:24
I have currently evaluating Java based security frameworks, I am a Spring 3.0 user so it seemed that SpringSecurity would be the right Choice, but Spring security seems to suffer from excessive complexity, it certainly does not seem like it is making security easier to implement, Shiro seems to be much more coherent and easier to understand. I am looking for lists of pros and cons between these two frameworks. Les Hazlewood I too agree that Spring Security feels too complicated (to me). Sure, they have done things to reduce complexity, like creating custom XML namespaces to reduce the quantity