⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authenticationprocessingstrutsmenusupportfilter.java

📁 ACEGI数据库保存 ACEGI数据库保存 ACEGI数据库保存
💻 JAVA
字号:
/*
 * Copyright 2004-2005 wangz.
 * Project shufe_newsroom
 */
package com.skyon.um.security.acegi.ui.webapp;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.acegisecurity.Authentication;
import net.sf.acegisecurity.AuthenticationException;
import net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter;

import com.skyon.um.security.acegi.ui.StrutsMenuSupport;

/**
 * @since 2005-8-4
 * @author 王政
 * @version $Id: AuthenticationProcessingStrutsMenuSupportFilter.java,v 1.3 2005/12/14 08:55:30 wangzheng Exp $
 */
public class AuthenticationProcessingStrutsMenuSupportFilter extends
        AuthenticationProcessingFilter {

    public static final String OUTER_VISIT_KEY = "outerVisit";
	    
	private String outerVisitTargetUrl;
	
    /**
	 * @see net.sf.acegisecurity.ui.AbstractProcessingFilter#onPreAuthentication(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	protected void onPreAuthentication(HttpServletRequest request, HttpServletResponse response) throws IOException {
		super.onPreAuthentication(request, response);
		if (request.getParameter(OUTER_VISIT_KEY) != null) {
			if (logger.isDebugEnabled()) {
				logger.debug(" 检测到外部登录, 登录成功后将定向到 : " + outerVisitTargetUrl);
			}
			String actualTargetUrl = request.getContextPath() + outerVisitTargetUrl;
			request.getSession().setAttribute(ACEGI_SECURITY_TARGET_URL_KEY, actualTargetUrl);
		}	
	}

	/**
     * @see net.sf.acegisecurity.ui.AbstractProcessingFilter#onSuccessfulAuthentication(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, net.sf.acegisecurity.Authentication)
     */
    protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) 
        throws IOException {
        super.onSuccessfulAuthentication(request, response, authResult);
        if (request.getParameter(OUTER_VISIT_KEY) == null) {
        	StrutsMenuSupport.buildStrutsMenu(request, authResult);
        }  
    }

	/**
	 * @see net.sf.acegisecurity.ui.AbstractProcessingFilter#unsuccessfulAuthentication(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, net.sf.acegisecurity.AuthenticationException)
	 */
	protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException {
		if (request.getParameter(OUTER_VISIT_KEY) == null) {
			super.unsuccessfulAuthentication(request, response, failed);
		} else {
	        response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + outerVisitTargetUrl));
		}
	}

	/**
	 * @return Returns the outerVisitTargetUrl.
	 */
	public String getOuterVisitTargetUrl() {
		return outerVisitTargetUrl;
	}

	/**
	 * @param outerVisitTargetUrl The outerVisitTargetUrl to set.
	 */
	public void setOuterVisitTargetUrl(String outerVisitTargetUrl) {
		this.outerVisitTargetUrl = outerVisitTargetUrl;
	}
  
    
    
    
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -