怎么配置shiro验证无权限返回json,而不是跳转到无权限页面?我现在配置的是用户无权限,跳转到页面,我是在自定义realm中判断的。我想返回json,前段发送的是ajax请求,我想通过返回的json来提示用户无权限,在前端实现跳转无权限页面,而不是通过后台跳转。只想通过realm授权验证,不想通过自定义过滤器来实现验证
如果Realm中判断后确实没有相应权限就会根据org.apache.shiro.spring.web.ShiroFilterFactoryBean
的fieldunauthorizedUrl
去访问。
如果unauthorizedUrl
确实能访问某controller中的方法(也就是url、请求参数、headers都没有问题),题主确认一下是不是忘了给controller方法加上@ResponseBody
。
如果题主是打算指向某个文件(也就是用来提示未授权的文件),需要确保两点:
-
org.apache.shiro.spring.web.ShiroFilterFactoryBean
的fieldfilterChainDefinitionMap
中该资源的filter为anon或者其他可以通过的filter。 - 该资源已配置到
org.springframework.web.servlet.resource.ResourceHttpRequestHandler
中。
我花了一个礼拜,整合了下SpringMvc + Mybatis +Shiro +Redis的Demo项目。你可以看看。
http://www.sojson.com/shiro