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

📄 strutsmenusupport.java

📁 ACEGI数据库保存 ACEGI数据库保存 ACEGI数据库保存
💻 JAVA
字号:
/*
 * Copyright 2005-2010 the original author or autors
 *  
 *    http://www.skyon.com.cn
 *
 * Project { SkyonFramework }
 */
package com.skyon.um.security.acegi.ui;

import javax.servlet.http.HttpServletRequest;

import net.sf.acegisecurity.Authentication;
import net.sf.acegisecurity.GrantedAuthority;
import net.sf.navigator.menu.MenuRepository;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.skyon.um.security.acegi.IConst;
import com.skyon.um.security.acegi.strutsmenu.StrutsMenuBuilder;

/**
 * @since 2005-8-18
 * @author 王 政
 * @version $Id: StrutsMenuSupport.java,v 1.2 2005/12/08 09:46:29 wangzheng Exp $
 */
public class StrutsMenuSupport {

	public static final Log logger = LogFactory.getLog(StrutsMenuSupport.class);
	
	public static final String STRUTS_MENU_KEY = "_acegi_struts_menu_support_";
		
	public static void buildStrutsMenu(HttpServletRequest request, Authentication authResult) {
		GrantedAuthority[] authorities = authResult.getAuthorities();
	    if (authorities == null || authorities.length == 0) {
	        if (logger.isErrorEnabled()) {
	            logger.error("The user : " + authResult.getName() + " hasn't any authorities!");
	        }
	        return;
	    }
	    
	    String[] recipients = new String[authorities.length];
	    for (int i = 0; i < recipients.length; i++) {
	        recipients[i] = authorities[i].getAuthority();
	    }
	    
	    StrutsMenuBuilder strutsMenuBuilder = (StrutsMenuBuilder) WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()).getBean("strutsMenuBuilder");
	    MenuRepository repository = strutsMenuBuilder.getMenuRepository(recipients);
	    request.getSession().setAttribute(StrutsMenuSupport.STRUTS_MENU_KEY, repository);
	    
	    //TODO 暂时这样实现, 以后应该改为将 User 对象放进 session
	    request.getSession().setAttribute(IConst.USER_KEY, authResult);
	}

	

}

⌨️ 快捷键说明

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