/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.web.util; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.commons.lang.StringUtils; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import com.ewcms.core.site.model.Site; import com.ewcms.security.manage.service.AuthorityServiceable; import com.ewcms.security.manage.service.GroupServiceable; import com.ewcms.web.context.EwcmsContextHolder; import com.ewcms.web.context.EwcmsContextable; /** * * @author wangwei */ public class EwcmsContextUtil { public static Site getCurrentSite() { EwcmsContextable context = EwcmsContextHolder.getContext(); return context.getSite(); } private static Collection<String> getGrantedAuthorities(String perfix){ List<String> names = new ArrayList<String>(); UserDetails user = getUserDetails(); if(user == null){ return names; } Collection<GrantedAuthority> authorites = user.getAuthorities(); for(GrantedAuthority auth: authorites){ if(StringUtils.startsWith(auth.getAuthority(),perfix)){ names.add(auth.getAuthority()); } } return names; } public static Collection<String> getGroupnames(){ return getGrantedAuthorities(GroupServiceable.GROUP_NAME_PERFIX); } public static Collection<String> getAutoritynames(){ return getGrantedAuthorities(AuthorityServiceable.Authority_NAME_PERFIX); } public static UserDetails getUserDetails(){ UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); return userDetails; } public static String getUserName(){ Authentication currentUser = SecurityContextHolder.getContext().getAuthentication(); if(currentUser == null){ return ""; } return currentUser.getName(); } }