summaryrefslogtreecommitdiff
path: root/dev-java/jdbc-postgresql/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-java/jdbc-postgresql/files
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-java/jdbc-postgresql/files')
-rw-r--r--dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1201-remove-osgi.patch37
-rw-r--r--dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1204-remove-sspi.patch138
2 files changed, 175 insertions, 0 deletions
diff --git a/dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1201-remove-osgi.patch b/dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1201-remove-osgi.patch
new file mode 100644
index 000000000000..15b1860d2aa7
--- /dev/null
+++ b/dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1201-remove-osgi.patch
@@ -0,0 +1,37 @@
+--- a/build.xml 2015-02-18 17:44:58.000000000 +0100
++++ b/build.xml 2015-03-23 02:19:03.951945663 +0100
+@@ -403,34 +403,6 @@
+ <attribute name="Implementation-Vendor" value="PostgreSQL Global Development Group" />
+ </manifest>
+ </jar>
+-
+- <!-- add OSGi meta information -->
+- <property name="osgidir" value="${builddir}/osgi"/>
+- <mkdir dir="${osgidir}"/>
+-
+- <!-- create a bnd file named after the JAR file so that bnd wrap tool find it -->
+- <echo file="${osgidir}/${artifact.version.string}.bnd">
+-Bundle-ManifestVersion: 2
+-
+-Bundle-Name: PostgreSQL JDBC Driver ${jdbc.version.upper}
+-Bundle-SymbolicName: org.postgresql.${jdbc.version}
+-Bundle-Version: ${osgi.version}
+-
+-Bundle-Vendor: PostgreSQL Global Development Group
+-Bundle-Copyright: Copyright (c) 2003-2015, PostgreSQL Global Development Group
+-Bundle-License: http://www.postgresql.org/about/licence/
+-Bundle-DocURL: http://jdbc.postgresql.org/
+-
+-Bundle-Classpath: .
+-Bundle-Activator: org.postgresql.osgi.PGBundleActivator
+-Require-Capability: osgi.ee;filter:="(&amp;(|(osgi.ee=J2SE)(osgi.ee=JavaSE))(version>=${java.specification.version}))"
+-Export-Package: org.postgresql*; version=${fullversion}
+-Import-Package: javax.sql, javax.transaction.xa, javax.naming, *;resolution:=optional
+- </echo>
+-
+- <!-- run wrap task from bnd -->
+- <taskdef resource="aQute/bnd/ant/taskdef.properties" classpathref="dependency.build.classpath"/>
+- <bndwrap jars="${artifact.jar.build}" output="${artifact.jar}" definitions="${osgidir}"/>
+ </target>
+
+ <!-- create a distribution with docs, dependencies, and driver jar -->
diff --git a/dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1204-remove-sspi.patch b/dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1204-remove-sspi.patch
new file mode 100644
index 000000000000..16996892b192
--- /dev/null
+++ b/dev-java/jdbc-postgresql/files/jdbc-postgresql-9.4_p1204-remove-sspi.patch
@@ -0,0 +1,138 @@
+--- a/org/postgresql/core/v3/ConnectionFactoryImpl.java 2015-10-09 20:55:53.000000000 +0200
++++ b/org/postgresql/core/v3/ConnectionFactoryImpl.java 2015-10-14 20:42:48.816753341 +0200
+@@ -32,7 +32,6 @@
+ import org.postgresql.hostchooser.HostChooserFactory;
+ import org.postgresql.hostchooser.HostRequirement;
+ import org.postgresql.hostchooser.HostStatus;
+-import org.postgresql.sspi.SSPIClient;
+ import org.postgresql.util.GT;
+ import org.postgresql.util.HostSpec;
+ import org.postgresql.util.MD5Digest;
+@@ -394,11 +393,7 @@
+ // or an authentication request
+
+ String password = PGProperty.PASSWORD.get(info);
+-
+- /* SSPI negotiation state, if used */
+- SSPIClient sspiClient = null;
+
+- try {
+ authloop:
+ while (true)
+ {
+@@ -514,88 +509,16 @@
+ case AUTH_REQ_SSPI:
+ /*
+ * Use GSSAPI if requested on all platforms, via JSSE.
+- *
+- * For SSPI auth requests, if we're on Windows attempt native SSPI
+- * authentication if available, and if not disabled by setting a
+- * kerberosServerName. On other platforms, attempt JSSE GSSAPI
+- * negotiation with the SSPI server.
+- *
+- * Note that this is slightly different to libpq, which uses SSPI
+- * for GSSAPI where supported. We prefer to use the existing Java
+- * JSSE Kerberos support rather than going to native (via JNA) calls
+- * where possible, so that JSSE system properties etc continue
+- * to work normally.
+- *
+- * Note that while SSPI is often Kerberos-based there's no guarantee
+- * it will be; it may be NTLM or anything else. If the client responds
+- * to an SSPI request via GSSAPI and the other end isn't using Kerberos
+- * for SSPI then authentication will fail.
+ */
+- final String gsslib = PGProperty.GSS_LIB.get(info);
+- final boolean usespnego = PGProperty.USE_SPNEGO.getBoolean(info);
+-
+- boolean useSSPI = false;
++ org.postgresql.gss.MakeGSS.authenticate(pgStream, host,
++ user, password,
++ PGProperty.JAAS_APPLICATION_NAME.get(info),
++ PGProperty.KERBEROS_SERVER_NAME.get(info),
++ logger,
++ PGProperty.USE_SPNEGO.getBoolean(info));
++
++ break;
+
+- /*
+- * Use SSPI if we're in auto mode on windows and have a
+- * request for SSPI auth, or if it's forced. Otherwise
+- * use gssapi. If the user has specified a Kerberos server
+- * name we'll always use JSSE GSSAPI.
+- */
+- if (gsslib.equals("gssapi"))
+- logger.debug("Using JSSE GSSAPI, param gsslib=gssapi");
+- else if (areq == AUTH_REQ_GSS && !gsslib.equals("sspi"))
+- logger.debug("Using JSSE GSSAPI, gssapi requested by server and gsslib=sspi not forced");
+- else
+- {
+- /* Determine if SSPI is supported by the client */
+- sspiClient = new SSPIClient(pgStream,
+- PGProperty.SSPI_SERVICE_CLASS.get(info),
+- /* Use negotiation for SSPI, or if explicitly requested for GSS */
+- areq == AUTH_REQ_SSPI || (areq == AUTH_REQ_GSS && usespnego),
+- logger);
+-
+- useSSPI = sspiClient.isSSPISupported();
+- logger.debug("SSPI support detected: " + useSSPI);
+-
+- if (!useSSPI) {
+- /* No need to dispose() if no SSPI used */
+- sspiClient = null;
+-
+- if (gsslib.equals("sspi"))
+- throw new PSQLException("SSPI forced with gsslib=sspi, but SSPI not available; set loglevel=2 for details",
+- PSQLState.CONNECTION_UNABLE_TO_CONNECT);
+- }
+-
+- logger.debug("Using SSPI: " + useSSPI + ", gsslib="+gsslib+" and SSPI support detected");
+- }
+-
+- if (useSSPI)
+- {
+- /* SSPI requested and detected as available */
+- sspiClient.startSSPI();
+- }
+- else
+- {
+- /* Use JGSS's GSSAPI for this request */
+- org.postgresql.gss.MakeGSS.authenticate(pgStream, host,
+- user, password,
+- PGProperty.JAAS_APPLICATION_NAME.get(info),
+- PGProperty.KERBEROS_SERVER_NAME.get(info),
+- logger,
+- usespnego);
+- }
+-
+- break;
+-
+- case AUTH_REQ_GSS_CONTINUE:
+- /*
+- * Only called for SSPI, as GSS is handled by an inner loop
+- * in MakeGSS.
+- */
+- sspiClient.continueSSPI(l_msgLen - 8);
+- break;
+-
+ case AUTH_REQ_OK:
+ /* Cleanup after successful authentication */
+ if (logger.logDebug())
+@@ -616,18 +539,6 @@
+ throw new PSQLException(GT.tr("Protocol error. Session setup failed."), PSQLState.PROTOCOL_VIOLATION);
+ }
+ }
+- } finally {
+- /* Cleanup after successful or failed authentication attempts */
+- if (sspiClient != null)
+- {
+- try {
+- sspiClient.dispose();
+- } catch (RuntimeException ex) {
+- logger.log("Unexpected error during SSPI context disposal", ex);
+- }
+-
+- }
+- }
+
+ }
+