| /******************************************************************************* |
| * Copyright (c) 2012 Tasktop Technologies and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Tasktop Technologies - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.mylyn.commons.repositories.core.auth; |
| |
| import org.eclipse.core.runtime.Assert; |
| |
| /** |
| * @author Steffen Pingel |
| */ |
| public class CertificateCredentials extends AuthenticationCredentials { |
| |
| private final String keyStoreFileName; |
| |
| private final String keyStoreType; |
| |
| private final String password; |
| |
| private final boolean savePassword; |
| |
| private final boolean hasSecrets; |
| |
| public CertificateCredentials(String keyStoreFileName, String password, String keyStoreType) { |
| this(keyStoreFileName, password, keyStoreType, true, true); |
| } |
| |
| public CertificateCredentials(String keyStoreFileName, String password, String keyStoreType, boolean savePassword) { |
| this(keyStoreFileName, password, keyStoreType, savePassword, true); |
| } |
| |
| CertificateCredentials(String keyStoreFileName, String password, String keyStoreType, boolean savePassword, |
| boolean hasSecrets) { |
| Assert.isNotNull(password); |
| this.keyStoreFileName = keyStoreFileName; |
| this.password = password; |
| this.keyStoreType = keyStoreType; |
| this.savePassword = savePassword; |
| this.hasSecrets = hasSecrets; |
| } |
| |
| protected CertificateCredentials(ICredentialsStore store, String prefix, boolean loadSecrets) { |
| this( |
| store.get(prefix + ".keyStoreFileName", null), (loadSecrets) ? store.get(prefix + ".password", "") : "", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ |
| store.get(prefix + ".keyStoreType", null), store.getBoolean(prefix + ".savePassword", false), loadSecrets); //$NON-NLS-1$ //$NON-NLS-2$ |
| } |
| |
| @Override |
| public void clear(ICredentialsStore store, String prefix) { |
| store.remove(prefix + ".keyStoreFileName"); //$NON-NLS-1$ |
| store.remove(prefix + ".password"); //$NON-NLS-1$ |
| store.remove(prefix + ".keyStoreType"); //$NON-NLS-1$ |
| store.remove(prefix + ".savePassword"); //$NON-NLS-1$ |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (this == obj) { |
| return true; |
| } |
| if (obj == null) { |
| return false; |
| } |
| if (getClass() != obj.getClass()) { |
| return false; |
| } |
| CertificateCredentials other = (CertificateCredentials) obj; |
| if (hasSecrets != other.hasSecrets) { |
| return false; |
| } |
| if (keyStoreFileName == null) { |
| if (other.keyStoreFileName != null) { |
| return false; |
| } |
| } else if (!keyStoreFileName.equals(other.keyStoreFileName)) { |
| return false; |
| } |
| if (keyStoreType == null) { |
| if (other.keyStoreType != null) { |
| return false; |
| } |
| } else if (!keyStoreType.equals(other.keyStoreType)) { |
| return false; |
| } |
| if (password == null) { |
| if (other.password != null) { |
| return false; |
| } |
| } else if (!password.equals(other.password)) { |
| return false; |
| } |
| if (savePassword != other.savePassword) { |
| return false; |
| } |
| return true; |
| } |
| |
| public String getKeyStoreFileName() { |
| return keyStoreFileName; |
| } |
| |
| public String getKeyStoreType() { |
| return keyStoreType; |
| } |
| |
| public String getPassword() { |
| return password; |
| } |
| |
| public boolean getSavePassword() { |
| return savePassword; |
| } |
| |
| @Override |
| public int hashCode() { |
| final int prime = 31; |
| int result = 1; |
| result = prime * result + (hasSecrets ? 1231 : 1237); |
| result = prime * result + ((keyStoreFileName == null) ? 0 : keyStoreFileName.hashCode()); |
| result = prime * result + ((keyStoreType == null) ? 0 : keyStoreType.hashCode()); |
| result = prime * result + ((password == null) ? 0 : password.hashCode()); |
| result = prime * result + (savePassword ? 1231 : 1237); |
| return result; |
| } |
| |
| @Override |
| public void save(ICredentialsStore store, String prefix) { |
| store.put(prefix + ".keyStoreFileName", keyStoreFileName, false); //$NON-NLS-1$ |
| if (hasSecrets) { |
| store.put(prefix + ".password", password, true); //$NON-NLS-1$ |
| } |
| store.put(prefix + ".keyStoreType", keyStoreType, false); //$NON-NLS-1$ |
| store.putBoolean(prefix + ".savePassword", savePassword, false); //$NON-NLS-1$ |
| } |
| |
| @Override |
| public String toString() { |
| StringBuilder builder = new StringBuilder(); |
| builder.append("CertificateCredentials [keyStoreFileName="); //$NON-NLS-1$ |
| builder.append(keyStoreFileName); |
| builder.append(", password="); //$NON-NLS-1$ |
| builder.append((password == null) ? password : "********"); //$NON-NLS-1$ |
| builder.append(", keyStoreType="); //$NON-NLS-1$ |
| builder.append(keyStoreType); |
| builder.append(", savePassword="); //$NON-NLS-1$ |
| builder.append(savePassword); |
| builder.append(", hasSecrets="); //$NON-NLS-1$ |
| builder.append(hasSecrets); |
| builder.append("]"); //$NON-NLS-1$ |
| return builder.toString(); |
| } |
| |
| } |