/* * Copyright 2004, 2005, 2006 Acegi Technology Pty Limited * * Licensed 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 * * 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.springframework.security.cas; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; /** * Stores properties related to this CAS service. * <p> * Each web application capable of processing CAS tickets is known as a service. This * class stores the properties that are relevant to the local CAS service, being the * application that is being secured by Spring Security. * * @author Ben Alex */ public class ServiceProperties implements InitializingBean { public static final String DEFAULT_CAS_ARTIFACT_PARAMETER = "ticket"; public static final String DEFAULT_CAS_SERVICE_PARAMETER = "service"; // ~ Instance fields // ================================================================================================ private String service; private boolean authenticateAllArtifacts; private boolean sendRenew = false; private String artifactParameter = DEFAULT_CAS_ARTIFACT_PARAMETER; private String serviceParameter = DEFAULT_CAS_SERVICE_PARAMETER; // ~ Methods // ======================================================================================================== public void afterPropertiesSet() throws Exception { Assert.hasLength(this.service, "service cannot be empty."); Assert.hasLength(this.artifactParameter, "artifactParameter cannot be empty."); Assert.hasLength(this.serviceParameter, "serviceParameter cannot be empty."); } /** * Represents the service the user is authenticating to. * <p> * This service is the callback URL belonging to the local Spring Security System for * Spring secured application. For example, * * <pre> * https://www.mycompany.com/application/login/cas * </pre> * * @return the URL of the service the user is authenticating to */ public final String getService() { return this.service; } /** * Indicates whether the <code>renew</code> parameter should be sent to the CAS login * URL and CAS validation URL. * <p> * If <code>true</code>, it will force CAS to authenticate the user again (even if the * user has previously authenticated). During ticket validation it will require the * ticket was generated as a consequence of an explicit login. High security * applications would probably set this to <code>true</code>. Defaults to * <code>false</code>, providing automated single sign on. * * @return whether to send the <code>renew</code> parameter to CAS */ public final boolean isSendRenew() { return this.sendRenew; } public final void setSendRenew(final boolean sendRenew) { this.sendRenew = sendRenew; } public final void setService(final String service) { this.service = service; } public final String getArtifactParameter() { return this.artifactParameter; } /** * Configures the Request Parameter to look for when attempting to see if a CAS ticket * was sent from the server. * * @param artifactParameter the id to use. Default is "ticket". */ public final void setArtifactParameter(final String artifactParameter) { this.artifactParameter = artifactParameter; } /** * Configures the Request parameter to look for when attempting to send a request to * CAS. * * @return the service parameter to use. Default is "service". */ public final String getServiceParameter() { return this.serviceParameter; } public final void setServiceParameter(final String serviceParameter) { this.serviceParameter = serviceParameter; } public final boolean isAuthenticateAllArtifacts() { return this.authenticateAllArtifacts; } /** * If true, then any non-null artifact (ticket) should be authenticated. Additionally, * the service will be determined dynamically in order to ensure the service matches * the expected value for this artifact. * * @param authenticateAllArtifacts */ public final void setAuthenticateAllArtifacts( final boolean authenticateAllArtifacts) { this.authenticateAllArtifacts = authenticateAllArtifacts; } }