Search in sources :

Example 1 with AuthPropertiesModel

use of com.sun.identity.console.authentication.model.AuthPropertiesModel in project OpenAM by OpenRock.

the class AuthPropertiesViewBean method populateConfigTable.

private void populateConfigTable() {
    tablePopulated = true;
    CCActionTableModel tableModel = (CCActionTableModel) propertySheetModel.getModel(AUTH_CONFIG_TABLE);
    tableModel.clearAll();
    // get config names from previous pass. Need to use an ordered set
    // here to assure the same order is retained during the request cycle.
    OrderedSet configSet = (OrderedSet) removePageSessionAttribute(AUTH_CONFIG_TABLE);
    // no instances if this is the 1st pass, create it now
    if (configSet == null || configSet.isEmpty()) {
        AuthPropertiesModel model = (AuthPropertiesModel) getModel();
        String realm = (String) getPageSessionAttribute(AMAdminConstants.CURRENT_REALM);
        if ((realm == null) || (realm.length() == 0)) {
            realm = AMModelBase.getStartDN(getRequestContext().getRequest());
        }
        configSet = new OrderedSet();
        configSet.addAll(AuthConfigurationModelImpl.getNamedConfigurations(model.getUserSSOToken(), realm));
    }
    // add the data to the table
    boolean firstEntry = true;
    for (Iterator i = configSet.iterator(); i.hasNext(); ) {
        String name = (String) i.next();
        if (!firstEntry) {
            tableModel.appendRow();
        } else {
            firstEntry = false;
        }
        tableModel.setValue(CONFIG_NAME_COLUMN_DATA, name);
        tableModel.setValue(CONFIG_ACTION_COLUMN_HREF, stringToHex(name));
        tableModel.setValue(CONFIG_ACTION_COLUMN_HREF_LABEL, "authentication.module.instances.action.label");
    }
    // set the instances in the page session so when a request comes in
    // we can prepopulate the table model.
    setPageSessionAttribute(AUTH_CONFIG_TABLE, configSet);
}
Also used : OrderedSet(com.sun.identity.shared.datastruct.OrderedSet) CCActionTableModel(com.sun.web.ui.model.CCActionTableModel) Iterator(java.util.Iterator) AuthPropertiesModel(com.sun.identity.console.authentication.model.AuthPropertiesModel)

Example 2 with AuthPropertiesModel

use of com.sun.identity.console.authentication.model.AuthPropertiesModel in project OpenAM by OpenRock.

the class AuthPropertiesViewBean method handleDeleteInstanceButtonRequest.

/**
     * Handles the delete authentication instance request.
     *
     * @param event Request Invocation Event.
     */
public void handleDeleteInstanceButtonRequest(RequestInvocationEvent event) throws ModelControlException {
    CCActionTable table = (CCActionTable) getChild(AUTH_INSTANCE_TABLE);
    table.restoreStateData();
    CCActionTableModel tableModel = (CCActionTableModel) propertySheetModel.getModel(AUTH_INSTANCE_TABLE);
    Integer[] selected = tableModel.getSelectedRows();
    Set instances = new HashSet(selected.length * 2);
    for (int i = 0; i < selected.length; i++) {
        tableModel.setRowIndex(selected[i].intValue());
        instances.add((String) tableModel.getValue(NAME_COLUMN_DATA));
    }
    try {
        AuthPropertiesModel model = (AuthPropertiesModel) getModel();
        model.removeAuthInstance(instances);
        /* 
             * There is a timing issue with the backend after an 
             * instance is deleted causing the UI to be out of synch with the 
             * backend. We are storing the instances removed to be used when 
             * the page is redrawn to ensure the deleted instances are not 
             * put back into the instance table.
             */
        setPageSessionAttribute(INSTANCES_REMOVED, (Serializable) instances);
        if (selected.length == 1) {
            setInlineAlertMessage(CCAlert.TYPE_INFO, "message.information", "authentication.instance.deleted");
        } else {
            setInlineAlertMessage(CCAlert.TYPE_INFO, "message.information", "authentication.instance.deleted.multiple");
        }
        removePageSessionAttribute(AUTH_INSTANCE_TABLE);
    } catch (AMConsoleException e) {
        setInlineAlertMessage(CCAlert.TYPE_ERROR, "message.error", e.getMessage());
    }
    forwardTo();
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) OrderedSet(com.sun.identity.shared.datastruct.OrderedSet) CCActionTableModel(com.sun.web.ui.model.CCActionTableModel) AuthPropertiesModel(com.sun.identity.console.authentication.model.AuthPropertiesModel) CCActionTable(com.sun.web.ui.view.table.CCActionTable) AMConsoleException(com.sun.identity.console.base.model.AMConsoleException) HashSet(java.util.HashSet)

