`

shiro 拦截 ajax 无权限

阅读更多

1.shrio  filter AccessControlFilter

重写  方法 :protected abstract boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception

 

@Override
	protected boolean onAccessDenied(ServletRequest servletRequest,
			ServletResponse servletResponse) throws Exception {

		HttpServletRequest request = (HttpServletRequest) servletRequest;
		HttpServletResponse response = (HttpServletResponse) servletResponse;
		if (!"XMLHttpRequest".equalsIgnoreCase(request
				.getHeader("X-Requested-With"))) {// 不是ajax请求
			return super.onAccessDenied(servletRequest, servletResponse);
		}
		String url = request.getRequestURL().toString();
		String contextPath = request.getContextPath();
		url = url.substring(0,
				(url.indexOf(contextPath) + contextPath.length()));
		String urls = casUrl + "/login?service=" + url;
		log.info("ajax session timeout url-----------" + urls);
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().write(urls);
		return false;
	}

  把要跳转的路径 返回给ajax;

ajax 在error中 接收:

$.ajax({
		type : "post",
		data : paramsStr,
		url : reqUrl,
		dataType : "json",
		success : function(jsonData) {
			callback(jsonData);
		},
		error : function(e) {
			var errorText = e.responseText;
			if (errorText != undefined && errorText != ""
					&& errorText.indexOf("login?service") > 0) {
				window.location.href = e.responseText;
			} else {
				alertOperFailure();
			}
		}
	});

 

分享到:
评论

相关推荐

    Shiro和AJAX完美整合

    4. **Shiro 拦截器**:编写 Shiro 拦截器,处理 AJAX 请求,根据请求头信息进行身份验证和授权判断。 5. **错误处理**:当 AJAX 请求被 Shiro 拦截器拒绝时,返回相应的错误信息,前端可以根据这些信息展示错误提示...

    自定义shiro实现识别ajax请求的拒绝返回json,还是普通返回页面

    Shiro 提供了 Filter(过滤器)机制,通过配置可以在 Web 应用的入口处拦截请求,进行权限验证。默认情况下,当用户无权访问某个资源时,Shiro 会重定向到一个预设的错误页面。但如果我们希望对 AJAX 请求做出特殊...

    springboot-shiro-demo_mybatisplus_DEMO_shiro权限管理_

    Shiro通过Filter链进行拦截,根据用户的登录状态和权限信息决定是否允许访问特定资源。此外,Shiro还提供了一套简单易用的API,方便开发者进行权限相关的操作。 **MyBatis Plus** MyBatis Plus是MyBatis的增强工具...

    spring boot+shiro+mybatis实现不同用户登录显示不同的权限菜单

    1. **配置Shiro**:首先需要在Spring Boot的配置文件中引入Shiro的相关配置,包括 Realm(自定义的权限认证类),以及过滤器链的定义,确保Shiro能正确拦截请求并进行权限校验。 2. **设计数据库表**:创建用户表、...

    shiro+SSM实现安全登录的项目

    2. Shiro的认证过滤器拦截请求,通过Realm验证用户信息。 3. 验证成功后,Shiro创建Subject并设置Session信息,将用户对象保存在Session中。 4. 用户获得认证后,后续请求会根据Shiro的权限过滤器进行权限检查。 **...

    shiro中session的共享问题与完成前后端权限的校验

    在前端,通常通过Ajax请求携带Token(如JWT)向后端发送请求,后端则使用Shiro对Token进行解析和验证。 Shiro的权限校验主要涉及以下流程: 1. 后端接收到请求,Shiro的Filter链开始工作,首先进行身份认证,验证...

    管理系统系列--使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例.zip

    在前端,我们可以使用Ajax请求来获取当前用户的权限信息,并据此控制菜单和按钮的显示。同时,需要确保所有的敏感操作都通过POST请求进行,以防止CSRF攻击。 测试是必不可少的环节,我们应该编写单元测试和集成测试...

    Springboot+Vue+shiro实现前后端分离、权限控制的示例代码

    【Springboot+Vue+shiro实现前后端分离、权限控制】 在现代Web开发中,前后端分离是一种常见的架构模式,它可以提高开发效率并优化用户体验。Springboot与Vue.js的结合,加上Shiro的安全框架,可以构建出高效、安全...

    javaweb 通用权限管理系统

    2. 授权机制:使用如Spring Security或Apache Shiro等框架实现权限控制,根据角色权限动态生成菜单和操作按钮。 3. 权限策略:可以是基于角色的访问控制(RBAC),也可以是基于资源的访问控制(RBAC+ABAC),根据...

    springboot+shiro+vue实现的简易教务系统.zip

    2. **权限控制**:Shiro的拦截器会检查用户是否有访问特定URL的权限,如果没有,则重定向到登录页面或无权限页面。 3. **前后端分离**:Vue.js作为前端,通过Ajax请求与SpringBoot后端进行数据交互,实现CRUD操作,...

    struts2权限管理系统

    它主要利用Struts2作为MVC框架,结合其他组件如Hibernate进行数据持久化,Spring进行依赖注入,以及Apache Shiro或Spring Security等进行权限控制,为企业提供了一种高效、灵活的权限管理解决方案。 首先,Struts2...

    springboot demo-shiro

    // 配置不会被拦截的链接 顺序判断 filterChainDefinitionMap.put("/static/**", "anon"); filterChainDefinitionMap.put("/public/**", "anon"); filterChainDefinitionMap.put("/ajaxLogin", "anon"); ...

    JavaWeb开发权限问题

    处理AJAX权限问题时,可以返回特定的状态码或错误信息,前端根据这些信息进行相应的处理,如显示错误提示或重定向。 五、Shiro框架 Apache Shiro是另一个流行的身份验证和授权框架,它的设计简单直观,适合小型...

    spring+spring-mvc+mybatis+bootstrap+ajax详细项目案例

    - 配置Shiro拦截器。 - 实现用户登录、权限验证等功能。 ### 总结 本项目通过结合多种现代技术和框架,构建了一个功能完整、界面友好的家庭财务管理系统。通过使用Spring框架进行统一管理,MyBatis进行数据持久化...

    权限管理系统springmvc hibernate spring 完整项目带数据库

    权限管理系统通常会集成如Spring Security或Apache Shiro等安全框架,用于处理用户认证(Authentication)和授权(Authorization)。它们能帮助系统实现用户登录验证、权限校验、拦截无权访问的操作等功能,确保...

    java 企业级权限管理视频教程

    同时,前端页面的权限控制也很重要,这通常涉及到AJAX请求的拦截和权限提示的显示。 最后,测试是确保权限管理系统正确运行的关键步骤。单元测试和集成测试可以帮助开发者验证每个功能模块以及它们之间的交互是否...

    spring boot集成shrio

    - **异步请求处理**:Shiro可以很好地处理AJAX请求,通过设置过滤器链,确保对异步请求的安全拦截。 - **JSON响应**:配置Shiro返回JSON格式的错误信息,方便前端处理错误状态。 - **跨域资源共享(CORS)**:若...

    springboot+mybatis 开发的权限管理系统.zip

    它们提供了丰富的API和配置选项,能够方便地进行权限校验和拦截。 Spring Security是一个强大的安全框架,它可以与Spring Boot无缝集成,提供认证、授权、会话管理等功能。通过配置WebSecurityConfigurerAdapter,...

    基于springBoot,shiro,vue的前后端分离的学生信息管理系统.zip

    例如,使用Shiro的过滤器链进行URL拦截,实现不同角色的访问权限差异化。 **Vue.js** Vue.js是一个轻量级的前端MVVM框架,以其易学易用、高性能和灵活性受到广泛欢迎。在前后端分离的架构中,Vue.js作为前端界面的...

    增删改查,保存,查看,拦截

    Spring Security或Apache Shiro是常用的权限管理框架,它们可以拦截特定的URL,只有满足条件的用户才能访问。这通常涉及到用户登录、角色权限分配以及权限验证等环节。 **9. 测试与部署** 完成上述功能后,我们需要...

Global site tag (gtag.js) - Google Analytics