?? strutsmenusupport.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 + -