Hi All,

There is a map called relayStateMap in SAMLSSORelyingPartyObject class.
This map holds some random strings against URI values. When i want to log
into APIM store or publisher it checks these random values with URI values.
If there is no URI for that requested relayState(random String value) APIM
will throw an error. below is the code that error throw

// relay state value should be a valid value, this value is mapped with
request uri.
 var relayState = request.getParameter("RelayState");

 var requestedURI =  ssoRelyingParty.getRelayStateProperty(relayState);
 if(  requestedURI==null){
  log.error("Relaystate value is invalid.");
  response.sendRedirect("../error.jag");
  return;
 }

below is the getRelayStateProperty method in SAMLSSORelyingPartyObject
class.

  public static String jsFunction_getRelayStateProperty(Context cx,
Scriptable thisObj,
                                                          Object[] args,
                                                          Function funObj)
            throws ScriptException {
        int argLength = args.length;
        if (argLength != 1 || !(args[0] instanceof String)) {
            String errorMsg = "Invalid argument. Relay state value is
missing.";
            log.error(errorMsg);
        }
        String requestedURI = relayStateMap.get((String) args[0]);
        relayStateMap.remove((String) args[0]);

        return requestedURI;

    }

I can't understand why request.getParameter("RelayState") returns a value
that no URI is in relayStateMap. can someone help me to understand this
scenario?
-- 
Lakshman Udayakantha
WSO2 Inc. www.wso2.com
lean.enterprise.middleware
Mobile: *0711241005*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to