Bug 1056799

Summary: [GSS] (6.3.0) JBMETA-371: DefaultPropertyReplacer + PropertyResolver is broken for vault expressions
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Chris Dolphy <cdolphy>
Component: EEAssignee: David M. Lloyd <david.lloyd>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: bmaxwell, brian.stansberry, david.lloyd, jmartisk, kkhan, smumford
Target Milestone: DR2   
Target Release: EAP 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
In previous versions of JBoss EAP 6, the expression resolving logic in the `DefaultPropertyReplacer` and `PropertyResolver` classes (used for parsing deployment descriptor files) assumed that the expression content between `"${"` and `"}"` was of a fixed format where any `":"` char in the expression represented a separator between a system property name and a default value. This meant that security vault expressions in deployment descriptors could not be successfully parsed, as `":"` is always used in those expressions and not as a separator preceding a default value. Vault expressions would be evaluated incorrectly with the expression content following the first `":"` being treated as the resolved value. In this versions of the product, when the end of an expression is detected, before returning the expression contents following the first `":"` as the resolved value, the resolver first checks whether the entire expression can be resolved. Security vault expressions can now be used in deployment descriptor files where expressions are allowed in general.
Story Points: ---
Clone Of:
: 1058959 1060260 (view as bug list) Environment:
Last Closed: 2014-06-28 15:30:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1066365    
Bug Blocks: 1058959, 1058961    
Attachments:
Description Flags
source for test war none

Description Chris Dolphy 2014-01-22 23:10:42 UTC
Created attachment 854107 [details]
source for test war

Description of problem:
After enabling property replacement with spec-descriptor-property-replacement, the property replacement fails.  

Version-Release number of selected component (if applicable):
EAP 6.2

How reproducible:
With test case.

Steps to Reproduce:
1. Create vault with test::queue property:

mkdir standalone/configuration/vault

keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass password -keypass password -keystore standalone/configuration/vault/vault.keystore

bin/vault.sh -k standalone/configuration/vault/vault.keystore -p password -s saltsalt -v vault -i 44 -e standalone/configuration/vault/ -b test -a queue -x /queue/HELLOWORLDMDBQueue

2. modify standalone-full.xml, adding the results of vault.sh 
3. modify standalone-full.xml, setting spec-descriptor-property-replacement to true

4. build and deploy sample war with mdb (based on helloworld-mdb quickstart)

Actual results:

Could log messages complaining that it can't find the queue:
17:00:22,108 INFO  [org.hornetq.ra] (default-threads - 2) HQ151000: awaiting topic/queue creation :test::queue::1
17:00:24,109 INFO  [org.hornetq.ra] (default-threads - 2) HQ151001: Attempting to reconnect org.hornetq.ra.inflow.HornetQActivationSpec(ra=org.hornetq.ra.HornetQResourceAdapter@371c02e5 destination=:test::queue::1 destinationType=javax.jms.Queue ack=Auto-acknowledge durable=false clientID=null user=null maxSession=15)


Expected results:
Successful mdb deploy.

Additional info:
Vault properties were intended to work because there is a VaultPropertyResolver registered.  However, the property resolving fails because it always is passed "VAULT" as the property name.  DefaultPropertyReplacer is terminating parsing at the ":" because it is looking for a default value to use if the property lookup fails.

Comment 1 JBoss JIRA Server 2014-01-24 22:32:05 UTC
Brian Stansberry <brian.stansberry> updated the status of jira JBMETA-371 to Resolved

Comment 3 Nichola Moore 2014-05-02 04:18:19 UTC
Please can someone provide some Doc Text. Thanks.

Comment 4 Jan Martiska 2014-05-05 11:05:23 UTC
Verified in EAP 6.3.0.ER3.