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);
}
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();
}
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);
}
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);
}
}
}
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());
}
Aggregations