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

📄 authorizeusertag.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
字号:
package org.roller.presentation.website.tags;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts.config.ForwardConfig;import org.apache.struts.config.ModuleConfig;import org.apache.struts.util.RequestUtils;import org.roller.pojos.UserData;import org.roller.presentation.RollerRequest;import java.security.Principal;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.Tag;import javax.servlet.jsp.tagext.TagSupport;/**   * If user is not authorized, forward to specified global forward.   * @jsp.tag name="AuthorizeUser"   */public class AuthorizeUserTag extends TagSupport {    static final long serialVersionUID = 1684786313445066867L;        private static Log mLogger = LogFactory.getFactory().getInstance(        AuthorizeUserTag.class);    private String name = null;	/** @jsp.attribute required="true" */     public String getFailureForward() { return (this.name); }    public void setFailureForward(String name) {this.name = name;} 	//-----------------------------------------------------------     /**     * Defer generation until the end of this tag is encountered.     *     * @exception JspException if a JSP exception has occurred     */    public int doStartTag() throws JspException 	{		return (SKIP_BODY);    } 	//-----------------------------------------------------------     /**     * Process start tag.     * @return EVAL_SKIP_BODY     */    public int doEndTag() throws JspException 	{		HttpServletRequest req = null;		UserData user = null; 		try		{			req = (HttpServletRequest)pageContext.getRequest();			user = RollerRequest.getRollerRequest(req).getUser();		}		catch (Exception e)		{            mLogger.error("ERROR in tag",e);			throw new JspException(e);		}		Principal prince = req.getUserPrincipal(); 		if ( prince == null || !prince.getName().equals( user.getUserName() ) )		{			ServletContext ctx = req.getSession().getServletContext();			ModuleConfig mConfig = RequestUtils.getModuleConfig(req,ctx);			ForwardConfig fConfig = mConfig.findForwardConfig(name);			if (fConfig==null)				throw new JspException("Forward "+name+"not found");						// Forward or redirect to the corresponding actual path			String path = fConfig.getPath();			if (fConfig.getRedirect()) 			{				HttpServletResponse response =					(HttpServletResponse) pageContext.getResponse();				try 				{					response.sendRedirect(response.encodeRedirectURL(path));				} 				catch (Exception e) 				{                  mLogger.error("ERROR in tag",e);				  throw new JspException("Error redirecting to forward "+name);				}			} 			else 			{				try 				{					pageContext.forward(path);				} 				catch (Exception e) 				{                    mLogger.error("ERROR in tag",e);					throw new JspException("Error forward to "+name);				}			}			// Skip the remainder of this page			return (SKIP_PAGE);		}		return Tag.SKIP_BODY;    }	//------------------------------------------------------------------------    /**     * Release any acquired resources.     */    public void release() 	{		super.release();		name = null;    }}

⌨️ 快捷键说明

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