Commit Graph

5530 Commits

Author SHA1 Message Date
Rob Crittenden
045b6e6ed9 Use new certmonger locking to prevent NSS database corruption.
dogtag opens its NSS database in read/write mode so we need to be very
careful during renewal that we don't also open it up read/write. We
basically need to serialize access to the database. certmonger does the
majority of this work via internal locking from the point where it generates
a new key/submits a rewewal through the pre_save and releases the lock after
the post_save command. This lock is held per NSS database so we're save
from certmonger. dogtag needs to be shutdown in the pre_save state so
certmonger can safely add the certificate and we can manipulate trust
in the post_save command.

Fix a number of bugs in renewal. The CA wasn't actually being restarted
at all due to a naming change upstream. In python we need to reference
services using python-ish names but the service is pki-cad. We need a
translation for non-Fedora systems as well.

Update the CA ou=People entry when he CA subsystem certificate is
renewed. This certificate is used as an identity certificate to bind
to the DS instance.

https://fedorahosted.org/freeipa/ticket/3292
https://fedorahosted.org/freeipa/ticket/3322
2013-01-29 11:16:38 -05:00
Petr Viktorin
b382a77fc3 Add the CA cert to LDAP after the CA install
The DS is installed before the CA cert is generated. Trying to
add the cert to LDAP before it exists resulted in a nasty-looking
error message.

This moves the cert upload to after the CA cert is ready and the
certdb is created.

Move the cert upload to after thecertdb is generated.

https://fedorahosted.org/freeipa/ticket/3375
2013-01-29 15:42:24 +01:00
Jan Cholasta
77bb4b5177 Pylint cleanup.
Add more dynamic attribute info to IPATypeChecker in make-lint. Remove
unnecessary pylint comments. Fix false positivies introduced by Pylint 0.26.

https://fedorahosted.org/freeipa/ticket/3379
2013-01-29 15:39:49 +01:00
Rob Crittenden
41d11f443b Make certmonger a (pre) requires on server, restart it before upgrading
certmonger may provide new CAs, as in the case from upgrading IPA 2.2
to 3.x. We need these new CAs available during the upgrade process.

The certmonger package does its own condrestart as part of %postun
which runs after the %post script of freeipa-server, so we need to
restart it ourselves before upgrading.

https://fedorahosted.org/freeipa/ticket/3378
2013-01-25 10:08:37 +01:00
Rob Crittenden
d5966bde80 Update anonymous access ACI to protect secret attributes.
Update anonymous access ACI so that no users besides Trust Admins
users can read AD Trust key attributes (ipaNTTrustAuthOutgoing,
ipaNTTrustAuthIncoming). The change is applied both for updated
IPA servers and new installations.
2013-01-23 15:31:48 -05:00
Rob Crittenden
31e41eea6c Don't initialize NSS if we don't have to, clean up unused cert refs
Check to see if NSS is initialized before trying to do so again.

If we are temporarily creating a certificate be sure to delete it in order
to remove references to it and avoid NSS shutdown issues.

In the certificate load validator shut down NSS if we end up initializing
it. I'm not entirely sure why but this prevents a later shutdown issue
if we are passed the --ca-cert-file option.
2013-01-23 14:26:42 -05:00
John Dennis
a1991aeac1 Use secure method to acquire IPA CA certificate
Major changes ipa-client-install:

* Use GSSAPI connection to LDAP server to download CA cert (now
  the default method)

* Add --ca-cert-file option to load the CA cert from a disk file.
  Validate the file. If this option is used the supplied CA cert
  is considered definitive.

* The insecure HTTP retrieval method is still supported but it must be
  explicitly forced and a warning will be emitted.

* Remain backward compatible with unattended case (except for aberrant
  condition when preexisting /etc/ipa/ca.crt differs from securely
  obtained CA cert, see below)

* If /etc/ipa/ca.crt CA cert preexists the validate it matches the
  securely acquired CA cert, if not:

  - If --unattended and not --force abort with error

  - If interactive query user to accept new CA cert, if not abort

  In either case warn user.

* If interactive and LDAP retrieval fails prompt user if they want to
  proceed with insecure HTTP method

* If not interactive and LDAP retrieval fails abort unless --force

* Backup preexisting /etc/ipa/ca.crt in FileStore prior to execution,
  if ipa-client-install fails it will be restored.

Other changes:

