自定义拦截器进行登陆验证
拦截器代码:
package com.hpu.interceptor; import java.util.Map; import com.hpu.model.Manager; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class LoginInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { ActionContext acx = invocation.getInvocationContext(); Map<String , Object> session = acx.getSession(); // 获取Session里面的管理员 Manager manager = (Manager) session.get("manager"); if(manager == null) { // 未登陆返回登陆界面 return Action.LOGIN; } else { // 登陆后,继续执行 return invocation.invoke(); } } }
配置拦截器:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.i18n.encoding" value="gbk"/> <!--不受权限控制的Action请求配置--> <package name="non-authority" namespace="/" extends="struts-default" > <default-action-ref name="login" /> <!-- 登陆界面的Action --> <action name="login" class="com.hpu.action.LoginAction" method="login"> <result>/WEB-INF/manager/login.jsp</result> </action> </package> <!--受权限控制的Action请求配置--> <package name="manager" namespace="/manager" extends="struts-default"> <interceptors> <!-- 定义一个登陆验证的拦截器 --> <interceptor name="authority" class="com.hpu.interceptor.LoginInterceptor" /> <!-- 定义一个带有登陆验证的拦截器栈 --> <interceptor-stack name="myStack"> <!-- 配置默认拦截器 --> <interceptor-ref name="defaultStack" /> <!-- 增加登陆验证拦截器 --> <interceptor-ref name="authority" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack" /> <global-results> <result name="login">/WEB-INF/manager/login.jsp</result> </global-results> <action name="userAdd" class="com.hpu.action.UserAction" method="add"> <result type="redirectAction"> <param name="actionName">user_query</param> <param name="room.id">${ user.room.id }</param> <param name="pageNumber">1</param> </result> <result type="chain" name="input">user_intake</result> </action> </package> </struts>
相关推荐
我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...
综合使用servlet filter与struts2 interceptor对权限进行验证。
内容:拦截器的使用很简单,定义一个自己的拦截器,向配置中添加一下就可以使用。...oTokenInterceptor.java 自定义拦截器 oInterceptorConfig.java 添加拦截器进入项目 oNoNeedToken.java 自定义注解
1.eclipse环境下运行 2.源码 3.自定义拦截器,对用户权限认证 4.各个action之间的跳转
基于SSH2框架Struts2拦截器的登录验证实现
关于对用户的拦截验证。... 部署自定义拦截器!! --> <result>/MyJsp.jsp <!-- 应用自定义拦截器栈 --> <interceptor-ref name="myStack" /> </struts>
SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器
第一种 第二种 15.1.1 拦截器的定义 以实现HandlerInterceptor接口方式为例,自定义拦截器类的代码如下: public class CustomInterceptor implements HandlerInterceptor{ public boolean preHandle(Ht
实现了客户端和服务端,客户端添加header服务端获取验证!
比如在登入一个页面时,如果要求用户密码、权限等的验证,就可以用自定义的拦截器进行密码验证和权限限制。对符合的登入者才跳转到正确页面。这样如果有新增权限的话,不用在Action里修改任何代码,直接在Interceptor里...
springboot自定义注解的demo;通过本案例实现了通过...通过拦截器获取指定方法上的自定义的注解,然后判断当前的接口需不要权限校验;然后通过对应的访问去处理;demo里面的代码简单;文档齐全,初学者秒懂.本文一篇文章搞定
login 拦截器收到401响应并根据存储在LocalStorage中的领域,随机数,uri,算法,不透明,用户名/密码生成身份验证标头拦截器会生成带有授权标头的原始请求,并将散列的身份验证存储在LocalStorage中如果凭据正确,...
Apache Cxf WebService整合Spring 处理Map、非javabean式的复合类等CXF无法自动转化的类型 CXF为服务器端和客户端添加自定义拦截器进行权限检查验证并且控制台打印日志
4.3.1 扩展拦截器接口的自定义拦截器配置 54 4.3.2 继承抽象拦截器的自定义拦截器配置 56 4.3.3 继承方法拦截器的自定义拦截器配置 58 4.4 Struts2文件上传拦截器应用 61 4.4.1 Struts2文件上传功能开发 61 4.4.2 ...
struts2,文件上传,验证框架,手工验证,xml文件验证,自定义类型转换器,自定义拦截器,国际化,ognl
4.5 构建自定义拦截器 78 4.5.1 实现Interceptor接口 78 4.5.2 构建AuthenticationInterceptor拦截器 79 4.6 小结 82 第5章 数据转移:OGNL和类型转换 84 5.1 数据转移和类型转换:Web应用程序领域的常见任务 85 ...
基于springboot+shiro+Mybatis-Plus+Vue 实现的前后端分离简易教务系统,完全适合前后端分离开发初学者,以及shiro初学者。 shiro使用了自定义拦截器和自定义密码验证器。
第一步: 路由 多添加一个自定义字段 requireAuth path: '/repository', name: 'repository', meta: { requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的 }, component: Repository 第二步: ...
初步学习自定义拦截器。通过验证用户名和密码的栗子,实现简单的自定义拦截器功能 #part Three cxfTypeTestClient 这是用来测试JDK webservice 和CXF在参数类型上的不一样,CXF支持比较多的类型,所以使用CXF而不是...