aboutsummaryrefslogtreecommitdiff
path: root/src/backend/libpq/hba.c
Commit message (Collapse)AuthorAge
* Report pg_hba line number and contents when users fail to log inMagnus Hagander2013-03-10
| | | | | | | | | | | | | Instead of just reporting which user failed to log in, log both the line number in the active pg_hba.conf file (which may not match reality in case the file has been edited and not reloaded) and the contents of the matching line (which will always be correct), to make it easier to debug incorrect pg_hba.conf files. The message to the client remains unchanged and does not include this information, to prevent leaking security sensitive information. Reviewed by Tom Lane and Dean Rasheed
* Update copyrights for 2013Bruce Momjian2013-01-01
| | | | | Fully update git head, and update back branches in ./COPYRIGHT and legal.sgml files.
* Attempt to un-break Windows builds with USE_LDAP.Tom Lane2012-12-04
| | | | | The buildfarm shows this case is entirely broken, and I'm betting the reason is lack of any include file.
* Fix build of LDAP URL featurePeter Eisentraut2012-12-04
| | | | | | Some code was not ifdef'ed out for non-LDAP builds. patch from Bruce Momjian
* Add support for LDAP URLsPeter Eisentraut2012-12-03
| | | | Allow specifying LDAP authentication parameters as RFC 4516 LDAP URLs.
* Parse pg_ident.conf when it's loaded, keeping it in memory in parsed format.Heikki Linnakangas2012-09-21
| | | | | | | | | | | | | | | | | | | | Similar changes were done to pg_hba.conf earlier already, this commit makes pg_ident.conf to behave the same as pg_hba.conf. This has two user-visible effects. First, if pg_ident.conf contains multiple errors, the whole file is parsed at postmaster startup time and all the errors are immediately reported. Before this patch, the file was parsed and the errors were reported only when someone tries to connect using an authentication method that uses the file, and the parsing stopped on first error. Second, if you SIGHUP to reload the config files, and the new pg_ident.conf file contains an error, the error is logged but the old file stays in effect. Also, regular expressions in pg_ident.conf are now compiled only once when the file is loaded, rather than every time the a user is authenticated. That should speed up authentication if you have a lot of regexps in the file. Amit Kapila
* Run pgindent on 9.2 source tree in preparation for first 9.3Bruce Momjian2012-06-10
| | | | commit-fest.
* Add some enumeration commas, for consistencyPeter Eisentraut2012-02-24
|
* Add parameters for controlling locations of server-side SSL filesPeter Eisentraut2012-02-22
| | | | | | | | | | | | This allows changing the location of the files that were previously hard-coded to server.crt, server.key, root.crt, root.crl. server.crt and server.key continue to be the default settings and are thus required to be present by default if SSL is enabled. But the settings for the server-side CA and CRL are now empty by default, and if they are set, the files are required to be present. This replaces the previous behavior of ignoring the functionality if the files were not found.
* Revert unfortunate whitespace changePeter Eisentraut2012-01-27
| | | | | | | In e5e2fc842c418432756d8b5825ff107c6c5fc4c3, blank lines were removed after a comment block, which now looks as though the comment refers to the immediately following code, but it actually refers to the preceding code. So put the blank lines back.
* Update copyright notices for year 2012.Bruce Momjian2012-01-01
|
* Do not treat a superuser as a member of every role for HBA purposes.Andrew Dunstan2011-11-03
| | | | | | This makes it possible to use reject lines with group roles. Andrew Dunstan, reviewd by Robert Haas.
* Reject empty pg_hba.conf files.Tom Lane2011-10-18
| | | | | | | | | | | An empty HBA file is surely an error, since it means there is no way to connect to the server. We've not heard identifiable reports of people actually doing that, but this will also close off the case Thom Brown just complained of, namely pointing hba_file at a directory. (On at least some platforms with some directories, it will read as an empty file.) Perhaps this should be back-patched, but given the lack of previous complaints, I won't add extra work for the translators.
* Use clearer notation for getnameinfo() return handlingPeter Eisentraut2011-08-09
| | | | | | | | | | | | | | Writing if (getnameinfo(...)) handle_error(); reads quite strangely, so use something like if (getnameinfo(...) != 0) handle_error(); instead.
* Modernise pg_hba.conf token processingAlvaro Herrera2011-06-28
| | | | | | | | | | | | | | | | | | | | | | | The previous coding was ugly, as it marked special tokens as such in the wrong stage, relying on workarounds to figure out if they had been quoted in the original or not. This made it impossible to have specific keywords be recognized as such only in certain positions in HBA lines, for example. Fix by restructuring the parser code so that it remembers whether tokens were quoted or not. This eliminates widespread knowledge of possible known keywords for all fields. Also improve memory management in this area, to use memory contexts that are reset as a whole instead of using retail pfrees; this removes a whole lotta crufty (and probably slow) code. Instead of calling strlen() three times in next_field_expand on the returned token to find out whether there was a comma (and strip it), pass back the info directly from the callee, which is simpler. In passing, update historical artifacts in hba.c API. Authors: Brendan Jurd, Alvaro Herrera Reviewed by Pavel Stehule
* Pgindent run before 9.1 beta2.Bruce Momjian2011-06-09
|
* Refuse "local" lines in pg_hba.conf on platforms that don't support itMagnus Hagander2011-05-30
| | | | | This makes the behavior compatible with that of hostssl, which also throws an error when there is no SSL support included.
* Rephrase some not-supported error messages in pg_hba.conf processing.Tom Lane2011-04-26
| | | | | | | | | | | | In a couple of places we said "not supported on this platform" for cases that aren't really platform-specific, but could depend on configuration options such as --with-openssl. Use "not supported by this build" instead, as that doesn't convey the impression that you can't fix it without moving to another OS; that's also more consistent with the wording used for an identical error case in guc.c. No back-patch, as the clarity gain is small enough to not be worth burdening translators with back-branch changes.
* Complain if pg_hba.conf contains "hostssl" but SSL is disabled.Tom Lane2011-04-26
| | | | | | | | | | | | | | | | | Most commenters agreed that this is more friendly than silently failing to match the line during actual connection attempts. Also, this will prevent corner cases that might arise when trying to handle such a line when the SSL code isn't turned on. An example is that specifying clientcert=1 in such a line would formerly result in a completely misleading complaint that root.crt wasn't present, as seen in a recent report from Marc-Andre Laverdiere. While we could have instead fixed that specific behavior, it seems likely that we'd have a continuing stream of such bizarre behaviors if we keep on allowing hostssl lines when SSL is disabled. Back-patch to 8.4, where clientcert was introduced. Earlier versions don't have this specific issue, and the code is enough different to make this patch not applicable without more work than it seems worth.
* Teach regular expression operators to honor collations.Tom Lane2011-04-10
| | | | | | | | | | | | | | This involves getting the character classification and case-folding functions in the regex library to use the collations infrastructure. Most of this work had been done already in connection with the upper/lower and LIKE logic, so it was a simple matter of transposition. While at it, split out these functions into a separate source file regc_pg_locale.c, so that they can be correctly labeled with the Postgres project's license rather than the Scriptics license. These functions are 100% Postgres-written code whereas what remains in regc_locale.c is still mostly not ours, so lumping them both under the same copyright notice was getting more and more misleading.
* Don't make "replication" magical as a user name, only as a database name, in ↵Andrew Dunstan2011-04-10
| | | | | | pg_hba.conf. Per gripe from Josh Berkus.
* pgindent run before PG 9.1 beta 1.Bruce Momjian2011-04-10
|
* Rename ident authentication over local connections to peerMagnus Hagander2011-03-19
| | | | | | | | | | | | | This removes an overloading of two authentication options where one is very secure (peer) and one is often insecure (ident). Peer is also the name used in libpq from 9.1 to specify the same type of authentication. Also make initdb select peer for local connections when ident is chosen, and ident for TCP connections when peer is chosen. ident keyword in pg_hba.conf is still accepted and maps to peer authentication.
* Stamp copyrights for year 2011.Bruce Momjian2011-01-01
|
* Support suffix matching of host names in pg_hba.confPeter Eisentraut2010-10-24
| | | | | A name starting with a dot can be used to match a suffix of the actual host name (e.g., .example.com matches foo.example.com).
* Support key word 'all' in host column of pg_hba.confPeter Eisentraut2010-10-18
|
* Fix recent changes to not break non-IPV6-aware systems.Tom Lane2010-10-16
|
* Support host names in pg_hba.confPeter Eisentraut2010-10-15
| | | | Peter Eisentraut, reviewed by KaiGai Kohei and Tom Lane
* Remove cvs keywords from all files.Magnus Hagander2010-09-20
|
* Standardize get_whatever_oid functions for object types withRobert Haas2010-08-05
| | | | | | | | | | | | | unqualified names. - Add a missing_ok parameter to get_tablespace_oid. - Avoid duplicating get_tablespace_od guts in objectNamesToOids. - Add a missing_ok parameter to get_database_oid. - Replace get_roleid and get_role_checked with get_role_oid. - Add get_namespace_oid, get_language_oid, get_am_oid. - Refactor existing code to use new interfaces. Thanks to KaiGai Kohei for the review.
* pgindent run for 9.0, second runBruce Momjian2010-07-06
|
* Fix reference to nonexistent configure optionPeter Eisentraut2010-06-03
| | | | --enable-ssl -> --with-openssl
* The message style police pay a visit to hba.c.Tom Lane2010-05-26
|
* Fix pg_hba.conf matching so that replication connections only match recordsTom Lane2010-04-21
| | | | | | | | | with database = replication. The previous coding would allow them to match ordinary records too, but that seems like a recipe for security breaches. Improve the messages associated with no-such-pg_hba.conf entry to report replication connections as such, since that's now a critical aspect of whether the connection matches. Make some cursory improvements in the related documentation, too.
* Add new message for explicit rejection by pg_hba.conf. ImplicitSimon Riggs2010-04-19
| | | | rejection retains same message as before.
* Fix thinko in log message for "sameuser" ident map mismatch: the providedTom Lane2010-03-24
| | | | | | | and authenticated usernames were swapped. Reported by Bryan Henderson in bug #5386. Also clean up poorly-maintained header comment for this function.
* Message tuningPeter Eisentraut2010-03-21
|
* Disallow gssapi authentication on local connections, since itMagnus Hagander2010-03-08
| | | | | | requires a hostname to function. Noted by Zdenek Kotala
* When reading pg_hba.conf and similar files, do not treat @file as an inclusionTom Lane2010-03-06
| | | | | | | | | | | | | | | | | | | | | | | unless (1) the @ isn't quoted and (2) the filename isn't empty. This guards against unexpectedly treating usernames or other strings in "flat files" as inclusion requests, as seen in a recent trouble report from Ed L. The empty-filename case would be guaranteed to misbehave anyway, because our subsequent path-munging behavior results in trying to read the directory containing the current input file. I think this might finally explain the report at http://archives.postgresql.org/pgsql-bugs/2004-05/msg00132.php of a crash after printing "authentication file token too long, skipping", since I was able to duplicate that message (though not a crash) on a platform where stdio doesn't refuse to read directories. We never got far in investigating that problem, but now I'm suspicious that the trigger condition was an @ in the flat password file. Back-patch to all active branches since the problem can be demonstrated in all branches except HEAD. The test case, creating a user named "@", doesn't cause a problem in HEAD since we got rid of the flat password file. Nonetheless it seems like a good idea to not consider quoted @ as a file inclusion spec, so I changed HEAD too.
* Fix a couple of places that would loop forever if attempts to read a stdio fileTom Lane2010-03-03
| | | | | | | set ferror() but never set feof(). This is known to be the case for recent glibc when trying to read a directory as a file, and might be true for other platforms/cases too. Per report from Ed L. (There is more that we ought to do about his report, but this is one easily identifiable issue.)
* It's clearly now pointless to do backwards compatible parsing of this,Magnus Hagander2010-03-01
| | | | | since we released a version without it, so remove the comment that says we might want to do that.
* pgindent run for 9.0Bruce Momjian2010-02-26
|
* Make RADIUS authentication use pg_getaddrinfo_all() to get address ofMagnus Hagander2010-02-02
| | | | | | | the server. Gets rid of a fairly ugly hack for Solaris, and also provides hostname and IPV6 support.
* Add support for RADIUS authentication.Magnus Hagander2010-01-27
|
* Introduce Streaming Replication.Heikki Linnakangas2010-01-15
| | | | | | | | | | | | | | | | | | | | This includes two new kinds of postmaster processes, walsenders and walreceiver. Walreceiver is responsible for connecting to the primary server and streaming WAL to disk, while walsender runs in the primary server and streams WAL from disk to the client. Documentation still needs work, but the basics are there. We will probably pull the replication section to a new chapter later on, as well as the sections describing file-based replication. But let's do that as a separate patch, so that it's easier to see what has been added/changed. This patch also adds a new section to the chapter about FE/BE protocol, documenting the protocol used by walsender/walreceivxer. Bump catalog version because of two new functions, pg_last_xlog_receive_location() and pg_last_xlog_replay_location(), for monitoring the progress of replication. Fujii Masao, with additional hacking by me
* Update copyright for the year 2010.Bruce Momjian2010-01-02
|
* Allow LDAP authentication to operate in search+bind mode, meaning itMagnus Hagander2009-12-12
| | | | | | | | | | | | | | does a search for the user in the directory first, and then binds with the DN found for this user. This allows for LDAP logins in scenarios where the DN of the user cannot be determined simply by prefix and suffix, such as the case where different users are located in different containers. The old way of authentication can be significantly faster, so it's kept as an option. Robert Fleming and Magnus Hagander
* Fix assorted memory leaks in pg_hba.conf parsing. Over a sufficientlyTom Lane2009-10-03
| | | | | | large number of SIGHUP cycles, these would have run the postmaster out of memory. Noted while testing memory-leak scenario in postgresql.conf configuration-change-printing patch.
* Support "samehost" and "samenet" specifications in pg_hba.conf,Tom Lane2009-10-01
| | | | | | by enumerating the machine's IP interfaces to look for a match. Stef Walter
* Remove flatfiles.c, which is now obsolete.Alvaro Herrera2009-09-01
| | | | | | Recent commits have removed the various uses it was supporting. It was a performance bottleneck, according to bug report #4919 by Lauris Ulmanis; seems it slowed down user creation after a billion users.