* Add new exception class CertificateInvalidError

* Add utility convert_ldap_error() to ipalib.ipautil

* Replace all hardcoded instances of /etc/ipa/ca.crt in
  ipa-client-install with CACERT constant (matches existing practice
  elsewhere).

* ipadiscovery no longer retrieves CA cert via HTTP.

* Handle LDAP minssf failures during discovery, treat failure to check
  ldap server as a warninbg in absebce of a provided CA certificate via
  --ca-cert-file or though existing /etc/ipa/ca.crt file.

Signed-off-by: Simo Sorce <simo@redhat.com>
Signed-off-by: Rob Crittenden <rcritten@redhat.com>
2013-01-23 14:26:42 -05:00
Rob Crittenden
91f4af7e6a Do SSL CA verification and hostname validation. 2013-01-23 14:26:42 -05:00
Alexander Bokovoy
a40285c5a0 Update plugin to upload CA certificate to LDAP
Define post-update plugin to upload public CA certificate to IPA LDAP server.
The plugin includes also update file that creates default container for the
certificate.
2013-01-23 14:26:41 -05:00
Simo Sorce
18eea90ebb Upload CA cert in the directory on install
This will later allow clients to securely download the CA cert by
performaing mutual auth using LDAP with GSSAPI
2013-01-23 14:26:41 -05:00
Petr Vobornik
69c2f077df Fix BuildRequires: rhino replaced with java-1.7.0-openjdk
Rhino is needed for Web UI build. Rhino needs java, but from package perspective
java-1.7.0-openjdk requires rhino. So the correct BuildRequires is
java-1.7.0-openjdk.
2013-01-22 17:05:29 +01:00
Martin Kosek
51f9ed0239 Installer should not connect to 127.0.0.1
IPA installer sometimes tries to connect to the Directory Server
via loopback address 127.0.0.1. However, the Directory Server on
pure IPv6 systems may not be listening on this address. This address
may not even be available.

Rather use the FQDN of the server when connecting to the DS to fix
this issue and make the connection consistent ldapmodify calls which
also use FQDN instead of IP address.

https://fedorahosted.org/freeipa/ticket/3355
2013-01-21 12:13:09 -05:00
Petr Vobornik
5d919c9556 Change tests to use AMD loader
Test were modified accordingly to AMD changes.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:37 +01:00
Petr Vobornik
c71937fc0c Updated makefiles to build FreeIPA Web UI layer
Updated makefiles to comply to new directory structure and also to use builder
for building Web UI.

FreeIPA package spec is modified to use the output of the builder.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:37 +01:00
Petr Vobornik
5e90c98849 Change Web UI sources to simple AMD modules
Web UI sources were wrapped by AMD definition. Listed dependencies were changed
accordingly.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
e3ce3e4f39 AMD config file
Added configuration file for DOJO loader. Removal of JS links from index.html of
files which were changed to AMD modules.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
be0a120134 Update JavaScript Lint configuration file
Update is needed because various files were moved to different directories.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
b9ef6ab0c4 Move of core Web UI files to AMD directory
SSIA

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
8f8e790d94 Move of Web UI non AMD dep. libs to libs subdirectory
Third party JS libraries which are not AMD modules were moved to src/libs/
directory. Links in html files were changed accordingly.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
65301fe3f3 Web UI Sync development utility
Add util/sync.sh utility. It serves for copying source codes or compiled code
of Web UI to testing servers. Useful for development.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
92de64ec73 Web UI development environment directory structure and configuration
Added symbolic links which points to directories which should contain files of
Web UI layers. By changing those links we can switch between debugging (using
source codes) or testing (compiled version).

util/change-profile.sh utility serves for changing symbolic links in js/ dir
and therefore for switching between debugging and testing.

Default configuration for development is:
 * freeipa source files
 * libs as in git
 * compiled Dojo layer

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
217341560c Minimal Dojo layer
Added configuration files for building Dojo library and built library itself.

This configuration contains only modules currently needed.

make-dojo.sh script should be used for rebuilding the library when additional
modules or an update are needed.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:36 +01:00
Petr Vobornik
339790ec8e Config files for builder of FreeIPA UI layer
* Added package configuration and build profile of FreeIPA UI layer for
  Dojo Builder.
