
edu.uiuc.ncsa.myproxy.oa4mp.server.ServiceEnvironmentImpl Maven / Gradle / Ivy
package edu.uiuc.ncsa.myproxy.oa4mp.server;
import edu.uiuc.ncsa.myproxy.oa4mp.server.admin.adminClient.AdminClient;
import edu.uiuc.ncsa.myproxy.oa4mp.server.admin.adminClient.AdminClientStore;
import edu.uiuc.ncsa.myproxy.oa4mp.server.admin.permissions.Permission;
import edu.uiuc.ncsa.myproxy.oa4mp.server.admin.permissions.PermissionsStore;
import edu.uiuc.ncsa.myproxy.oa4mp.server.servlet.AuthorizationServletConfig;
import edu.uiuc.ncsa.myproxy.oa4mp.server.util.AbstractCLIApprover;
import edu.uiuc.ncsa.oa4mp.delegation.common.storage.TransactionStore;
import edu.uiuc.ncsa.oa4mp.delegation.common.token.TokenForge;
import edu.uiuc.ncsa.oa4mp.delegation.server.ServiceTransaction;
import edu.uiuc.ncsa.oa4mp.delegation.server.issuers.AGIssuer;
import edu.uiuc.ncsa.oa4mp.delegation.server.issuers.ATIssuer;
import edu.uiuc.ncsa.oa4mp.delegation.server.issuers.PAIssuer;
import edu.uiuc.ncsa.oa4mp.delegation.server.storage.ClientApproval;
import edu.uiuc.ncsa.oa4mp.delegation.server.storage.ClientApprovalStore;
import edu.uiuc.ncsa.oa4mp.delegation.server.storage.ClientStore;
import edu.uiuc.ncsa.security.core.Store;
import edu.uiuc.ncsa.security.core.configuration.Configurations;
import edu.uiuc.ncsa.security.core.configuration.provider.CfgEvent;
import edu.uiuc.ncsa.security.core.configuration.provider.HierarchicalConfigProvider;
import edu.uiuc.ncsa.security.core.exceptions.NotImplementedException;
import edu.uiuc.ncsa.security.core.util.MyLoggingFacade;
import edu.uiuc.ncsa.security.servlet.TrivialUsernameTransformer;
import edu.uiuc.ncsa.security.servlet.UsernameTransformer;
import edu.uiuc.ncsa.security.util.mail.MailUtil;
import edu.uiuc.ncsa.security.util.mail.MailUtilProvider;
import edu.uiuc.ncsa.security.util.pkcs.KeyPairQueue;
import org.apache.commons.configuration.tree.ConfigurationNode;
import javax.inject.Provider;
import java.net.URI;
import java.security.KeyPair;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import static edu.uiuc.ncsa.myproxy.oa4mp.server.servlet.AbstractAuthorizationServlet.RETRY_MESSAGE;
/**
* The runtime environment for a service. This is a bridge between the configuration and the instances.
* Typically it is populated with providers (i.e.configured factories) which retrieves the instances
* as needed.
* Created by Jeff Gaynor
* on 1/9/12 at 4:08 PM
*/
public class ServiceEnvironmentImpl extends MyProxyServiceEnvironment implements ServiceEnvironment {
public KeyPairQueue getKeyPairQueue() {
return kpq;
}
KeyPairQueue kpq = new KeyPairQueue();
public KeyPair getKeyPair() {
return kpq.pop();
}
AuthorizationServletConfig authorizationServletConfig;
public AuthorizationServletConfig getAuthorizationServletConfig() {
return authorizationServletConfig;
}
AGIssuer agIssuer;
URI serviceAddress;
@Override
public URI getServiceAddress() {
return serviceAddress;
}
public void setServiceAddress(URI serviceAddress) {
this.serviceAddress = serviceAddress;
}
@Override
public AGIssuer getAgIssuer() {
if (agIssuer == null) {
agIssuer = agip.get();
}
return agIssuer;
}
ATIssuer atIssuer;
@Override
public ATIssuer getAtIssuer() {
if (atIssuer == null) {
atIssuer = atip.get();
}
return atIssuer;
}
@Override
public PAIssuer getPaIssuer() {
if (paIssuer == null) {
paIssuer = paip.get();
}
return paIssuer;
}
PAIssuer paIssuer;
@Override
public TokenForge getTokenForge() {
return tfp.get();
}
public static class MessagesProvider extends HierarchicalConfigProvider