求救,前后分离,SpringBoot 整合 Shiro后,使用浏览器地址栏或postman可以正常认证授权,但使用ajax访问需要授权的接口会直接跳转到登录页

谭谈谈 2020-07-11 04:29:47
如题,拦截规则很简单,除了登录接口(doLogin)外全部要授权,设置了未认证的跳转接口:toLogin,
如果使用Ajax可以正常认证,但是认证后如果要访问其他接口,会直接跳转到toLogin接口!!!!
搞了好久,已经心态崩了。。。
这是过滤器:

@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
log.info("--------Shiro拦截器工厂类注入成功");

Map<String, String> map = new LinkedHashMap<>();
map.put("/loginController/doLogin", "anon");
map.put("/**", "authc");

shiroFilterFactoryBean.setLoginUrl("/loginController/toLogin");
shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
return shiroFilterFactoryBean;
}
...全文
7235 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
谭谈谈 2020-07-15
  • 打赏
  • 举报
回复
谢谢, 就是这个问题, 感谢!
王炳焱 2020-07-14
  • 打赏
  • 举报
回复
前后端分离项目中,ajax请求没有携带cookie,所以后台无法通过cookie获取到SESSIONID,从而无法获取到session对象。而shiro的认证与授权都是通过session实现的 解决方法: https://blog.csdn.net/weixin_45400199/article/details/103620230
qingchunwudi123 2020-07-14
  • 打赏
  • 举报
回复
要判断是页面登录还是AJAX调用啊,如果是AJAX调用直接返回json就好
亦夜 2020-07-12
  • 打赏
  • 举报
回复
https://blog.csdn.net/piisabutcher/article/details/103278897 你可以参考一下这篇文章,你的问题可能就是你的认证,因为你没有认证的时候跳转到登录接口很正常,但是你认证之后你依旧把访问其他接口给拦截了,我拦截的应该是没有认证的内容,而不是我认证了你还是要拦截我

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