* Added script (util/make-ui.sh) which builds the layer

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:35 +01:00
Petr Vobornik
9d3364719d Dojo Builder
Added support for Dojo builder.

 * Includes built builder and patches required to build the builder.
 * _base/configRhino.js is required by the builder to run under rhino.
 * added utility scripts for running the builder
    * build.sh
    * clean.sh
    * compile.sh
    * make-builder.sh
    * prepare-dojo.sh

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:35 +01:00
Petr Vobornik
8c59ddbcbe Use Uglify.js for JS optimization
Uglify.js library was included in ui/util folder. A wrapper script
util/uglifyjs/uglify was created to run Uglify.js in Rhino enviroment.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:35 +01:00
Petr Vobornik
c19af96cb8 Enable mod_deflate
Enabled mod_deflate for:
* text/html (HTML files)
* text/plain (for future use)
* text/css (CSS files)
* text/xml (XML RPC)
* application/javascript (JavaScript files)
* application/json (JSON RPC)
* application/x-font-woff (woff fonts)

Added proper mime type for woff fonts.
Disabled etag header because it doesn't work with mod_deflate.

https://fedorahosted.org/freeipa/ticket/3326
2013-01-17 17:19:29 +01:00
Rob Crittenden
94153bc093 Add Ana Krivokapic to Contributors.txt 2013-01-17 10:33:03 -05:00
Ana Krivokapic
3bd96ddf05 Add crond as a default HBAC service
Ticket: https://fedorahosted.org/freeipa/ticket/3215
2013-01-17 09:50:48 -05:00
Martin Kosek
476aacd699 Upgrade process should not crash on named restart
When either dirsrv or krb5kdc is down, named service restart in
ipa-upgradeconfig will fail and cause a crash of the whole upgrade
process.

Rather only report a failure to restart the service and continue
with the upgrade as it does not need the named service running. Do
the same precaution for pki-ca service restart.

https://fedorahosted.org/freeipa/ticket/3350
2013-01-15 16:35:41 +01:00
Timo Aaltonen
ed84963927 convert the base platform modules into packages 2013-01-14 14:39:54 +01:00
Ana Krivokapic
38dded7db6 Raise ValidationError for incorrect subtree option.
Ticket: https://fedorahosted.org/freeipa/ticket/3233
2013-01-14 14:09:54 +01:00
Martin Kosek
1d2d1e1af1 Sort LDAP updates properly
LDAP updates were sorted by number of RDNs in DN. This, however,
sometimes caused updates to be executed before cn=schema updates.
If the update required an objectClass or attributeType added during
the cn=schema update, the update operation failed.

Fix the sorting so that the cn=schema updates are always run first
and then the other updates sorted by RDN count.

