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

📄 favoritesform.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.navigation.forms;

import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.navigation.AbstractFavoriteItem;
import com.sslexplorer.navigation.FavoriteResourceType;
import com.sslexplorer.navigation.Favorite;
import com.sslexplorer.navigation.WrappedFavoriteItem;
import com.sslexplorer.policyframework.ResourceType;
import com.sslexplorer.policyframework.ResourceUtil;
import com.sslexplorer.security.Constants;
import com.sslexplorer.security.User;
import com.sslexplorer.table.AbstractTableItemTableModel;
import com.sslexplorer.table.forms.AbstractPagerForm;
import com.sslexplorer.util.TicketGenerator;

/**
 * Implementation of a {@link com.sslexplorer.table.actions.AbstractPagerAction}
 * that provides a paged list of all the users configured favorites including
 * both <i>User Favorites</i> and <i>Policy Favorites</i>.
 * 
 * @author Brett Smith <a href="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
 * @version $Revision: 1.41 $
 */
public class FavoritesForm extends AbstractPagerForm {

    final static Log log = LogFactory.getLog(FavoritesForm.class);

    /**
     * Constructor
     */
    public FavoritesForm() {
        super(new FavoritesModel());
    }

    /**
     * Initialise the form by loading all the favorites.
     * 
     * @param request request
     * @param defaultSortColumnId default sort column
     */
    public void initialize(HttpServletRequest request, String defaultSortColumnId) {
        super.initialize(request.getSession(), defaultSortColumnId);
        getModel().clear();
        try {
            User user = CoreServlet.getServlet().getLogonController().getUser(request);
            for (Iterator i = CoreServlet.getServlet().getPolicyDatabase().getResourceTypes(null).iterator(); i.hasNext();) {
                ResourceType rt = (ResourceType) i.next();
                if (rt instanceof FavoriteResourceType) {
                    FavoriteResourceType frt = (FavoriteResourceType) rt;
                    try {
                        List fl = CoreServlet.getServlet().getSystemDatabase().getFavorites(frt.getResourceTypeId(), user);
                        for (Iterator j = fl.iterator(); j.hasNext();) {
                            Favorite f = (Favorite) j.next();
                            try {
                                WrappedFavoriteItem wfi = frt.createWrappedFavoriteItem(f.getFavoriteKey(), request, AbstractFavoriteItem.USER_FAVORITE);
                                if(wfi == null) {
                                    CoreServlet.getServlet().getSystemDatabase().removeFavorite(f.getType(), f.getFavoriteKey(), f.getUsername());
                                }
                                getModel().addItem(wfi);
                            } catch (Exception e) {
                                log.error("Failed to add user favorite " + f.getFavoriteKey() + ".", e);
                            }
                        }
                    } catch (Exception e) {
                        log.error("Failed to create user favorites for resource type " + frt.getResourceTypeId());
                    }
                    try {
                        for (Iterator iter = ResourceUtil.filterResourceIdsForGlobalFavorites(CoreServlet.getServlet().getPolicyDatabase().getGrantedResourcesOfType(user,
                            frt), rt).iterator(); iter.hasNext();) {
                            Integer element = (Integer) iter.next();
                            try {
                                WrappedFavoriteItem wfi = frt.createWrappedFavoriteItem(element.intValue(), request, AbstractFavoriteItem.GLOBAL_FAVORITE);
                                if(wfi == null) {
                                    // TODO ?
                                }
                                else {
                                    if(!getModel().contains(wfi)) {
                                        getModel().addItem(wfi);
                                    }
                                }
                            } catch (Exception e) {
                                log.error("Failed to add policy favorite for resource " + element.intValue() + ".", e);
                            }
                        }
                    } catch (Exception e) {
                        log.error("Failed to create policy favorites for resource type " + frt.getResourceTypeId());
                    }
    
                }
            }
        }
        catch(Exception e) {
            log.error("Failed to create favorite items.", e);
        }
        checkSort();
        getPager().rebuild(getFilterText());
        /*
         * Store a ticket for use with launching a web folder without
         * authenticating. This ticket will only be available until it is used
         */
        if (request.getSession().getAttribute(Constants.WEB_FOLDER_LAUNCH_TICKET) == null) {
            request.getSession().setAttribute(Constants.WEB_FOLDER_LAUNCH_TICKET,
                            TicketGenerator.getInstance().generateUniqueTicket("W", 6));
        }

    }

    // Supporting classes

    static class FavoritesModel extends AbstractTableItemTableModel {

        public int getColumnWidth(int col) {
            return 0;
        }

        public String getId() {
            return "favorites";
        }

        public int getColumnCount() {
            return 3;
        }

        public String getColumnName(int col) {
            switch (col) {
                case 0:
                    return "name";
                case 1:
                    return "resourceType";
                default:
                    return "subType";
            }
        }

        public Class getColumnClass(int col) {
            switch (col) {
                case 0:
                    return String.class;
                case 1:
                    return ResourceType.class;
                default:
                    return String.class;
            }
        }

    }

}

⌨️ 快捷键说明

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