import org.apache.struts2.ServletActionContext;import com.delicious.entity.Users; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; //检查用户是否登陆&&是不是管理员身份 //继承拦截器AbstractInterceptor抽象类或者实现Interceptor接口 public class SecurityInterceptor extends AbstractInterceptor {private static final long serialVersionUID = 1L;@Overridepublic String intercept(ActionInvocation invocation) throws Exception {Users user = (Users) ServletActionContext.getContext().getSession().get("user");if (user == null) {return "error";}else if (!user.getIsAdmin()) {return "error";}else {return invocation.invoke();}}} //struts.xml文件 //其中红色部分是对拦截器的配置 //粗体部分为拦截器的使用<package name="admin" namespace="/admin" extends="struts-default"><interceptors><interceptor name="security"class="com.delicious.interceptor.SecurityInterceptor"></interceptor><interceptor-stack name="sshValueStack"><interceptor-ref name="security" /><interceptor-ref name="paramsPrepareParamsStack"><param name="alwaysInvokePrepare">false</param></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="sshValueStack"></default-interceptor-ref><global-results><result name="error" type="redirectAction"><param name="actionName">error</param><param name="namespace">/</param></result></global-results><action name="foods-*" class="adminFoodsAction" method="{1}"><interceptor-ref name="fileUpload"><param name="maximumSize ">10485760</param><param name="allowedExtensions ">jpg,png,gif</param></interceptor-ref><interceptor-ref name="sshValueStack" /><result name="list">/admin/foods_list.jsp</result><result name="save" type="redirectAction">foods-list</result><result name="edit">/admin/foods_input.jsp</result><result name="delete" type="redirectAction">foods-list</result><result name="input" type="redirectAction">foods-list</result></action><action name="messages-*" class="adminMessagesAction" method="{1}"><result name="list">/admin/messages_list.jsp</result><result name="*" type="redirectAction">messages-list</result></action></package>
详细解决方案
struts2自定义拦截器的实现及使用
热度:81 发布时间:2023-10-26 09:20:52.0
相关解决方案
- struts2.xml的action中的result报错,该怎么处理
- struts2 对象属性流入不进去, 报错:target is null for setProperty(null, "x" [Ljava.lang.Stri
- Struts2 <select>上拉框 回显有关问题
- struts2 添加和修改怎么在一个jsp页面实现
- struts2 查询输出的有关问题
- struts2 神奇有关问题,太神奇了!
- struts2 的<s:iterator>标签展示未完全初始化的数组出现奇怪的有关问题
- struts2 文件下传有关问题
- struts2-json中诠注@JSON(deserialize=false)是什么用?不是阻止JSON反序列化成JAVA对象吗?求解
- struts2 将jsp回到到另一个jsp中
- struts2 提交表单不能跳转页面有关问题!action已经执行,但是不能跳转到指定的页面
- Struts2+Spring+JPA+FREEMARKER 登录程序异常
- struts2 action中部分语句被直接跳过不执行. 请教这会是什么原因
- struts2 hibernate 分页有关问题
- 请教哪里可以上到 struts2-json-plugin-2.1.8的源文件
- struts2+freemarker中文参数乱码有关问题
- struts2.3.4+spring3.1+mybats帮忙看看这个有关问题
- struts2 result的jsp页面怎么规定width和height
- struts2 调度后找不到页面 (404)急
- struts2 怎么修改Date数据
- struts2 +freemark+sitemesh css 失灵
- Struts2 <s:select/>有关问题
- struts2 交付同一表单,进行不同的action操作?
- Struts2.0作权限,要求控制到按钮级的,跪求思路以及数据库的设计
- struts2 表单中两个<s:submit>按钮,怎么能让一个按钮对应
- struts2 拦截器 和session 的存取有关问题
- struts2 拦截器不跳转
- struts2 加了拦截器后,发现不能页面传值,如何解决
- Struts2 接收Ajax post步骤传递参数, 领域模型只能接收第一个参数. 不知为何?
- struts2 <s:if>标签有关问题