https://fedorahosted.org/freeipa/ticket/3342
2013-01-11 11:29:04 -05:00
Martin Kosek
79bcf904a5 Avoid CRL migration error message
When CRL files are being migrated to a new directory, the upgrade
log may contain an error message raised during MasterCRL.bin symlink
migration. This is actually being caused by `chown' operation which
tried to chown a symlinked file that was not migrated yet.

Sort migrated files before the migration process and put symlinks
at the end of the list. Also do not run chown on the symlinks as
it is a redundant operation since the symlinked file will be
chown'ed on its own.

https://fedorahosted.org/freeipa/ticket/3336
2013-01-11 10:54:10 +01:00
Martin Kosek
cb7e93bb91 permission-find no longer crashes with --targetgroup
Target Group parameter was not processed correctly which caused
permission-find to always crash when this search parameter was used.
Fix the crash and create a unit test case to avoid future regression.

https://fedorahosted.org/freeipa/ticket/3335
2013-01-11 10:51:31 +01:00
Rob Crittenden
746181a88d Convert uniqueMember members into DN objects.
We were asserting that they should be DN objects but weren't converting
them anywhere.

https://fedorahosted.org/freeipa/ticket/3339
2013-01-11 10:43:38 +01:00
JR Aquino
cfe18944d6 Allow PKI-CA Replica Installs when CRL exceeds default maxber value
https://fedorahosted.org/freeipa/ticket/3314
2013-01-08 10:52:50 -05:00
Petr Vobornik
14b353b097 Focus first input element after 'Add and Add another'
When using 'Add and Add Another' button in entity adder dialog the dialog lose focus when an item is successfully added.

It caused by search dialog filter input. It gets focus in search facet's refresh. The refresh is happening when item is added.

This patch is disabling this focus and additionally is focusing first input element to allow imidiate definion of another item
2013-01-07 10:53:59 +01:00
Petr Vobornik
e433379c46 Standardize login password reset, user reset password and host set OTP dialogs
In all dialogs:
 * validation notification was standardized
 * can be confirmed by enter

User pwd dialog has fixed focus of first element.

https://fedorahosted.org/freeipa/ticket/2884
https://fedorahosted.org/freeipa/ticket/3200

Standartize password reset dialog
2013-01-07 10:53:58 +01:00
Petr Vobornik
3df18f5583 Confirm association dialogs by enter
Support for confirm mixin in association dialog.

https://fedorahosted.org/freeipa/ticket/3200
2013-01-07 10:53:58 +01:00
Petr Vobornik
731fce88a1 Focus last dialog when some is closed
When multiple dialogs is opened and one is closed the new top dialog doesn't recieve focus. It prevents from confirming/canceling the dialog using keyboard. This patch is fixing it.

https://fedorahosted.org/freeipa/ticket/3200
2013-01-07 10:53:58 +01:00
Petr Vobornik
7d457d521e Confirm error dialog by enter
Refactored error dialog and unauthorized dialog to support confirm mixin.

https://fedorahosted.org/freeipa/ticket/3200
2013-01-07 10:53:58 +01:00
Petr Vobornik
d14f76ef14 Confirm adder dialog by enter
Added confirm mixin support to entity adder dialog.

https://fedorahosted.org/freeipa/ticket/3200
2013-01-07 10:53:58 +01:00
Petr Vobornik
5bde270436 Confirm mixin
Base mixin class for dialogs witch confirmation/canceling capabilities.

When used, dialog can be 'confirmed' by 'enter' key or canceled by 'escape' key. It doesn't accept confirmation from all elements to not override default expected behavior like creating new line in text area, executing link or selecting a value in a select element.

https://fedorahosted.org/freeipa/ticket/3200
2013-01-07 10:53:58 +01:00
Petr Vobornik
b33f6acfa8 Make confirm_dialog a base class for message_dialog
https://fedorahosted.org/freeipa/ticket/3035
2013-01-07 10:53:58 +01:00
Petr Vobornik
c23dd23219 Make confirm_dialog a base class for deleter dialog
https://fedorahosted.org/freeipa/ticket/3035
2013-01-07 10:53:58 +01:00
Petr Vobornik
16663cb215 Make confirm_dialog a base class of revoke and restore certificate dialogs
https://fedorahosted.org/freeipa/ticket/3035
2013-01-07 10:53:58 +01:00
Martin Kosek
cbb12c7cc5 Do not crash when Kerberos SRV record is not found
ipa-client-install crashed when IPA server realm TXT record was
configured, but the referred domain (lower-case realm value) did
not contain any Kerberos SRV record (_kerberos._udp.<realm>.)

https://fedorahosted.org/freeipa/ticket/3316
2013-01-02 13:28:03 +01:00
John Dennis
159b681c16 Cookie Expires date should be locale insensitive
The Expires attribute in a cookie is supposed to follow the RFC 822
(superseded by RFC 1123) date format. That format includes a weekday
abbreviation (e.g. Tue) which must be in English according to the
RFC's.

ipapython/cookie.py has methods to parse and format the Expires
attribute but they were based on strptime() and strftime() which
respects the locale. If a non-English locale is in effect the wrong
date string will be produced and/or it won't be able to parse the date
string.

The fix is to use the date parsing and formatting functions from
email.utils which specifically follow the RFC's and are not locale
sensitive.

This patch also updates the unit test to use email.utils as well.

The patch should be applied to the following branches:

Ticket: https://fedorahosted.org/freeipa/ticket/3313
2012-12-20 16:39:25 +01:00
Martin Kosek
86e56b9125 Fix delegation-find command --group handling
A wrong way of handling --group DN object caused Internal Error
for this command. Fix that and also provide unit tests to avoid
another regression.

https://fedorahosted.org/freeipa/ticket/3311
2012-12-19 16:32:15 +01:00
Simo Sorce
e8cb869046 Log info on failure to connect
When multiple servers are avilable we were simply suppressing information on
why a connection failed.
Log it as 'info' so that it is possible to diagnose issues more easily.
2012-12-19 09:50:43 +01:00