Details
-
Type:
Improvement
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Duplicate
-
Affects Version/s: 1.6.0-RC3
-
Fix Version/s: 2.0.x
-
Component/s: ArcSDE, Configuration, Oracle, PostGIS
-
Labels:None
-
Environment:Windows XP Pro, SP2. BEA Weblogic Server 9.2, ArcSDE 9.2, deployed geoserver.war exploded, 1.6.0-RC3 initially downloaded and later built from svn co of 1.6.0-RC3.
-
Patch Submitted:Yes
Description
When configuring an ArcSDE DataStore, the password connection parameter is stored to the geoserver/data/catalog.xml file in plain text. The XMLConfigWriter.storeDataStore() method should be modified to encrypt any connection parameter with the keyword "password". When passwords are stored encrypted, the XML attribute value should be renamed "encryptedValue" as opposed to "value". The XMLConfigReader should then use the corresponding decryption algorithm to decrypt any "encryptedValue" attributes when reading in connection parameters. Note: this will allow for someone to "bootstrap" GeoServer config by hand-editing the connection parameters in the catalog.xml file and replacing any "encryptedValue" attribute with a "value" attribute and setting it to the proper plain text password. This encryption should only take place if a system property is set with the full path to a jks KeyStore containing a Secret Key used for encrypt/decrypt, otherwise passwords will be stored in plain text and a warning level statement to that effect will be logged.
Issue Links
- is superceded by
-
GEOS-4702
Passwords stored in plain text
-
Ah, thanks a lot for the patch. A few comments:
Finally, I really suggest you upgrade from 1.6.0-rc3 to 1.6.2, see: http://blog.geoserver.org/2008/03/07/geoserver-162-upgrade-security-release/
- all the users passwords in 1.6.x are stored in security/users.properties, and they are in plain text. Given that there is no UI to edit the users.properties, it is not possible to encrypt them. So you can hide the connection params, but you cannot hide the geoserver users ones. Is that acceptable to you?
- not all password parameters are called "password", in all JDBC datastores it's "passwd", not sure if there are any other variations (the connection param names are part of the GeoTools API, each datastore is free to call connection params what they want). Anyways, I guess this is something I can handle
- this contribution adds a new file, not sure I can accept it unless you sign the contribution agreement or you release the patch in the public domain (from which I can take it and relicense it to GPL + copyright assignment to TOPP). I'm going to CC the project leader, Chris, to hear what are the legal issues in this matter.
Finally, I really suggest you upgrade from 1.6.0-rc3 to 1.6.2, see: http://blog.geoserver.org/2008/03/07/geoserver-162-upgrade-security-release/