summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-auth.c
AgeCommit message (Collapse)Author
2010-01-02Update copyright for the year 2010.Bruce Momjian
2009-06-118.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian
provided by Andrew.
2009-03-22Clean up pg_SSPI_error() coding a little bit: make the messages moreTom Lane
consistent, translate where intended, const-ify declarations. Resolves a gripe from Alvaro as well as some stuff I didn't like.
2009-01-13Remove special-handling of usernames with Kerberos authentication. We willMagnus Hagander
now always use the system username as the default, and not try to pick it up from the kerberos ticket. This fixes the spurious error messages that show up on kerberos-enabled builds when not actually using kerberos, and puts it in line with how other authentication methods work.
2009-01-01Update copyright for 2009.Bruce Momjian
2008-10-28Remove support for (insecure) crypt authentication.Magnus Hagander
This breaks compatibility with pre-7.2 versions.
2008-01-31Fix pg_GSS_error to use conn->errorMessage more sanely, ie, actuallyTom Lane
work with the PQExpBuffer code instead of fighting it. This avoids an unnecessary limit on message length and fixes the latent bug that errorMessage.len wasn't getting set.
2008-01-01Update copyrights in source tree to 2008.Bruce Momjian
2007-12-09Fix up the PQconnectionUsedPassword mess: create a separateTom Lane
PQconnectionNeedsPassword function that tells the right thing for whether to prompt for a password, and improve PQconnectionUsedPassword so that it checks whether the password used by the connection was actually supplied as a connection argument, instead of coming from environment or a password file. Per bug report from Mark Cave-Ayland and subsequent discussion.
2007-12-04Don't send an empty SSPI negotiation packet at the end of the negotiation.Magnus Hagander
Fixes bug #3750
2007-11-15pgindent run for 8.3.Bruce Momjian
2007-09-25Small string tweaksPeter Eisentraut
2007-07-24Make it possible, and default, for MingW to build with SSPI supportMagnus Hagander
by dynamically loading the function that's missing from the MingW headers and library.
2007-07-23Use PQExpBuffer for error message in fe-auth.c.Magnus Hagander
In passing, change functions that passedin both PGconn and parts of it to just pass in the PGconn.
2007-07-23Stupid typo.Magnus Hagander
2007-07-23SSPI authentication on Windows. GSSAPI compatible client when doing KerberosMagnus Hagander
against a Unix server, and Windows-specific server-side authentication using SSPI "negotiate" method (Kerberos or NTLM). Only builds properly with MSVC for now.
2007-07-12Enable GSSAPI to build using MSVC. Always build GSSAPI when Kerberos isMagnus Hagander
enabled, because the only Kerberos library supported always contains it.
2007-07-12Support GSSAPI builds where the header is <gssapi.h> and not <gssapi/gssapi.h>,Magnus Hagander
such as OpenBSD (possibly all Heimdal). Stefan Kaltenbrunner
2007-07-12Fix freenig of names in Kerberos when using MIT - need to use theMagnus Hagander
free function provided in the Kerberos library. This fixes a very hard to track down heap corruption on windows when using debug runtimes.
2007-07-10Add support for GSSAPI authentication.Magnus Hagander
Documentation still being written, will be committed later. Henry B. Hotz and Magnus Hagander
2007-02-10StrNCpy -> strlcpy (not complete)Peter Eisentraut
2007-01-05Update CVS HEAD for 2007 copyright. Back branches are typically notBruce Momjian
back-stamped for this.
2006-10-04pgindent run for 8.2.Bruce Momjian
2006-09-22Fix bugs in plpgsql and ecpg caused by assuming that isspace() would onlyTom Lane
return true for exactly the characters treated as whitespace by their flex scanners. Per report from Victor Snezhko and subsequent investigation. Also fix a passel of unsafe usages of <ctype.h> functions, that is, ye olde char-vs-unsigned-char issue. I won't miss <ctype.h> when we are finally able to stop using it.
2006-07-14Remove 576 references of include files that were not needed.Bruce Momjian
2006-07-14Revert part of recent include patch not ready for application.Bruce Momjian
2006-07-14Add additional includes needed on some platforms.Bruce Momjian
2006-07-12Clean up for warning:Joe Conway
fe-auth.c:573: warning: passing argument 1 of 'free' discards qualifiers from pointer target type pg_krb5_authname used to return a (const char *) to memory allocated by krb. Somewhere along the lines this was changed so that a copy was made, returned, and freed instead. However the const modifier was never removed.
2006-06-20Split definitions for md5.c out of crypt.h and into their own headerTom Lane
libpq/md5.h, so that there's a clear separation between backend-only definitions and shared frontend/backend definitions. (Turns out this is reversing a bad decision from some years ago...) Fix up references to crypt.h as needed. I looked into moving the code into src/port, but the headers in src/include/libpq are sufficiently intertwined that it seems more work than it's worth to do that.
2006-03-06* Stephen Frost (sfrost@snowman.net) wrote:Bruce Momjian
> I've now tested this patch at home w/ 8.2HEAD and it seems to fix the > bug. I plan on testing it under 8.1.2 at work tommorow with > mod_auth_krb5, etc, and expect it'll work there. Assuming all goes > well and unless someone objects I'll forward the patch to -patches. > It'd be great to have this fixed as it'll allow us to use Kerberos to > authenticate to phppgadmin and other web-based tools which use > Postgres. While playing with this patch under 8.1.2 at home I discovered a mistake in how I manually applied one of the hunks to fe-auth.c. Basically, the base code had changed and so the patch needed to be modified slightly. This is because the code no longer either has a freeable pointer under 'name' or has 'name' as NULL. The attached patch correctly frees the string from pg_krb5_authname (where it had been strdup'd) if and only if pg_krb5_authname returned a string (as opposed to falling through and having name be set using name = pw->name;). Also added a comment to this effect. Backpatch to 8.1.X. Stephen Frost
2006-03-05Update copyright for 2006. Update scripts.Bruce Momjian
2006-02-12Back out patch pending review.Bruce Momjian
--------------------------------------------------------------------------- > I've now tested this patch at home w/ 8.2HEAD and it seems to fix the > bug. I plan on testing it under 8.1.2 at work tommorow with > mod_auth_krb5, etc, and expect it'll work there. Assuming all goes > well and unless someone objects I'll forward the patch to -patches. > It'd be great to have this fixed as it'll allow us to use Kerberos to > authenticate to phppgadmin and other web-based tools which use > Postgres. While playing with this patch under 8.1.2 at home I discovered a mistake in how I manually applied one of the hunks to fe-auth.c. Basically, the base code had changed and so the patch needed to be modified slightly. This is because the code no longer either has a freeable pointer under 'name' or has 'name' as NULL. The attached patch correctly frees the string from pg_krb5_authname (where it had been strdup'd) if and only if pg_krb5_authname returned a string (as opposed to falling through and having name be set using name = pw->name;). Also added a comment to this effect. Please review. Stephen Frost (sfrost@snowman.net) wrote:
2006-02-12> I've now tested this patch at home w/ 8.2HEAD and it seems to fix theBruce Momjian
> bug. I plan on testing it under 8.1.2 at work tommorow with > mod_auth_krb5, etc, and expect it'll work there. Assuming all goes > well and unless someone objects I'll forward the patch to -patches. > It'd be great to have this fixed as it'll allow us to use Kerberos to > authenticate to phppgadmin and other web-based tools which use > Postgres. While playing with this patch under 8.1.2 at home I discovered a mistake in how I manually applied one of the hunks to fe-auth.c. Basically, the base code had changed and so the patch needed to be modified slightly. This is because the code no longer either has a freeable pointer under 'name' or has 'name' as NULL. The attached patch correctly frees the string from pg_krb5_authname (where it had been strdup'd) if and only if pg_krb5_authname returned a string (as opposed to falling through and having name be set using name = pw->name;). Also added a comment to this effect. Please review. Stephen Frost (sfrost@snowman.net) wrote:
2005-12-26Rename pg_make_encrypted_password to PQencryptPassword.Peter Eisentraut
2005-12-23Add an officially exported libpq function to encrypt passwords, andTom Lane
modify the previous \password patch to use it instead of depending on a not-officially-exported function. Per discussion.
2005-11-22Re-run pgindent, fixing a problem where comment lines after a blankBruce Momjian
comment line where output as too long, and update typedefs for /lib directory. Also fix case where identifiers were used as variable names in the backend, but as typedefs in ecpg (favor the backend for indenting). Backpatch to 8.1.X.
2005-10-24I have applied the following patch to document PQinitSSL() andBruce Momjian
PQregisterThreadLock(). I also remove the crypt() mention in the libpq threading section and added a single sentence in the client-auth manual page under crypt(). Crypt authentication is so old now that a separate paragraph about it seemed unwise. I also added a comment about our use of locking around pqGetpwuid().
2005-10-17Clean up libpq's pollution of application namespace by renaming theTom Lane
exported routines of ip.c, md5.c, and fe-auth.c to begin with 'pg_'. Also get rid of the vestigial fe_setauthsvc/fe_getauthsvc routines altogether.
2005-10-15Standard pgindent run for 8.1.Bruce Momjian
2005-10-08Fix Kerberos authentication in wake of virtual-hosts changes --- needTom Lane
to call krb5_sname_to_principal() always. Also, use krb_srvname rather than the hardwired string 'postgres' as the appl_version string in the krb5_sendauth/recvauth calls, to avoid breaking compatibility with PG 8.0. Magnus Hagander
2005-06-30Fix a theoretical memory leak in pg_password_sendauth(). If the firstNeil Conway
malloc() succeeded but the second failed, the buffer allocated by the first malloc() would be leaked. Fix this by allocating both buffers via a single malloc(), as suggested by Tom. Per Coverity static analysis performed by EnterpriseDB.
2005-06-27Remove support for Kerberos V4. It seems no one is using this, it hasNeil Conway
some security issues, and upstream has declared it "dead". Patch from Magnus Hagander, minor editorialization from Neil Conway.
2005-06-04Allow kerberos name and username case sensitivity to be specified fromBruce Momjian
postgresql.conf. --------------------------------------------------------------------------- Here's an updated version of the patch, with the following changes: 1) No longer uses "service name" as "application version". It's instead hardcoded as "postgres". It could be argued that this part should be backpatched to 8.0, but it doesn't make a big difference until you can start changing it with GUC / connection parameters. This change only affects kerberos 5, not 4. 2) Now downcases kerberos usernames when the client is running on win32. 3) Adds guc option for "krb_caseins_users" to make the server ignore case mismatch which is required by some KDCs such as Active Directory. Off by default, per discussion with Tom. This change only affects kerberos 5, not 4. 4) Updated so it doesn't conflict with the rendevouz/bonjour patch already in ;-) Magnus Hagander
2005-03-25Kerberos fixes from Magnus Hagander --- in theory Kerberos 5 authTom Lane
should work on Windows now. Also, rename set_noblock to pg_set_noblock; since it is included in libpq, the former name polluted application namespace.
2005-01-12Add conditional inclusion of <com_err.h> to support old 'heimdal'Tom Lane
version of Kerberos. Per report from Reinhard Max.
2005-01-04Clean up code in libpq that obtains user's home directory: make a singleTom Lane
subroutine that can hide platform dependencies. The WIN32 path is still a stub, but I await a fix from one of the win32 hackers. Also clean up unnecessary #ifdef WIN32 ugliness in a couple of places.
2004-12-31Tag appropriate files for rc3PostgreSQL Daemon
Also performed an initial run through of upgrading our Copyright date to extend to 2005 ... first run here was very simple ... change everything where: grep 1996-2004 && the word 'Copyright' ... scanned through the generated list with 'less' first, and after, to make sure that I only picked up the right entries ...
2004-12-20Remove direct inclusions of <com_err.h> as well as configure test forTom Lane
its presence. This amounts to desupporting Kerberos 5 releases 1.0.*, which is small loss, and simplifies use of our Kerberos code on platforms with Red-Hat-style include file layouts. Per gripe from John Gray and followup discussion.
2004-11-09Get rid of perror(), substitute some better phrased error messages.Peter Eisentraut
malloc() doesn't set errno, so most uses were buggy anyway.
2004-10-16Allow pg_ctl to determine the server is up when getting a request for aBruce Momjian
password. Make password error message a #define and use it consistently. Sean Chittenden