这篇文章将为大家详细讲解有关SpringBoot如何集成Shiro安全验证,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
为双城等地区用户提供了全套网页设计制作服务,及双城网站建设行业解决方案。主营业务为网站设计制作、成都网站建设、双城网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!Shiro工作原理是服务端将SessionID写入客户端浏览器的cookie中,客户端发起请求时携带cookie信息,服务端从cookie中读取sessionId,以此来维持会话。但是在前后端分离模式下,我们的后端服务不能将sessionId写到请求浏览器cookie中,而且存在跨域问题,基于安全方面原因,ajax请求也都不带cookie信息,后端程序没办法取得sessionId,也就无法验证登录。
实现思路:将SessionID返回前端做保存(写入cookie或localStage中),然后前端发起请求的时候,将Sessionid传给服务器,服务器获取这个SessionID,再取对应的session
后台登录接口,需要将ShiroSession的SessionId返回给前端,前端保存到cookie中,
登录成功后,前端JS中接收sessionID(token),并保存到cookie中,
第一,修改Shiro安全配置,重写SessionManager类,创建一个MySessionManager类继承DefaultWebSessionManager类,重写getSessionId方法,先从cookie获取SessionID,取不到再从requestHeader中获取,如取不到再从请求参数中获取
第二,修改Shiro配置中的session管理类,配置为我们的MySessionManager类,这里用到了redis作为缓存管理器,
第三,在项目中添加一个过滤器类CrosFilter,处理跨域问题,其中,OPTIONS预处理请求,要返回200,表示成功,否则ajax发起post,get等请求,服务器不能响应。另外,Access-Control-Allow-Headers配置项中,要设置Authorization,而且,Access-Control-Allow-Credentials 要设置成true.
-最后,前端ajax发起请求时,需要添加请求头信息,requestHeader添加Authorization项,值为登录时返回的sessionID($.cookie("token")),设置crossDomain为true。最后,前端ajax发起请求时,需要添加请求头信息,requestHeader添加Authorization项,值为登录时返回的sessionID($.cookie("token")),设置crossDomain为true。
SpringBoot前后端分离API接口怎么保证API接口的安全性?
关于“SpringBoot如何集成Shiro安全验证”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。