From 04df8149e4caea2ace84e81b5b166be637f0b00d Mon Sep 17 00:00:00 2001 From: Fraser Tweedale Date: Tue, 7 Feb 2017 11:47:54 +1000 Subject: [PATCH 158/158] CertProcessor: extract method setAuthTokenIntoRequest The "set auth token into request" logic is extensive and warrants extraction. It also has a separate concern mixed in with it: the self-assignment of the request if the authenticated user is a "Registration Manager Agent". Separate these concerns and extract the setAuthTokenIntoRequest method. Part of: https://fedorahosted.org/pki/ticket/1359 --- .../netscape/cms/servlet/cert/CertProcessor.java | 68 +++++++++++----------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java index 026f4d4af5c2316ae8a93b2ecc62bc398d3b8b71..47b522208af05486a22abdd6196d8385dd615857 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java +++ b/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java @@ -116,6 +116,30 @@ public class CertProcessor extends CAProcessor { } } + private static void setAuthTokenIntoRequest( + IRequest req, IAuthToken authToken) { + Enumeration tokenNames = authToken.getElements(); + while (tokenNames.hasMoreElements()) { + String tokenName = tokenNames.nextElement(); + String[] tokenVals = authToken.getInStringArray(tokenName); + if (tokenVals != null) { + for (int i = 0; i < tokenVals.length; i++) { + req.setExtData( + IRequest.AUTH_TOKEN_PREFIX + + "." + tokenName + "[" + i + "]" + , tokenVals[i]); + } + } else { + String tokenVal = authToken.getInString(tokenName); + if (tokenVal != null) { + req.setExtData( + IRequest.AUTH_TOKEN_PREFIX + "." + tokenName, + tokenVal); + } + } + } + } + /* * fill input info from orig request to the renew request. * This is expected to be used by renewal where the request @@ -289,9 +313,6 @@ public class CertProcessor extends CAProcessor { IProfile profile, IProfileContext ctx, IProfileAuthenticator authenticator, IAuthToken authToken, IRequest[] reqs) throws EBaseException { for (IRequest req : reqs) { - boolean fromRA = false; - String uid = ""; - // adding parameters to request if (isRenewal) { setInputsIntoRequest(origReq, profile, req, locale); @@ -302,39 +323,18 @@ public class CertProcessor extends CAProcessor { setInputsIntoRequest(data, profile, req); } - // serial auth token into request if (authToken != null) { - Enumeration tokenNames = authToken.getElements(); - while (tokenNames.hasMoreElements()) { - String tokenName = tokenNames.nextElement(); - String[] tokenVals = authToken.getInStringArray(tokenName); - if (tokenVals != null) { - for (int i = 0; i < tokenVals.length; i++) { - req.setExtData( - IRequest.AUTH_TOKEN_PREFIX - + "." + tokenName + "[" + i + "]" - , tokenVals[i]); - } - } else { - String tokenVal = authToken.getInString(tokenName); - if (tokenVal != null) { - req.setExtData( - IRequest.AUTH_TOKEN_PREFIX + "." + tokenName, - tokenVal); - // if RA agent, auto assign the request - if (tokenName.equals("uid")) - uid = tokenVal; - if (tokenName.equals("group") && tokenVal.equals("Registration Manager Agents")) { - fromRA = true; - } - } - } - } - } + setAuthTokenIntoRequest(req, authToken); - if (fromRA) { - CMS.debug("CertProcessor: request from RA: " + uid); - req.setExtData(ARG_REQUEST_OWNER, uid); + // if RA agent, auto-assign the request + String raGroupName = "Registration Manager Agents"; + if (raGroupName.equals(authToken.getInString(IAuthToken.GROUP))) { + String uid = authToken.getInString(IAuthToken.UID); + if (uid == null) + uid = ""; + CMS.debug("CertProcessor: request from RA: " + uid); + req.setExtData(ARG_REQUEST_OWNER, uid); + } } // put profile framework parameters into the request -- 2.9.3