package net.unicon.cas.addons.web.view;
import java.util.Collections;
import java.util.Map;
import org.springframework.webflow.execution.RequestContext;
/**
* This really is an implementation of the {@link CasLoginViewSelector}
* that shows how the login view may be routed to a different screen based on the
* existence of a particular parameter.
*
* @author Misagh Moayyed
* @since 1.9
*/
public class RequestParameterCasLoginViewSelector implements CasLoginViewSelector {
private String parameterName = "view";
private String defaultView = "casLoginView";
private Map<String, String> viewMappings = Collections.emptyMap();
@Override
public String selectLoginView(final RequestContext request) {
if (request.getRequestParameters().contains(parameterName)) {
final String key = request.getRequestParameters().get(parameterName);
if (this.viewMappings.containsKey(key)) {
return this.viewMappings.get(key);
}
}
return defaultView;
}
public final void setParameterName(final String parameterName) {
this.parameterName = parameterName;
}
public final void setDefaultView(final String defaultView) {
this.defaultView = defaultView;
}
public final String getParameterName() {
return this.parameterName;
}
public final String getDefaultView() {
return this.defaultView;
}
public final Map<String, String> getViewMappings() {
return this.viewMappings;
}
public final void setViewMappings(final Map<String, String> viewMappings) {
this.viewMappings = viewMappings;
}
}