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

📄 coremenutree.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
/*
 *  SSL-Explorer
 *
 *  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
			
package com.sslexplorer.core;

import javax.servlet.http.HttpServletRequest;

import com.sslexplorer.navigation.MenuTree;
import com.sslexplorer.policyframework.Permission;
import com.sslexplorer.policyframework.PolicyConstants;
import com.sslexplorer.security.AuthenticationModuleManager;
import com.sslexplorer.security.PersonalQuestionsAuthenticationModule;
import com.sslexplorer.security.SessionInfo;


/**
 * Extension of {@link com.sslexplorer.navigation.MenuTree} used for the main
 * menu navigation (i.e. the bar on the left in the default UI).
 * 
 * @author Brett Smith <a href="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
 * @version $Revision: 1.44 $
 */
public class CoreMenuTree extends MenuTree {
    /**
     * Menu tree name
     */
    public static final String MENU_ITEM_MENU_TREE = "menuItem";

    /**
     * Constructor.     *
     */
    public CoreMenuTree() {
        super(CoreMenuTree.MENU_ITEM_MENU_TREE);

        // Menu Bar

        addMenuItem(null, new MenuItem("myAccount", "navigation", null, 100, false, SessionInfo.USER_CONSOLE_CONTEXT));
        addMenuItem(null, new MenuItem("resources", "navigation", null, 200, false, SessionInfo.USER_CONSOLE_CONTEXT));

        // My Account Menu

        addMenuItem("myAccount", new MenuItem("favorites", "navigation", "/showFavorites.do", 100, true, null,
            SessionInfo.USER_CONSOLE_CONTEXT, PolicyConstants.FAVORITES_RESOURCE_TYPE, new Permission[] {
                PolicyConstants.PERM_USE
            }, null));
        addMenuItem("myAccount", new MenuItem("userPreferences", "navigation", "/showUserProperties.do", 200, true, null,
            SessionInfo.USER_CONSOLE_CONTEXT, null, null, PolicyConstants.PROFILE_RESOURCE_TYPE));
        addMenuItem("myAccount", new ShowChangePasswordMenuItem());

        addMenuItem("myAccount", new MenuItem("userAttributes",
				"navigation", "/userAttributes.do", 500, true, null,
				SessionInfo.USER_CONSOLE_CONTEXT,
				PolicyConstants.PERSONAL_DETAILS_RESOURCE_TYPE,
				new Permission[] { PolicyConstants.PERM_CHANGE }, null));
        
        // Resources menu

        addMenuItem("resources", new MenuItem("userProfiles", "navigation", "/showUserProfiles.do", 100, true, null,
            SessionInfo.USER_CONSOLE_CONTEXT, PolicyConstants.PERSONAL_PROFILE_RESOURCE_TYPE, new Permission[] {
                PolicyConstants.PERM_MAINTAIN
            }, PolicyConstants.PROFILE_RESOURCE_TYPE));
        addMenuItem("resources", new MenuItem("userWebForwards", "webForwards", "/showUserWebForwards.do", 50, true, null,
                        SessionInfo.USER_CONSOLE_CONTEXT, null, null, PolicyConstants.WEBFORWARD_RESOURCE_TYPE));
        addMenuItem("resources", new MenuItem("userApplicationShortcuts", "navigation", "/showUserApplicationShortcuts.do", 300, true,
            null, SessionInfo.USER_CONSOLE_CONTEXT, null, null, PolicyConstants.APPLICATION_SHORTCUT_RESOURCE_TYPE));
        addMenuItem("resources", new MenuItem("userTunnels", "navigation", "/showUserTunnels.do", 500, true, null,
            SessionInfo.USER_CONSOLE_CONTEXT, null, null, PolicyConstants.SSL_TUNNEL_RESOURCE_TYPE));
        addMenuItem("resources", new MenuItem("userNetworkPlaces", "navigation", "/showUserNetworkPlaces.do", 500, true, null,
            SessionInfo.USER_CONSOLE_CONTEXT, null, null, PolicyConstants.NETWORK_PLACE_RESOURCE_TYPE));

        // Administration

        addMenuItem(null, new MenuItem("configuration", "navigation", null, 100, false, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT));
        addMenuItem(null, new MenuItem("accessControl", "navigation", null, 200, false, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT));
        addMenuItem(null, new MenuItem("globalResources", "navigation", null, 300, false, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT));
        addMenuItem(null, new MenuItem("system", "navigation", null, 300, false, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT));
        
        
        // System menu
        addMenuItem("system", new MenuItem("status", "navigation", "/status.do", 400, true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.STATUS_TYPE_RESOURCE_TYPE, new Permission[] {
                PolicyConstants.PERM_VIEW
            }, null));
        addMenuItem("system", new MenuItem("messageQueue", "navigation", "/messageQueue.do", 400, true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.MESSAGE_QUEUE_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_VIEW, PolicyConstants.PERM_CONTROL, PolicyConstants.PERM_DELETE,
                            PolicyConstants.PERM_SEND
            }, null));
        addMenuItem("system", new MenuItem("shutdown", "navigation", "/showShutdown.do", 500, true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.SERVICE_CONTROL_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_SHUTDOWN, PolicyConstants.PERM_RESTART
            }, null));

        // Configuration

        addMenuItem("configuration", new MenuItem("systemConfiguration", "navigation", "/showSystemConfiguration.do", 100, 
            true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.SYSTEM_CONFIGURATION_RESOURCE_TYPE,
            new Permission[] {
                PolicyConstants.PERM_CHANGE
            }, null));

        addMenuItem("configuration", new MenuItem("extensionStore", "navigation", "/showExtensionStore.do?actionTarget=list", 200,
             true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.EXTENSIONS_RESOURCE_TYPE,
            new Permission[] {
                            PolicyConstants.PERM_INSTALL, PolicyConstants.PERM_UPDATE, PolicyConstants.PERM_DELETE
            }, null));

        addMenuItem("configuration", new MenuItem("keyStore", "navigation", "/showKeyStore.do", 300,  true, null,
                SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.KEYSTORE_RESOURCE_TYPE, new Permission[] {
                    PolicyConstants.PERM_CHANGE
                }, null));
        
        
        addMenuItem("configuration", new MenuItem("replacements", "navigation", "/showReplacements.do", 600, 
            true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.REPLACEMENTS_RESOURCE_TYPE,
            new Permission[] {
                PolicyConstants.PERM_MAINTAIN
            }, null));        
        
        addMenuItem("configuration", new MenuItem("userAttributeDefinitions", "navigation", "/showUserAttributeDefinitions.do", 700, 
            true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.USER_ATTRIBUTE_DEFINITIONS_RESOURCE_TYPE,
            new Permission[] {
                PolicyConstants.PERM_MAINTAIN
            }, null));

        // Access Control

        addMenuItem("accessControl", new MenuItem("authorizedPrincipals", "navigation", "/showAvailableAccounts.do", 100, 
            true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.ACCOUNTS_RESOURCE_TYPE,
            new Permission[] {
                            PolicyConstants.PERM_CREATE, PolicyConstants.PERM_EDIT, PolicyConstants.PERM_DELETE
            }, null));

        addMenuItem("accessControl", new MenuItem("availableRoles", "navigation", "/showAvailableRoles.do", 200,  true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.ROLES_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_CREATE, PolicyConstants.PERM_EDIT, PolicyConstants.PERM_DELETE
            }, null));
        addMenuItem("accessControl", new MenuItem("policies", "navigation", "/policies.do", 300,  true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.POLICY_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN, PolicyConstants.PERM_DELETE, PolicyConstants.PERM_ASSIGN
                            
            }, null));
        
        addMenuItem("accessControl", new ResourcePermissionsMenuItem());
        
        addMenuItem("accessControl", new MenuItem("authenticationSchemes", "navigation", "/showAuthenticationSchemes.do", 500,
                true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.AUTHENTICATION_SCHEMES_RESOURCE_TYPE,
               new Permission[] {
                               PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN, PolicyConstants.PERM_DELETE,
                               PolicyConstants.PERM_ASSIGN
               }, null));
        
        addMenuItem("accessControl", new MenuItem("ipRestrictions", "navigation", "/showAvailableIpRestrictions.do", 600, true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.IP_RESTRICTIONS_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_CREATE, PolicyConstants.PERM_DELETE
            }, null));

        // Global Resources
        addMenuItem("globalResources", new MenuItem("managementWebForwards", "webForwards", "/showWebForwards.do", 100, true, null,
                SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.WEBFORWARD_RESOURCE_TYPE,
                new Permission[] {
                                PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN,
                                PolicyConstants.PERM_DELETE, PolicyConstants.PERM_ASSIGN
                }));
        addMenuItem("globalResources", new MenuItem("networkPlaces", "navigation", "/showNetworkPlaces.do", 200, true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.NETWORK_PLACE_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN,
                            PolicyConstants.PERM_DELETE, PolicyConstants.PERM_ASSIGN
            }, PolicyConstants.NETWORK_PLACE_RESOURCE_TYPE));
        addMenuItem("globalResources", new MenuItem("applicationShortcuts", "navigation", "/showApplicationShortcuts.do", 300, 
            true, null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.APPLICATION_SHORTCUT_RESOURCE_TYPE,
            new Permission[] {
                            PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN,
                            PolicyConstants.PERM_DELETE, PolicyConstants.PERM_ASSIGN
            }));
        addMenuItem("globalResources", new MenuItem("tunnels", "navigation", "/showTunnels.do", 400, true, null,
            SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.SSL_TUNNEL_RESOURCE_TYPE, new Permission[] {
                            PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN,
                            PolicyConstants.PERM_DELETE, PolicyConstants.PERM_ASSIGN
            }));

        addMenuItem("globalResources", new MenuItem("globalProfiles", "navigation", "/showGlobalProfiles.do", 500, true,
                null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, PolicyConstants.PROFILE_RESOURCE_TYPE, new Permission[] {
                                PolicyConstants.PERM_CREATE_EDIT_AND_ASSIGN, PolicyConstants.PERM_EDIT_AND_ASSIGN,
                                PolicyConstants.PERM_DELETE, PolicyConstants.PERM_ASSIGN
                }));
        
        // Help

        addMenuItem(null, new MenuItem("help", "navigation", null, 100, false, SessionInfo.HELP_CONTEXT));
        addMenuItem("help", new MenuItem("support", "navigation", "/showSupport.do", 200, true, SessionInfo.HELP_CONTEXT));
        addMenuItem("help", new MenuItem("about", "navigation", "/showAbout.do", 300, true, SessionInfo.HELP_CONTEXT));

        // Documentation
        addMenuItem("help", new MenuItem("knowledgeBase", "navigation", "http://3sp.com/kb/idx/9/0/", 300, true, "_blank",
            SessionInfo.HELP_CONTEXT));
    }
    
    class ShowChangePasswordMenuItem extends MenuItem {
        ShowChangePasswordMenuItem() {
            super("changePassword", "navigation", "/showChangePassword.do", 300, true, null,
            SessionInfo.USER_CONSOLE_CONTEXT, PolicyConstants.PASSWORD_RESOURCE_TYPE, new Permission[] {
                PolicyConstants.PERM_CHANGE
            }, null);
        }
         
        public boolean isAvailable(int checkNavigationContext, SessionInfo info, HttpServletRequest request) {
            boolean available = super.isAvailable(checkNavigationContext, info, request); 
            if(available) {
                available = CoreServlet.getServlet().getUserDatabase().supportsPasswordChange();
            }
            return available; 
        }
        
    }
    
    class ResourcePermissionsMenuItem extends MenuItem {
        ResourcePermissionsMenuItem() {
            super("resourcePermissions", "navigation", "/resourcePermissions.do", 400,  true,
                null, SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, null, null, null);
        }
         
        public boolean isAvailable(int checkNavigationContext, SessionInfo info, HttpServletRequest request) {
            boolean available = super.isAvailable(checkNavigationContext, info, request);
            if (available) {
                if (CoreServlet.getServlet().getLogonController().isAdministrator(info.getUser())) {
                    available = true;
                } else {
                    try {
                        available = CoreServlet.getServlet().getPolicyDatabase().getPermittingResourcePermissions(null, null,null, info.getUser(), true, false, true).size() > 0;
                    } catch (Exception e) {
                        log.error(
                            "Failed to determine if user is able to delegate any management rights for DELEGATION class.", e);
                    }
                }
            }
            return available;
        }
        
    }
}

⌨️ 快捷键说明

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