| /* |
| * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation from Oracle TopLink |
| package org.eclipse.persistence.internal.eis.adapters.aq; |
| |
| import jakarta.resource.cci.*; |
| |
| /** |
| * Connection spec for AQ JCA adapter. |
| * |
| * @author James |
| * @since OracleAS TopLink 10<i>g</i> (10.0.3) |
| */ |
| public class AQConnectionSpec implements ConnectionSpec { |
| |
| /** AQ database user name. */ |
| protected String user; |
| |
| /** AQ database user password. */ |
| protected char[] password; |
| |
| /** Database JDBC URL. */ |
| protected String url; |
| |
| /** DataSource JNDI name. */ |
| protected String datasource; |
| |
| /** |
| * PUBLIC: |
| * Default constructor. |
| */ |
| public AQConnectionSpec() { |
| this.user = ""; |
| this.password = new char[0]; |
| this.url = "jdbc:oracle:thin@localhost:1521:orcl"; |
| this.datasource = ""; |
| } |
| |
| /** |
| * PUBLIC: |
| * Construct the spec with the default directory. |
| */ |
| public AQConnectionSpec(String user, String password, String url) { |
| this.user = user; |
| setPassword(password); |
| this.url = url; |
| } |
| |
| /** |
| * PUBLIC: |
| * Return the JDBC url. |
| */ |
| public String getURL() { |
| return url; |
| } |
| |
| /** |
| * PUBLIC: |
| * Set the JDBC url. |
| */ |
| public void setURL(String url) { |
| this.url = url; |
| } |
| |
| /** |
| * PUBLIC: |
| * Return the DataSource JNDI name. |
| */ |
| public String getDatasource() { |
| return datasource; |
| } |
| |
| /** |
| * PUBLIC: |
| * Set the DataSource JNDI name. |
| */ |
| public void setDatasource(String datasource) { |
| this.datasource = datasource; |
| } |
| |
| /** |
| * PUBLIC: |
| * Return the database user name. |
| */ |
| public String getUser() { |
| return user; |
| } |
| |
| /** |
| * PUBLIC: |
| * Set the database user name. |
| */ |
| public void setUser(String user) { |
| this.user = user; |
| } |
| |
| /** |
| * PUBLIC: |
| * Return the database user password. |
| */ |
| public String getPassword() { |
| // Bug 4117441 - Secure programming practices, store password in char[] |
| if (this.password != null) { |
| return new String(this.password); |
| } else { |
| return null; |
| } |
| } |
| |
| /** |
| * PUBLIC: |
| * Return if a datasource is used. |
| */ |
| public boolean hasDatasource() { |
| return (datasource != null) && (datasource.length() > 0); |
| } |
| |
| /** |
| * PUBLIC: |
| * Set the database user password. |
| */ |
| public void setPassword(String password) { |
| // Bug 4117441 - Secure programming practices, store password in char[] |
| if (password != null) { |
| this.password = password.toCharArray(); |
| } else { |
| // respect explicit de-referencing of password |
| this.password = null; |
| } |
| } |
| |
| @Override |
| public String toString() { |
| return "AQConnectionSpec(" + getURL() + ")"; |
| } |
| } |