Java 将url参数转发到CAS

Java 将url参数转发到CAS,java,spring,cas,Java,Spring,Cas,是否有任何方法可以将URL中的任何参数(查询参数)从JAVA客户端转发到CAS 例如: 目前,当我的请求被转发到CAS时,查询参数被丢弃,CAS对这些参数一无所知。我想将这些参数发送到CAS 或者说,我希望CAS接收的服务url是完整的url,包括它拥有的所有参数 请建议。在CasAuthenticationEntryPoint方法开始中,通过调用createServiceUrl(请求、响应)方法创建服务url 然后,此方法将进一步调用 <code> CommonUtils

是否有任何方法可以将URL中的任何参数(查询参数)从JAVA客户端转发到CAS

例如:

目前,当我的请求被转发到CAS时,查询参数被丢弃,CAS对这些参数一无所知。我想将这些参数发送到CAS

或者说,我希望CAS接收的服务url是完整的url,包括它拥有的所有参数


请建议。

在CasAuthenticationEntryPoint方法开始中,通过调用createServiceUrl(请求、响应)方法创建服务url

然后,此方法将进一步调用

<code> 
    CommonUtils.constructServiceUrl(null, response, this.serviceProperties.getService(), null, this.serviceProperties.getArtifactParameter(), this.encodeServiceUrlWithSessionId);
</code>
参数:
请求HttpServletRequest
响应HttpServletResponse
服务配置的服务url(如果不为空,将使用此url)
serverName如果服务参数为空,则用于构造服务url的服务器名称
artifactParameterName要删除的工件参数名称(即票证)
编码是否对url进行编码(即Jsession)

constructServiceUrl->从HttpServletRequest或给定的serviceUrl构造服务url。如果同时包含serviceUrl和serviceName,则首选提供的serviceUrl

在我的例子中,我在cas配置文件中提供了服务url,因此签入服务url

<code>
    if (CommonUtils.isNotBlank(service)) {
                return encode ? response.encodeURL(service) : service;
            }
</code>
只发送回编码的服务url…而不附加查询字符串。 您还可以在上面看到,默认情况下,null请求对象被发送到constructServiceUrl,因此不会考虑查询参数

解决方案:
我从CasAuthenticationEntryPoint扩展了CasAuthenticationEntryPoint并重写了方法“createServiceUrl”由于它在超级类中受到保护…使其按我希望的方式运行。

您是否使用jasig cas?好的,为什么要将这些参数发送到cas?需要根据这些参数值执行一些操作。这些操作应在cas服务器上执行,或者您希望cas将它们转发回应用程序?参数值将定义要在cas服务器上采取的一些操作。