if( request.getParameter(BUTTON_ADD_PUBLISHER) != null){
publisher = request.getParameter(TEXTFIELD_PUBLISHERNAME);
if(publisher != null){
if(!publisher.trim().equals("")){
try{
handler.addPublisher(publisher.trim(), new LdapPublisher());
}catch( PublisherExistsException e){
publisherexists=true;
}
}
}
includefile=PAGE_PUBLISHERS;
}
if( request.getParameter(BUTTON_CLONE_PUBLISHER) != null){
String newpublishername = request.getParameter(TEXTFIELD_PUBLISHERNAME);
String oldpublishername = request.getParameter(SELECT_PUBLISHER);
if(oldpublishername != null && newpublishername != null){
if(!newpublishername.trim().equals("") && !oldpublishername.trim().equals("")){
handler.clonePublisher(oldpublishername.trim(),newpublishername.trim());
}
}
includefile=PAGE_PUBLISHERS;
}
}
if( action.equals(ACTION_EDIT_PUBLISHER)){
// Display edit access rules page.
publisher = request.getParameter(HIDDEN_PUBLISHERNAME);
this.publishername = publisher;
if(publisher != null){
if(!publisher.trim().equals("")){
if(request.getParameter(BUTTON_SAVE) != null ||
request.getParameter(BUTTON_TESTCONNECTION) != null){
if(publisherdata == null){
int tokentype = Integer.valueOf(request.getParameter(HIDDEN_PUBLISHERTYPE)).intValue();
if(tokentype == PublisherConst.TYPE_CUSTOMPUBLISHERCONTAINER) {
publisherdata = new CustomPublisherContainer();
}
if(tokentype == PublisherConst.TYPE_LDAPPUBLISHER) {
publisherdata = new LdapPublisher();
}
if (tokentype == PublisherConst.TYPE_LDAPSEARCHPUBLISHER) {
publisherdata = new LdapSearchPublisher();
}
if(tokentype == PublisherConst.TYPE_ADPUBLISHER) {
publisherdata = new ActiveDirectoryPublisher();
}
if(tokentype == PublisherConst.TYPE_VAPUBLISHER) {
publisherdata = new ValidationAuthorityPublisher();
}
}
// Save changes.
// General settings
String value = request.getParameter(TEXTAREA_DESCRIPTION);
if(value != null){
value = value.trim();
publisherdata.setDescription(value);
}
value = request.getParameter(CHECKBOX_ONLYUSEQUEUE);
publisherdata.setOnlyUseQueue(value != null && value.equals(CHECKBOX_VALUE));
value = request.getParameter(CHECKBOX_KEEPPUBLISHEDINQUEUE);
publisherdata.setKeepPublishedInQueue(value != null && value.equals(CHECKBOX_VALUE));
value = request.getParameter(CHECKBOX_USEQUEUEFORCRLS);
publisherdata.setUseQueueForCRLs(value != null && value.equals(CHECKBOX_VALUE));
value = request.getParameter(CHECKBOX_USEQUEUEFORCERTIFICATES);
publisherdata.setUseQueueForCertificates(value != null && value.equals(CHECKBOX_VALUE));
if(publisherdata instanceof CustomPublisherContainer){
value = request.getParameter(TEXTFIELD_CUSTOMCLASSPATH);
if(value != null){
value = value.trim();
((CustomPublisherContainer) publisherdata).setClassPath(value);
}
value = request.getParameter(TEXTAREA_CUSTOMPROPERTIES);
if(value != null){
value = value.trim();
((CustomPublisherContainer) publisherdata).setPropertyData(value);
}
}
if(publisherdata instanceof LdapPublisher){
LdapPublisher ldappublisher = (LdapPublisher) publisherdata;
value = request.getParameter(TEXTFIELD_LDAPHOSTNAME);
if(value != null){
value = value.trim();
ldappublisher.setHostnames(value);
}
value = request.getParameter(TEXTFIELD_LDAPPORT);
if(value != null){
value = value.trim();
ldappublisher.setPort(value);
}
value = request.getParameter(TEXTFIELD_LDAPBASEDN);
if(value != null){
value = value.trim();
ldappublisher.setBaseDN(value);
}
value = request.getParameter(TEXTFIELD_LDAPLOGINDN);
if(value != null){
value = value.trim();
ldappublisher.setLoginDN(value);
}
value = request.getParameter(PASSWORD_LDAPLOGINPASSWORD);
if(value != null){
value = value.trim();
ldappublisher.setLoginPassword(value);
}
value = request.getParameter(TEXTFIELD_LDAPTIMEOUT);
if(value != null){
value = value.trim();
ldappublisher.setConnectionTimeOut(Integer.parseInt(value));
}
value = request.getParameter(TEXTFIELD_LDAPREADTIMEOUT);
if(value != null){
value = value.trim();
ldappublisher.setReadTimeOut(Integer.parseInt(value));
}
value = request.getParameter(TEXTFIELD_LDAPSTORETIMEOUT);
if(value != null){
value = value.trim();
ldappublisher.setStoreTimeOut(Integer.parseInt(value));
}
value = request.getParameter(TEXTFIELD_LDAPUSEROBJECTCLASS);
if(value != null){
value = value.trim();
ldappublisher.setUserObjectClass(value);
}
value = request.getParameter(TEXTFIELD_LDAPCAOBJECTCLASS);
if(value != null){
value = value.trim();
ldappublisher.setCAObjectClass(value);
}
value = request.getParameter(TEXTFIELD_LDAPUSERCERTATTRIBUTE);
if(value != null){
value = value.trim();
ldappublisher.setUserCertAttribute(value);
}
value = request.getParameter(TEXTFIELD_LDAPCACERTATTRIBUTE);
if(value != null){
value = value.trim();
ldappublisher.setCACertAttribute(value);
}
value = request.getParameter(TEXTFIELD_LDAPCRLATTRIBUTE);
if(value != null){
value = value.trim();
ldappublisher.setCRLAttribute(value);
}
value = request.getParameter(TEXTFIELD_LDAPDELTACRLATTRIBUTE);
if(value != null){
value = value.trim();
ldappublisher.setDeltaCRLAttribute(value);
}
value = request.getParameter(TEXTFIELD_LDAPARLATTRIBUTE);
if(value != null){
value = value.trim();
ldappublisher.setARLAttribute(value);
}
value = request.getParameter(CHECKBOX_LDAPUSESSL);
if(value != null) {
ldappublisher.setUseSSL(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setUseSSL(false);
}
value = request.getParameter(CHECKBOX_LDAPCREATENONEXISTING);
if(value != null) {
ldappublisher.setCreateNonExistingUsers(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setCreateNonExistingUsers(false);
}
value = request.getParameter(CHECKBOX_LDAPMODIFYEXISTING);
if(value != null) {
ldappublisher.setModifyExistingUsers(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setModifyExistingUsers(false);
}
value = request.getParameter(CHECKBOX_LDAPMODIFYEXISTINGATTRIBUTES);
if(value != null) {
ldappublisher.setModifyExistingAttributes(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setModifyExistingAttributes(false);
}
value = request.getParameter(CHECKBOX_LDAPADDNONEXISTING);
if(value != null) {
ldappublisher.setAddNonExistingAttributes(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setAddNonExistingAttributes(false);
}
value = request.getParameter(CHECKBOX_LDAP_CREATEINTERMEDIATENODES);
if(value != null) {
ldappublisher.setCreateIntermediateNodes(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setCreateIntermediateNodes(false);
}
value = request.getParameter(CHECKBOX_LDAPADDMULTIPLECERTIFICATES);
if(value != null) {
ldappublisher.setAddMultipleCertificates(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setAddMultipleCertificates(false);
}
value = request.getParameter(CHECKBOX_LDAP_REVOKE_REMOVECERTIFICATE);
if(value != null) {
ldappublisher.setRemoveRevokedCertificates(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setRemoveRevokedCertificates(false);
}
value = request.getParameter(CHECKBOX_LDAP_REVOKE_REMOVEUSERONCERTREVOKE);
if(value != null) {
ldappublisher.setRemoveUsersWhenCertRevoked(value.equals(CHECKBOX_VALUE));
}
else {
ldappublisher.setRemoveUsersWhenCertRevoked(false);
}
value = request.getParameter(CHECKBOX_LDAP_SET_USERPASSWORD);
if(value != null) {
ldappublisher.setUserPassword(value.equals(CHECKBOX_VALUE));
} else {
ldappublisher.setUserPassword(false);
}
String[] values = request.getParameterValues(SELECT_LDAPUSEFIELDINLDAPDN);
if(values != null){
ArrayList<Integer> usefields = new ArrayList<Integer>();
for(int i=0;i< values.length;i++){
usefields.add(Integer.valueOf(values[i]));
}
ldappublisher.setUseFieldInLdapDN(usefields);
}
}
if (publisherdata instanceof LdapSearchPublisher) {
LdapSearchPublisher ldapsearchpublisher = (LdapSearchPublisher) publisherdata;
value = request.getParameter(TEXTFIELD_LDAPSEARCHBASEDN);
if (value != null) {
value = value.trim();
ldapsearchpublisher.setSearchBaseDN(value);
}
value = request.getParameter(TEXTFIELD_LDAPSEARCHFILTER);
if (value != null) {
value = value.trim();
ldapsearchpublisher.setSearchFilter(value);
}
}
if(publisherdata instanceof ActiveDirectoryPublisher){
ActiveDirectoryPublisher adpublisher = (ActiveDirectoryPublisher) publisherdata;
value = request.getParameter(SELECT_ADSAMACCOUNTNAME);
if(value != null){
value = value.trim();
adpublisher.setSAMAccountName(Integer.parseInt(value));
}
value = request.getParameter(TEXTFIELD_ADUSERDESCRIPTION);
if(value != null){
value = value.trim();
adpublisher.setUserDescription(value);
}
value = request.getParameter(CHECKBOX_ADUSEPASSWORD);
if(value != null) {
adpublisher.setUseUserPassword(value.equals(CHECKBOX_VALUE));
}
else {
adpublisher.setUseUserPassword(false);
}
value = request.getParameter(SELECT_ADUSERACCOUNTCONTROL);
if(value != null) {
value = value.trim();
adpublisher.setUserAccountControl(Integer.parseInt(value));
}
}
// Get parameters for ValidationAuthorityPublisher
if(publisherdata instanceof ValidationAuthorityPublisher){
final ValidationAuthorityPublisher vaPub = (ValidationAuthorityPublisher) publisherdata;
value = request.getParameter(TEXTFIELD_VA_DATASOURCE);
if(value != null){
value = value.trim();
vaPub.setDataSource(value);
}
final String vCert = request.getParameter(CHECKBOX_VA_STORECERT);
final boolean isCert = vCert!=null && vCert.equals(CHECKBOX_VALUE);
vaPub.setStoreCert( isCert );
final String vCRL = request.getParameter(CHECKBOX_VA_STORECRL);
vaPub.setStoreCRL( isCert && vCRL!=null && vCRL.equals(CHECKBOX_VALUE) );
}
if(request.getParameter(BUTTON_SAVE) != null){
handler.changePublisher(publisher,publisherdata);
includefile=PAGE_PUBLISHERS;
}
if(request.getParameter(BUTTON_TESTCONNECTION)!= null){
connectionmessage = true;
handler.changePublisher(publisher,publisherdata);
try{
handler.testConnection(publisher);
connectionsuccessful = true;
}catch(PublisherConnectionException pce){
connectionerrormessage = pce.getMessage();
}
includefile=PAGE_PUBLISHER;
}
}
if(request.getParameter(BUTTON_CANCEL) != null){
// Don't save changes.
includefile=PAGE_PUBLISHERS;
}
}
}
}
if( action.equals(ACTION_CHANGE_PUBLISHERTYPE)){
this.publishername = request.getParameter(HIDDEN_PUBLISHERNAME);
String value = request.getParameter(SELECT_PUBLISHERTYPE);
if(value!=null){
int profiletype = Integer.parseInt(value);
switch(profiletype){
case PublisherConst.TYPE_CUSTOMPUBLISHERCONTAINER :
publisherdata = new CustomPublisherContainer();
break;
case PublisherConst.TYPE_LDAPPUBLISHER :
publisherdata = new LdapPublisher();
break;
case PublisherConst.TYPE_LDAPSEARCHPUBLISHER:
publisherdata = new LdapSearchPublisher();
break;
case PublisherConst.TYPE_ADPUBLISHER :