On 6/2/2014 4:40 PM, Christina Fu wrote:
pushed to master commit 8f6103382199357ede73c02e355a09bcf7e41b8d
In case Endi has more to add, I'm attaching the latest patch checked in and keeping the ticket open.
Christina
Some comments: 1. In the CS.cfg the display name "Profile Mapping" is replaced with "Token Profile Mapping Resolvers" and "Profile" is replaced with "Token Profile". Do we need to do the same changes in the UI? 2. The TokenProfileParams.getString() generates DEFAULT_TOKENTYPE_NOT_FOUND if the attribute is missing. Should it be DEFAULT_TOKENTYPE_PARAMS_NOT_FOUND instead? 3. Same issue with TokenProfileParams.getInt() as in #2. 4. TokenProfileParams.getInt() catches NumberFormatException and generates DEFAULT_TOKENTYPE_NOT_FOUND, which is misleading. Is there a more appropriate error code for invalid attribute value? Or it's probably better not to catch the NumberFormatException. 5. This is probably an existing issue, but it looks like there's a logic problem in MappingTokenProfileResolver.getTokenType(). See the inline comments: // targetTokenType is initially null String targetTokenType = null; // iterate through all mappings for (String mappingId : mappingOrder.split(",")) { // assign targetTokenType value targetTokenType = configStore.getString(mappingConfigName); // do various validations // if validation fails, go to the next mapping if (tokenType != null && tokenType.length() > 0) { if (eTokenType == null) { continue; } if (!eTokenType.equals(tokenType)) { continue; } } // if we make it this far, we have a token type break; } // if targetTokenType is null, throw exception. if (targetTokenType == null) { throw new TPSException(...); } return targetTokenType; The targetTokenType is assigned a value early in each iteration. If the validation fails, the targetTokenType carries over the value to the next iteration. Let's suppose all validations fail, the targetTokenType will still have a value from the last iteration, which is probably not what we wanted. I think targetTokenType should only be assigned a value after all validations have passed (i.e. "if we make it this far..."). 6. Has this been tested? I tried installing TPS with the latest code in master and it failed. Other subsystems can be installed just fine. -- Endi S. Dewata