001 /*
002 * Copyright 2007-2008 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.rice.ksb.security.admin.web;
017
018 import java.security.KeyStoreException;
019
020 import javax.servlet.http.HttpServletRequest;
021
022 import org.apache.commons.lang.StringUtils;
023 import org.apache.struts.action.ActionErrors;
024 import org.apache.struts.action.ActionForm;
025 import org.apache.struts.action.ActionMapping;
026 import org.apache.struts.action.ActionMessage;
027 import org.kuali.rice.ksb.service.KSBServiceLocator;
028
029 /**
030 * Struts action form for the {@link JavaSecurityManagementAction}
031 *
032 * @author Kuali Rice Team (rice.collab@kuali.org)
033 *
034 */
035 public class JavaSecurityManagementForm extends ActionForm {
036
037 private static final long serialVersionUID = -46462912979586142L;
038
039 private String alias;
040 private String password;
041 private String passwordVerify;
042
043 /**
044 * This method is used to check for completeness of the form as well as verification of the desired password
045 */
046 public ActionErrors validateGenerateClientKeystore(ActionMapping mapping, HttpServletRequest request) {
047 ActionErrors errors = new ActionErrors();
048 // check that all data is filled in
049 if (StringUtils.isBlank(getAlias())) {
050 errors.add("property", new ActionMessage("Alias must have a valid value.",false));
051 }
052 if (StringUtils.isBlank(getPassword()) || StringUtils.isBlank(getPasswordVerify()) ) {
053 errors.add("property", new ActionMessage("Password must have a valid value in both fields.",false));
054 }
055 if (errors.isEmpty()) {
056 // if password and passwordVerify are not equal error out
057 if (!StringUtils.equals(getPassword(), getPasswordVerify())) {
058 errors.add("property", new ActionMessage("Passwords do not match.",false));
059 }
060 }
061 if (errors.isEmpty()) {
062 try {
063 if (KSBServiceLocator.getJavaSecurityManagementService().isAliasInKeystore(getAlias())) {
064 errors.add("property", new ActionMessage("Alias '" + getAlias() + "' already exists in keystore.",false));
065 }
066 } catch (KeyStoreException e) {
067 errors.add("property", new ActionMessage("Could not check keystore file for alias '" + getAlias(),false));
068 }
069 }
070 return errors;
071 }
072
073 public String getAlias() {
074 return this.alias;
075 }
076 public void setAlias(String alias) {
077 if (alias == null) {
078 this.alias = null;
079 } else {
080 this.alias = alias.trim();
081 }
082 }
083 public String getPassword() {
084 return this.password;
085 }
086 public void setPassword(String password) {
087 this.password = password;
088 }
089 public String getPasswordVerify() {
090 return this.passwordVerify;
091 }
092 public void setPasswordVerify(String passwordVerify) {
093 this.passwordVerify = passwordVerify;
094 }
095
096 }