Example 3 with AuthPropertiesModel

use of com.sun.identity.console.authentication.model.AuthPropertiesModel in project OpenAM by OpenRock.

the class AuthPropertiesViewBean method populateInstanceTable.

private void populateInstanceTable() {
    tablePopulated = true;
    CCActionTableModel tableModel = (CCActionTableModel) propertySheetModel.getModel(AUTH_INSTANCE_TABLE);
    tableModel.clearAll();
    boolean firstEntry = true;
    Map instanceMap = new HashMap();
    AuthPropertiesModel model = (AuthPropertiesModelImpl) getModel();
    Set tmp = model.getAuthInstances();
    /* 
         * These instance were deleted in the previous request. This
         * is needed because the getAuthInstances call may return the 
         * instances that were just deleted.
         */
    Set removedInstances = (Set) removePageSessionAttribute(INSTANCES_REMOVED);
    for (Iterator i = tmp.iterator(); i.hasNext(); ) {
        AMAuthenticationInstance inst = (AMAuthenticationInstance) i.next();
        String name = inst.getName();
        if ((removedInstances == null) || (!removedInstances.contains(name))) {
            instanceMap.put(name, inst);
        }
    }
    /*
        * get instance names from previous pass. Need to use an ordered set
        * here to assure the same order is retained during the request cycle.
        */
    OrderedSet instanceSet = (OrderedSet) removePageSessionAttribute(AUTH_INSTANCE_TABLE);
    // no instances if this is the 1st pass, create it now
    if (instanceSet == null) {
        instanceSet = new OrderedSet();
        instanceSet.addAll(instanceMap.keySet());
    }
    AMAuthenticationManager mgr = null;
    try {
        mgr = new AMAuthenticationManager(model.getUserSSOToken(), "/");
    } catch (AMConfigurationException e) {
        debug.warning("Could not create Authentication Manager. Using non-localized type names", e);
    }
    for (Iterator i = instanceSet.iterator(); i.hasNext(); ) {
        String name = (String) i.next();
        AMAuthenticationInstance instance = (AMAuthenticationInstance) instanceMap.get(name);
        /*
            * check if instance still exists. This can happen if user goes
            * the the advanced core properties page and removes an auth type
            * from the available auth instances list.
            */
        if (instance != null) {
            if (!firstEntry) {
                tableModel.appendRow();
            } else {
                firstEntry = false;
            }
            String type = instance.getType();
            if (model.hasAuthAttributes(type)) {
                tableModel.setValue(NAME_COLUMN_DATA, name);
                tableModel.setValue(ACTION_COLUMN_HREF, stringToHex(name));
                tableModel.setValue(NAME_COLUMN_DATA_NO_HREF, "");
            } else {
                tableModel.setValue(NAME_COLUMN_DATA, "");
                tableModel.setValue(ACTION_COLUMN_HREF, stringToHex(name));
                tableModel.setValue(NAME_COLUMN_DATA_NO_HREF, name);
            }
            if (mgr != null) {
                try {
                    type = model.getLocalizedServiceName(mgr.getAuthenticationSchema(type).getServiceName());
                } catch (AMConfigurationException e) {
                    if (debug.warningEnabled()) {
                        debug.warning("Could not get schema for type " + type + ". Using non-localized name.", e);
                    }
                }
            }
            tableModel.setValue(TYPE_COLUMN_DATA, type);
        }
    }
    /*
        * set the instances in the page session so when a request comes in 
        * we can prepopulate the table model. 
        */
    setPageSessionAttribute(AUTH_INSTANCE_TABLE, instanceSet);
}
Also used : OrderedSet(com.sun.identity.shared.datastruct.OrderedSet) HashSet(java.util.HashSet) Set(java.util.Set) OrderedSet(com.sun.identity.shared.datastruct.OrderedSet) CCActionTableModel(com.sun.web.ui.model.CCActionTableModel) HashMap(java.util.HashMap) Iterator(java.util.Iterator) AuthPropertiesModel(com.sun.identity.console.authentication.model.AuthPropertiesModel) AMConfigurationException(com.sun.identity.authentication.config.AMConfigurationException) AMAuthenticationInstance(com.sun.identity.authentication.config.AMAuthenticationInstance) HashMap(java.util.HashMap) Map(java.util.Map) AuthPropertiesModelImpl(com.sun.identity.console.authentication.model.AuthPropertiesModelImpl) AMAuthenticationManager(com.sun.identity.authentication.config.AMAuthenticationManager)

