Jasig/WebproxyPortlet

View on GitHub
src/main/java/org/jasig/portlet/proxy/service/web/IAuthenticationFormModifier.java

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Licensed to Apereo under one or more contributor license
 * agreements. See the NOTICE file distributed with this work
 * for additional information regarding copyright ownership.
 * Apereo licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License.  You may obtain a
 * copy of the License at the following location:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.jasig.portlet.proxy.service.web;

import javax.portlet.PortletPreferences;
import java.io.IOException;

/**
 * IAuthenticationFormModifier is the interface for a bean that encapsulates logic that must be executed in order
 * to populate additional fields, which will be returned by the GatewayPortletController.
 * The GatewayPortletController actionRequest processor returns a list of values that will
 * be included in a form to submit to an external system.  If those values require complex
 * business logic, that business logic can be developed externally and called during the
 * controller execution.  Any class that implements this interface will be able to define any
 * needed logic to build that field to be passed to that form.
 *
 * @author mgillian
 * @see org.jasig.portlet.proxy.mvc.portlet.gateway.GatewayPortletController#showTarget(javax.portlet.ResourceRequest, javax.portlet.ResourceResponse, int)
 * @version $Id: $Id
 */
public interface IAuthenticationFormModifier {

    /**
     * Modifies the ContentRequest as needed for custom logic.  May add fields, modify the url, etc.
     *
     * @param contentRequest <code>ContentRequest</code> to modify
     * @param preferences PortletPreferences that may be useful when calculating form field values
     * @throws java.io.IOException
     */
    public void modifyHttpContentRequest(HttpContentRequestImpl contentRequest, PortletPreferences preferences)
            throws IOException;
    
}