/*
* Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. 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
*
* 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.wso2.carbon.identity.core.persistence;
import org.wso2.carbon.identity.base.IdentityException;
import org.wso2.carbon.identity.core.dao.OpenIDAdminDAO;
import org.wso2.carbon.identity.core.dao.OpenIDUserDAO;
import org.wso2.carbon.identity.core.dao.ParameterDAO;
import org.wso2.carbon.identity.core.dao.SAMLSSOServiceProviderDAO;
import org.wso2.carbon.identity.core.dao.XMPPSettingsDAO;
import org.wso2.carbon.identity.core.model.OpenIDAdminDO;
import org.wso2.carbon.identity.core.model.OpenIDUserDO;
import org.wso2.carbon.identity.core.model.ParameterDO;
import org.wso2.carbon.identity.core.model.SAMLSSOServiceProviderDO;
import org.wso2.carbon.identity.core.model.XMPPSettingsDO;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.user.core.UserRealm;
public class IdentityPersistenceManager {
private static IdentityPersistenceManager manager = new IdentityPersistenceManager();
private IdentityPersistenceManager() {
}
/**
* Returning the identity persistence manager instance : singleton pattern
*
* @return
* @throws IdentityException
*/
public static IdentityPersistenceManager getPersistanceManager() throws IdentityException {
return manager;
}
/**
* @param registry
* @param paramName
* @param value
* @throws IdentityException
*/
public void createOrUpdateParameter(Registry registry, String paramName, String value)
throws IdentityException {
if (paramName == null || value == null) {
throw IdentityException.error("Invalid inputs");
}
ParameterDO param = null;
param = new ParameterDO();
paramName = paramName.trim();
param.setName(paramName);
if (value != null) {
param.setValue(value);
}
ParameterDAO dao = new ParameterDAO(registry);
dao.createOrUpdateParameter(param);
}
/**
* @param registry
* @param paramName
* @return
* @throws IdentityException
*/
public String getParameterValue(Registry registry, String paramName) throws IdentityException {
String value = null;
ParameterDO param = null;
param = getParameter(registry, paramName);
if (param != null) {
value = param.getValue();
}
return value;
}
/**
* @param paramName
* @return
* @throws IdentityException
*/
public ParameterDO getParameter(Registry registry, String paramName) throws IdentityException {
ParameterDAO dao = new ParameterDAO(registry);
return dao.getParameter(paramName);
}
/**
* @param parameterDO
* @throws IdentityException
*/
public void removeParameter(Registry registry, ParameterDO parameterDO)
throws IdentityException {
ParameterDAO dao = new ParameterDAO(registry);
dao.removeParameter(parameterDO);
}
/**
* Add XMPP settings.
*
* @param userId
* @param xmppServer
* @param xmppUserName
* @param xmppUserCode
* @param enabled
* @throws IdentityException
*/
public void addXmppSettings(Registry registry, String userId, String xmppServer,
String xmppUserName, String xmppUserCode, boolean enabled, boolean isPINEnabled)
throws IdentityException {
XMPPSettingsDAO dao = new XMPPSettingsDAO(registry);
dao.addXmppSettings(userId, xmppServer, xmppUserName, xmppUserCode, enabled, isPINEnabled);
}
/**
* get the existing settings.
*
* @param userId
* @return XmppSettingsDAO instance representing the XMPP Settings
*/
public XMPPSettingsDO getXmppSettings(Registry registry, String userId) {
XMPPSettingsDAO dao = new XMPPSettingsDAO(registry);
return dao.getXmppSettings(userId);
}
/**
* Update the existing settings.
*
* @param userId
* @param xmppServer
* @param xmppUserName
* @param xmppUserCode
* @param enabled
* @throws IdentityException
*/
public void updateXmppSettings(Registry registry, String userId, String xmppServer,
String xmppUserName, String xmppUserCode, boolean enabled, boolean isPINEnabled)
throws IdentityException {
XMPPSettingsDAO dao = new XMPPSettingsDAO(registry);
dao.updateXmppSettings(userId, xmppServer, xmppUserName, xmppUserCode, enabled,
isPINEnabled);
}
/**
* Checks whether the settings are enabled.
*
* @param userId
* @return
*/
public boolean isXmppSettingsEnabled(Registry registry, String userId) {
XMPPSettingsDAO dao = new XMPPSettingsDAO(registry);
return dao.isXmppSettingsEnabled(userId);
}
/**
* Check whether the user has added the settings.
*
* @param userId
* @return
*/
public boolean hasXMPPSettings(Registry registry, String userId) {
XMPPSettingsDAO dao = new XMPPSettingsDAO(registry);
return dao.hasXmppSettings(userId);
}
/**
* @param openId
* @param userId
* @return
*/
public boolean doOpenIdSignUp(Registry registry, UserRealm realm, String openId, String userId) {
OpenIDUserDO userDO = new OpenIDUserDO();
userDO.setUserName(userId);
userDO.setOpenID(openId);
OpenIDUserDAO userDOA = new OpenIDUserDAO(registry, realm);
return userDOA.addAssociation(userDO);
}
/**
* @param openId
* @return
*/
public String getUserIdForOpenIDSignUp(Registry registry, UserRealm realm, String openId) {
OpenIDUserDAO userDOA = new OpenIDUserDAO(registry, realm);
return userDOA.getUserIdForAssociation(openId);
}
/**
* @param openID
* @return
*/
public boolean hasSignedUpForOpenId(Registry registry, UserRealm realm, String openID) {
OpenIDUserDAO userDOA = new OpenIDUserDAO(registry, realm);
return userDOA.hasAssociation(openID);
}
/**
* Get all OpenIDs for a given user
*
* @param username
* @return
*/
public String[] getOpenIDsForUser(Registry registry, UserRealm realm, String username) {
OpenIDUserDAO openIDUserDOA = new OpenIDUserDAO(registry, realm);
return openIDUserDOA.getOpenIDsForUser(username);
}
public void removeOpenIDSignUp(Registry registry, UserRealm realm, String openID) {
OpenIDUserDAO userDOA = new OpenIDUserDAO(registry, realm);
userDOA.removeOpenIDSignUp(openID);
}
/**
* Add a relying party service provider for SAML SSO
*
* @param serviceProviderDO
* @return
* @throws IdentityException
*/
public boolean addServiceProvider(Registry registry, SAMLSSOServiceProviderDO serviceProviderDO)
throws IdentityException {
SAMLSSOServiceProviderDAO serviceProviderDAO = new SAMLSSOServiceProviderDAO(registry);
return serviceProviderDAO.addServiceProvider(serviceProviderDO);
}
/**
* Get all the relying party service providers
*
* @return
* @throws IdentityException
*/
public SAMLSSOServiceProviderDO[] getServiceProviders(Registry registry)
throws IdentityException {
SAMLSSOServiceProviderDAO serviceProviderDOA = new SAMLSSOServiceProviderDAO(registry);
return serviceProviderDOA.getServiceProviders();
}
public boolean removeServiceProvider(Registry registry, String issuer) throws IdentityException {
SAMLSSOServiceProviderDAO serviceProviderDAO = new SAMLSSOServiceProviderDAO(registry);
return serviceProviderDAO.removeServiceProvider(issuer);
}
public SAMLSSOServiceProviderDO getServiceProvider(Registry registry, String issuer)
throws IdentityException {
SAMLSSOServiceProviderDAO serviceProviderDAO = new SAMLSSOServiceProviderDAO(registry);
return serviceProviderDAO.getServiceProvider(issuer);
}
public boolean isServiceProviderExists(Registry registry, String issuer) throws IdentityException {
SAMLSSOServiceProviderDAO serviceProviderDAO = new SAMLSSOServiceProviderDAO(registry);
return serviceProviderDAO.isServiceProviderExists(issuer);
}
public void createOrUpdateOpenIDAdmin(Registry registry, OpenIDAdminDO opAdmin)
throws IdentityException {
OpenIDAdminDAO opDAO = new OpenIDAdminDAO(registry);
opDAO.createOrUpdate(opAdmin);
}
public OpenIDAdminDO getOpenIDAdmin(Registry registry) throws IdentityException {
OpenIDAdminDAO opDAO = new OpenIDAdminDAO(registry);
return opDAO.getOpenIDAdminDO();
}
}