001/**
002 * Copyright 2005-2017 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.ksb.service;
017
018import org.apache.commons.lang.StringUtils;
019import org.springframework.beans.factory.InitializingBean;
020
021/**
022 * Initializes authenticationService with user credentials.
023 *
024 * @author Kuali Rice Team (rice.collab@kuali.org)
025 */
026public class BasicAuthenticationCredentials implements InitializingBean {
027
028    private BasicAuthenticationService authenticationService;
029    private String serviceNameSpaceURI;
030    private String localServiceName;
031    private String username;
032    private String password;
033
034    /**
035     * Register the service credentials for the service
036     *
037     * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
038     */
039    public void afterPropertiesSet() throws Exception {
040        if (this.validate()) {
041            this.getAuthenticationService().registerServiceCredentials(this);
042        }
043    }
044
045    /**
046     * Gets the BasicAuthenticationService to use
047     *
048     * @return BasicAuthenticationService the BasicAuthenticationService
049     */
050    public BasicAuthenticationService getAuthenticationService() {
051        if (this.authenticationService == null) {
052            this.authenticationService = KSBServiceLocator.getBasicAuthenticationService();
053        }
054        return authenticationService;
055    }
056
057    /**
058     * Sets the authenticationService
059     *
060     * @param authenticationService the BasicAthenticationService to set
061     */
062    public void setAuthenticationService(BasicAuthenticationService authenticationService) {
063        this.authenticationService = authenticationService;
064    }
065
066    /**
067     * Gets the serviceNameSpaceURI
068     *
069     * @return String serviceNameSpaceURI of this BasicAuthenticationCredentials
070     */
071    public String getServiceNameSpaceURI() {
072        return serviceNameSpaceURI;
073    }
074
075    /**
076     * Sets the serviceNameSpaceURI
077     *
078     * @param serviceNameSpaceURI the serviceNameSpaceURI to set
079     */
080    public void setServiceNameSpaceURI(String serviceNameSpaceURI) {
081        this.serviceNameSpaceURI = serviceNameSpaceURI;
082    }
083
084    /**
085     * Gets the localServiceName
086     *
087     * @return String localServiceName of this BasicAuthenticationCredentials
088     */
089    public String getLocalServiceName() {
090        return localServiceName;
091    }
092
093    /**
094     * Sets the localServiceName
095     *
096     * @param localServiceName the localServiceName to set
097     */
098    public void setLocalServiceName(String localServiceName) {
099        this.localServiceName = localServiceName;
100    }
101
102    /**
103     * Gets the username
104     *
105     * @return username the username of this BasicAuthenticationCredentials
106     */
107    public String getUsername() {
108        return username;
109    }
110
111    /**
112     * Sets the username
113     *
114     * @param username the username to set
115     */
116    public void setUsername(String username) {
117        this.username = username;
118    }
119
120    /**
121     * Gets the password
122     *
123     * @return password the password of this BasicAuthenticationCredentials
124     */
125    public String getPassword() {
126        return password;
127    }
128
129    /**
130     * Sets the password
131     *
132     * @param password the password to set
133     */
134    public void setPassword(String password) {
135        this.password = password;
136    }
137
138    /**
139     * Validates authenticationService, serviceNameSpaceURI, localServiceName, username, and password
140     *
141     * @return true if the authentictionSerivce is not null and the serviceNameSpaceURI, localServiceName,
142     *         username, and password are not blank
143     */
144    protected boolean validate() {
145        return this.getAuthenticationService() != null &&
146                StringUtils.isNotBlank(this.getServiceNameSpaceURI()) &&
147                StringUtils.isNotBlank(this.getLocalServiceName()) &&
148                StringUtils.isNotBlank(this.getUsername()) &&
149                StringUtils.isNotBlank(this.getPassword());
150    }
151}