Example 4 with AuthPropertiesModel

use of com.sun.identity.console.authentication.model.AuthPropertiesModel in project OpenAM by OpenRock.

the class EditAuthTypeViewBean method beginDisplay.

/**
     * This will populate the property sheet with attribute values for display. If this is called after
     * a dynamic request the values that was present on the UI (which might not have been persisted) will be used.
     * @param event The display event.
     * @throws ModelControlException
     */
public void beginDisplay(DisplayEvent event) throws ModelControlException {
    super.beginDisplay(event);
    final AuthPropertiesModel model = getAuthModel();
    final String instance = (String) getPageSessionAttribute(SERVICE_TYPE);
    final AMPropertySheet propertySheet = (AMPropertySheet) getChild(PROPERTY_ATTRIBUTE);
    Map valueMap = unsavedAttributeValues;
    if (model != null && propertySheet != null) {
        // If this is not a dynamic request the UI is set with persisted values
        if (!dynamicRequest) {
            valueMap = model.getInstanceValues(instance);
        }
        if (valueMap != null) {
            propertySheet.setAttributeValues(valueMap, model);
        }
    }
}
Also used : AMPropertySheet(com.sun.identity.console.base.AMPropertySheet) AuthPropertiesModel(com.sun.identity.console.authentication.model.AuthPropertiesModel) Map(java.util.Map)

Example 5 with AuthPropertiesModel

use of com.sun.identity.console.authentication.model.AuthPropertiesModel in project OpenAM by OpenRock.

the class AuthConfigViewBean method getInstanceNames.

/*
     * Iterate through the list of known AuthInstances and get the 
     * instance name. Use those names to create a set, then sort that set
     * of names.
     */
private List getInstanceNames() {
    AuthPropertiesModel apm = getPropertiesModel();
    Set tmp = apm.getAuthInstances();
    Set instances = new HashSet(tmp.size() * 2);
    for (Iterator i = tmp.iterator(); i.hasNext(); ) {
        AMAuthenticationInstance inst = (AMAuthenticationInstance) i.next();
        instances.add(inst.getName());
    }
    return AMFormatUtils.sortItems(instances, apm.getUserLocale());
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) Iterator(java.util.Iterator) AuthPropertiesModel(com.sun.identity.console.authentication.model.AuthPropertiesModel) AMAuthenticationInstance(com.sun.identity.authentication.config.AMAuthenticationInstance) HashSet(java.util.HashSet)

Aggregations

AuthPropertiesModel (com.sun.identity.console.authentication.model.AuthPropertiesModel)14 Map (java.util.Map)6 OrderedSet (com.sun.identity.shared.datastruct.OrderedSet)4 Iterator (java.util.Iterator)4 AMPropertySheet (com.sun.identity.console.base.AMPropertySheet)3 AMConsoleException (com.sun.identity.console.base.model.AMConsoleException)3 CCActionTableModel (com.sun.web.ui.model.CCActionTableModel)3 HashSet (java.util.HashSet)3 Set (java.util.Set)3 AMAuthenticationInstance (com.sun.identity.authentication.config.AMAuthenticationInstance)2 HashMap (java.util.HashMap)2 OptionList (com.iplanet.jato.view.html.OptionList)1 AMAuthenticationManager (com.sun.identity.authentication.config.AMAuthenticationManager)1 AMConfigurationException (com.sun.identity.authentication.config.AMConfigurationException)1 AuthPropertiesModelImpl (com.sun.identity.console.authentication.model.AuthPropertiesModelImpl)1 AMPropertySheetModel (com.sun.identity.console.base.model.AMPropertySheetModel)1 CCDropDownMenu (com.sun.web.ui.view.html.CCDropDownMenu)1 CCActionTable (com.sun.web.ui.view.table.CCActionTable)1