From 18e834450956352fab9dfdef1d10e115df9acbb8 Mon Sep 17 00:00:00 2001 From: Jack Magne Date: Fri, 8 Jan 2016 10:01:18 -0800 Subject: Make sure the ESC auth dialog displays the User Id field first. With the latest TPS the ESC auth dialog has displayed the password field before the UID field. This patch addresses this in the simplest fashion by modifying the class that presents the field data to the client to make sure that UID field is encountered first. --- .../dogtagpki/tps/msg/ExtendedLoginRequestMsg.java | 31 +++++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/base/common/src/org/dogtagpki/tps/msg/ExtendedLoginRequestMsg.java b/base/common/src/org/dogtagpki/tps/msg/ExtendedLoginRequestMsg.java index d776fe1cd..e90449650 100644 --- a/base/common/src/org/dogtagpki/tps/msg/ExtendedLoginRequestMsg.java +++ b/base/common/src/org/dogtagpki/tps/msg/ExtendedLoginRequestMsg.java @@ -18,8 +18,10 @@ package org.dogtagpki.tps.msg; import java.io.UnsupportedEncodingException; +import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Set; import org.dogtagpki.tps.main.Util; @@ -45,30 +47,39 @@ public class ExtendedLoginRequestMsg extends TPSMessage { @Override public String encode() { - if (!params.isEmpty()) { + List orderedParams = new ArrayList(); - int i = 0; + //The UID param will always be first in the list + if (!params.isEmpty()) { + String cur = null; for (Iterator iter = params.iterator(); iter.hasNext();) { - - String curParam = null; - try { - curParam = Util.uriEncode(iter.next()); + cur = Util.uriEncode(iter.next()); } catch (UnsupportedEncodingException e) { - curParam = null; + cur = null; } + if (cur != null && cur.length() > 0) { + if (cur.contains("UID")) { + orderedParams.add(0, cur); + } else { + orderedParams.add(cur); + } + } + } + + int i = 0; + for (Iterator iter = orderedParams.iterator(); iter.hasNext();) { + String curParam = iter.next(); if (curParam != null && curParam.length() > 0) { - String name = /*"&" + */ REQUIRED_PARAMETER_NAME + Integer.toString(i++); + String name = /*"&" + */REQUIRED_PARAMETER_NAME + Integer.toString(i++); String value = curParam; put(name, value); } - } - } return super.encode(); -- cgit