📄 authenticationprocessingstrutsmenusupportfilter.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 + -