zoukankan      html  css  js  c++  java
  • struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor

    package com.sise.action;
    
    import java.util.Map;
    
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
    
    public class AuthorizationInterceptor extends AbstractInterceptor {
    	private String ignoreActions;
    
    	// ignoreActions属性的getter方法
    	public String getIgnoreActios() {
    		return ignoreActions;
    	}
    	// ignoreActions属性的setter方法
    	public void setIgnoreActions(String ignoreActions) {
    		this.ignoreActions = ignoreActions;
    	}
    	@Override
    	public String intercept(ActionInvocation invocation) throws Exception {
    		ActionContext ctx = invocation.getInvocationContext();
    		Map session = ctx.getSession();
    		Object user = session.get("currentUserId");
    		boolean ignore = false;
    		if (user != null || ignore == true) {
    			return invocation.invoke();
    		} else {
    			return Action.LOGIN;
    		}
    	}
    }
    

      struct.xml配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    	<package name="default" extends="struts-default">
    		<interceptors>
    			<interceptor name="loginInterceptor"
    				class="com.sise.action.AuthorizationInterceptor"></interceptor>
    			<interceptor-stack name="loginDefaultStack">
    				<interceptor-ref name="loginInterceptor">
    					<param name="ignoreActions">
    						validate_code,register.*,.*login.*,upload,connector</param>
    				</interceptor-ref>
    				<interceptor-ref name="defaultStack"></interceptor-ref>
    			</interceptor-stack>
    		</interceptors>
    		<default-interceptor-ref name="loginDefaultStack"></default-interceptor-ref>
    		<global-results>
    			<result name="login" type="redirect">/login.html</result>
    		</global-results>
    		<action name="index" class="com.sise.action.IndexAction"
    			method="index">
    			<result name="success">/index.html</result>
    		</action>
    		<action name="login" class="com.sise.action.LoginAction"
    			method="login">
    			<result type="redirectAction">index</result>
    			<result name="login" >/login.html</result>
    			<interceptor-ref name="defaultStack"></interceptor-ref>
    		</action>
    	</package>
    </struts>  
    

      

  • 相关阅读:
    Mac之雕虫小技
    Python 合并两个字典(Dictionary)中相同key的value的方法
    linux只保留最新n个文件
    自动化测试笔记
    python实现一个判断时间的装饰,并抛出自定义异常
    python在字典列表中计算具有特定键的元素
    canvas游戏
    教为学:Oracle 11g OCP之路(七):数据结构
    教为学:Oracle 11g OCP之路(八):用户权限管理
    ADO.NET入门教程(六) 谈谈Command对象与数据检索
  • 原文地址:https://www.cnblogs.com/taoweiji/p/3248822.html
Copyright © 2011-2022 走看看