这个问题困扰了我一天,看了下面两个文章,豁然开朗: https://www.cnblogs.com/gj1990/p/8057348.html https://412887952-qq-com.iteye.com/blog/2392741 按照如下方法即可解决无法显示静态资源问题: 一.让springboot拦截器来接管静态资源,同时在shiroconfig中通过new方式注册过滤器 1.代码一 import java.util.Arrays; import org.slf4j.Logger;…
1.自定义登录filter package com.creatunion.callcenter.filter; import com.alibaba.fastjson.JSONObject; import com.creatunion.callcenter.model.SysUser; import com.creatunion.callcenter.utils.Result; import com.creatunion.callcenter.utils.ResultCode; import o…
一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod.POST},produces="text/html;charset=UTF-8") @ResponseBody public ResultJson systemUserdologin(XXX xxx,HttpServletRequest request,HttpServletRespons…
配置了 Shrio框架,session也集成进去了 ,发现问题session会话过期,点击页面,一直请求失败.本来想集成拦截器,过滤器,但是已经用了shiro框架,sessionDestroyed 方法log也打印出来了 ,就是跳转问题,HttpSessionListener只是对后台数据的整理. 查了资料,有很多就是采用了 全局ajax $.ajaxSetup({ complete:function(XMLHttpRequest,textStatus){ if(textStatus=="par…
$(".myfroms").Validform({//form class btnSubmit:".submitLayer", 绑定提交按钮 tiptype:4, //提示信息类型 ignoreHidden:false, dragonfly:false, tipSweep:true, showAllError:false, postonce:true, ajaxPost:true, beforeCheck:function(curform){// var layIn…
感谢http://blog.csdn.net/this_super/article/details/7884383的文章 1.增加静态资源url映射 如Tomcat, Jetty, JBoss, GlassFish容器可以这样定义 (注意一定要在所有servlet之前定义该类映射): <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-patter…
感谢http://blog.csdn.net/this_super/article/details/7884383的文章 1.增加静态资源url映射 如Tomcat, Jetty, JBoss, GlassFish容器可以这样定义 (注意一定要在所有servlet之前定义该类映射): <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-patter…
在SpringBoot+Shiro实现安全框架的时候,自定义扩展了一些Filter,并注册到ShiroFilter,但是运行的时候发现总是在ShiroFilter之前就进入了自定义Filter,结果当然是不对的. <!--自定义登陆拦截器,支持Ajax--> <bean id="smartfxLoginFilter" class="com.smartdata360.smartfx.shiro.filter.ShiroLoginFilter">…
前言: 在前后端分离的项目中, 在使用shiro的时候, 我们绝大部分时候, 并不想让浏览器跳转到那个页面去, 而是告诉前端, 你没有登录, 或者没有访问权限. 那这时候, 我们就需要返回json字符串给前端, 让前端解析后, 根据状态执行相应的操作. 实现: 由于我现在的系统, 权限并不复杂, 所以在这里, 我自定义了一个过滤器. 当然, 如果想要更加省事, 可以继承user(org.apache.shiro.web.filter.authc.UserFilter) 或者 authc(org.…
明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数据给前端了,前端再根据状态码做相应的操作.那么Shiro框架能不能在鉴权失败的时候直接返回Json数据呢?答案当然是可以. 其实Shiro的自定义过滤器功能特别强大,可以实现很多实用的功能,向前端返回Json数据自然不在话下.通常我们没有去关注它是因为Shiro内置的一下过滤器功能已经比较全了,后台…
写在前面 我们知道,shiro框架在Java Web应用中使用时,本质上是通过filter方式集成的. 也就是说,它是遵循过滤器链规则的:filter的执行顺序与在web.xml中定义的顺序一致,如下所示: <filter> <filter-name>securityFilter</filter-name> <filter-class>com.lenovo.iot.devicemanager.filter.SecurityFilter</filter-…
虽然shiro有自己默认的logout过滤器,但是,有些时候,我们需要自己定义一下操作,比如说loutgout后,进入指定页面,或者logout后写入日志操作,这个时候,我们可以通过自定义logout filter来实现: 1,自定义一个systemLogout继承字logout filter,并重写preHandle方法 /** * @author:lyy * @Date: 2014/10/14 9:33 * @version: * @Description: */ @Service publ…
title: 关于hexo博客自定义域名后gitment评论系统登陆出现redirect error返回主页的解决办法 toc: false date: 2018-04-16 22:57:50 categories: methods tags: hexo gitment OAuth 阿里云 背景: 原地址:https://mikqueenge.github.io 新域名:http://blog.zmj97.top(这里一定要注意!从阿里云买的域名使用的协议是http!) 今天下午兴致勃勃地买了个…
今天做项目的时候,发现每次拦截器日志都会打两遍,很纳闷,怀疑是Filter被执行了两遍.结果debug之后发现还真是!记录一下这个神奇的BUG! 问题描述 项目中使用的是Spring-security作为权限框架,然后做了一个JwtAuthenticationTokenFilter作为拦截器拦截请求,校验Token,但是每次请求都会打两遍日志.下面是精简的源代码: 自定义的Filter类 @Slf4j @Component public class JwtAuthenticationTokenF…
项目中需要所有首次登录的用户必须修改密码才可使用系统,项目采用的是Shiro框架. 突然想到了配置文件org.apache.shiro.spring.web.ShiroFilterFactoryBean中的loginUrl,校验未登录则跳转到登录地址.索性研究了它的源码后可以继承AccessControlFilter自定义自己的过滤器. 自定义Shiro过滤器: package com.lwj.modules.filter; import javax.servlet.ServletRequest…
alt+7 OncePerRequestFilter public final void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException { String alreadyFilteredAttributeName = getAlreadyFilteredAttributeName(); if ( requ…
在实际项目上,我们针对不同的用户(guste,user,admin,mobile user)等等,需要进入不同的页面,比如,手机端用户需要进入Mobile/这个路径下的,这个时候,我们需要自定义拦截url,就比如下面的url: 电脑端用户登录页面 http://localhost:8080/login 手机端用户登录页面 http://localhost:8080/mobile/login 而在我们通用的配置中是这样配置的: <!--Shiro配置 --> <!-- Shiro 的Web…
前言: shiro因为其简单.可靠.实现方便而成为现在最常用的安全框架,那么这篇文章除了会用简洁明了的方式讲一下基于spring的shiro详细配置和登录注销功能使用之外,也会根据惯例在文章最后总结一下shiro的大致配置使用流程,希望本篇文章能够后能给大家一种原来shiro这么简单的错觉感觉. 注意:该篇文章的开始是建立在一个完备的spring+mybatis的开发环境中,除了shiro之外的配置基本不会涉及到.做好自己--eguid原创文章 一.依赖的jar包 本篇文章使用shiro-1.4…
Shiro 登陆.授权.拦截 按钮权限控制 一.目标 Maven+Spring+shiro 自定义登陆.授权 自定义拦截器 加载数据库资源构建拦截链 使用总结: 1.需要设计的数据库:用户.角色.权限.资源 2.可以通过,角色,权限,两个拦截器同时确定是否能访问 3.角色与权限的关系,role1=permission1,permission2,多级的权限:sys:permission1,拥有高级权限同时用于低级权限. 4.perms["permission1"] 为权限 5.拦截器机制…
2017/06/14这一天,是我玩Shiro安全框架最刻骨铭心的一天.因为Shiro今天给我深深的补了一刀,在这儿我也给各位补一刀吧,其实问题很简单,解决方式也极其简单,只是给各位分享一下这个错误,纯属给各位长点经验值. 之前自己搭建了一套系统拿来练手,将Shiro请到这套系统中作为了第一道防锁线,今天闲来无事想加个短信验证码上去,就登陆了中国建网,还好,之前玩剩下的还有3条短信,于是就小忙了起来,找到很久以前玩过的SMS短信发送的那段代码,但是代码很乱很脏,因为那时候不懂事儿瞎写的,现在整理了…
Spring-Security的功能主要是由一堆Filter构成过滤器链来实现,每个Filter都会完成自己的一部分工作.我今天要做的是对UsernamePasswordAuthenticationFilter进行扩展,新增一个Filter,完成对登录页面的校验码的验证.下面先给一张过滤器的说明,接下来讲自定义的登录验证Filter.  https://docs.spring.io/spring-security/site/docs/3.2.8.RELEASE/reference/htmlsin…
Spring Security 的底层是通过一系列的 Filter 来管理的,每个 Filter 都有其自身的功能,而且各个 Filter 在功能上还有关联关系,所以它们的顺序也是非常重要的. 1.Spring Security的内置Filter 执行顺序 Spring Security 已经定义了一些 Filter,不管实际应用中你用到了哪些,它们应当保持如下顺序. ChannelProcessingFilter,如果你访问的 channel 错了,那首先就会在 channel 之间进行跳转,…
        在javaweb开发中,过滤器Filter比较常用于类似登录的拦截等场景.但是,当过滤器的配置不当时就会把所有的请求都拦截,静态资源也会被拦截掉,导致静态页面加载不出来. 一般的解决方案是在过滤器代码中对所有的静态资源放行,但这样硬编码的方式特别不灵活,代码复用性也不高.下面说个更优雅点的方案. 一.解决方案         如果将静态资源放行的功能做成在web.xml中可以直接配置的话,就比较方便了.因此我们可以采用配置Filter的init-param的方式来配置那些资源不需…
=================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战(核心知识) 简介:讲解SpringBoot里面Filter讲解和使用Servlet3.0配置自定义Filter实战 filter简单理解:人--->检票员(filter)---> 景点 1.SpringBoot启动默认加载的Filter…
用Shiro做登录权限控制时,密码加密是自定义的. 数据库的密码通过散列获取,如下,算法为:md5,盐为一个随机数字,散列迭代次数为3次,最终将salt与散列后的密码保存到数据库内,第二次登录时将登录的令牌再进行同样的运算后再与数据库的做对比. String algorithmName = "md5";String userName = "rose";String password = "rose123";int hashIterations =…
2017/06/14这一天,是我玩Shiro安全框架最刻骨铭心的一天.因为Shiro今天给我深深的补了一刀,在这儿我也给各位补一刀吧,其实问题很简单,解决方式也极其简单,只是给各位分享一下这个错误,纯属给各位长点经验值. 之前自己搭建了一套系统拿来练手,将Shiro请到这套系统中作为了第一道防锁线,今天闲来无事想加个短信验证码上去,就登陆了中国建网,还好,之前玩剩下的还有3条短信,于是就小忙了起来,找到很久以前玩过的SMS短信发送的那段代码,但是代码很乱很脏,因为那时候不懂事儿瞎写的,现在整理了…
Shiro的Filter机制详解 首先从spring-shiro.xml的filter配置说起,先回答两个问题: 1, 为什么相同url规则,后面定义的会覆盖前面定义的(执行的时候只执行最后一个). 2, 为什么两个url规则都可以匹配同一个url,只执行第一个呢. 下面分别从这两个问题入手,最终阅读源码得到解答. 问题一解答 相同url但定义在不同的行,后面覆盖前面 如 /usr/login.do=test3 /usr/login.do=test1,test2 不会执行test3的filter…
Shiro的Filter机制详解 首先从spring-shiro.xml的filter配置说起,先回答两个问题: 1, 为什么相同url规则,后面定义的会覆盖前面定义的(执行的时候只执行最后一个). 2, 为什么两个url规则都可以匹配同一个url,只执行第一个呢. 下面分别从这两个问题入手,最终阅读源码得到解答. 问题一解答 相同url但定义在不同的行,后面覆盖前面 如 /usr/login.do=test3 /usr/login.do=test1,test2 不会执行test3的filter…
Shiro Shiro 主要分为 安全认证 和 接口授权 两个部分,其中的核心组件为 Subject. SecurityManager. Realms,公共部分 Shiro 都已经为我们封装好了,我们只需要按照一定的规则去编写响应的代码即可… Subject 表示主体,将用户的概念理解为当前操作的主体,它即可以是一个通过浏览器请求的用户,也可能是一个运行的程序,外部应用与 Subject 进行交互,记录当前操作用户.Subject 代表当前用户的安全操作,SecurityManager 则管理所…
自定义Filter的基本思路是继承基类ActionFilterAttribute,并根据实际需要重写OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted这四个中的一个或多个方法. 注意类名一定要以Attribute结尾. 故名思义,Action执行前,执行后,结果返回前,结果返回后.所以它们的执行先后顺序就是OnActionExecuting,OnActionExecuted,Action,OnResultEx…