Search in sources :

Example 1 with MyProxyConnectable

use of edu.uiuc.ncsa.myproxy.MyProxyConnectable in project OA4MP by ncsa.

the class CRServlet method getX509Certificates.

/**
 * Loops through the facade looking for the active connection and calls it.
 *
 * @param transaction
 * @param localCertRequest
 * @param statusString
 * @return
 * @throws GeneralSecurityException
 */
protected LinkedList<X509Certificate> getX509Certificates(ServiceTransaction transaction, MyPKCS10CertRequest localCertRequest, String statusString) throws GeneralSecurityException {
    MyProxyConnectable mpc = getMPConnection(transaction);
    mpc.setLifetime(transaction.getLifetime());
    LinkedList<X509Certificate> certs = mpc.getCerts(localCertRequest);
    if (certs.isEmpty()) {
        info(statusString + "Error: MyProxy service returned no certs.");
        throw new GeneralException("Error: MyProxy service returned no certs.");
    }
    info(statusString + "Got cert from MyProxy, issuing a limited proxy & storing it.");
    return certs;
}
Also used : MyProxyConnectable(edu.uiuc.ncsa.myproxy.MyProxyConnectable) GeneralException(edu.uiuc.ncsa.security.core.exceptions.GeneralException) X509Certificate(java.security.cert.X509Certificate)

Example 2 with MyProxyConnectable

use of edu.uiuc.ncsa.myproxy.MyProxyConnectable in project OA4MP by ncsa.

the class OA2AuthorizationServer method setupMPConnection.

@Override
protected void setupMPConnection(ServiceTransaction trans, String username, String password) throws GeneralSecurityException {
    if (((OA2SE) getServiceEnvironment()).isTwoFactorSupportEnabled()) {
        // Stash username and password in an bogus MyProxy logon instance.
        MyMyProxyLogon myProxyLogon = new MyMyProxyLogon();
        myProxyLogon.setUsername(username);
        myProxyLogon.setPassphrase(password);
        MyProxyConnectable mpc = new MPSingleConnectionProvider.MyProxyLogonConnection(myProxyLogon);
        mpc.setIdentifier(trans.getIdentifier());
        getMyproxyConnectionCache().add(mpc);
    } else {
        createMPConnection(trans.getIdentifier(), username, password, trans.getLifetime());
        if (hasMPConnection(trans.getIdentifier())) {
            getMPConnection(trans.getIdentifier()).close();
        }
    }
}
Also used : MyProxyConnectable(edu.uiuc.ncsa.myproxy.MyProxyConnectable) OA2SE(edu.uiuc.ncsa.myproxy.oa4mp.oauth2.OA2SE)

Example 3 with MyProxyConnectable

use of edu.uiuc.ncsa.myproxy.MyProxyConnectable in project OA4MP by ncsa.

the class OA4MPServletInitializer method init.

@Override
public void init() throws ServletException {
    if (isInitRun)
        return;
    isInitRun = true;
    MyProxyDelegationServlet mps = (MyProxyDelegationServlet) getServlet();
    try {
        // mps.storeUpdates();
        mps.processStoreCheck(mps.getTransactionStore());
        mps.processStoreCheck(mps.getServiceEnvironment().getClientStore());
        mps.processStoreCheck(mps.getServiceEnvironment().getClientApprovalStore());
    } catch (IOException | SQLException e) {
        e.printStackTrace();
        throw new ServletException("Could not update table", e);
    }
    Cleanup transactionCleanup = MyProxyDelegationServlet.transactionCleanup;
    ServiceEnvironmentImpl env = (ServiceEnvironmentImpl) getEnvironment();
    MyLoggingFacade logger = env.getMyLogger();
    logger.info("Cleaning up incomplete client registrations");
    if (transactionCleanup == null) {
        transactionCleanup = new Cleanup<>(logger);
        // set it in the servlet
        MyProxyDelegationServlet.transactionCleanup = transactionCleanup;
        transactionCleanup.setStopThread(false);
        transactionCleanup.setMap(env.getTransactionStore());
        transactionCleanup.addRetentionPolicy(new ValidTimestampPolicy());
        transactionCleanup.start();
        logger.info("Starting transaction store cleanup thread");
    }
    Cleanup<Identifier, CachedObject> myproxyConnectionCleanup = MyProxyDelegationServlet.myproxyConnectionCleanup;
    if (myproxyConnectionCleanup == null) {
        myproxyConnectionCleanup = new Cleanup<Identifier, CachedObject>(logger) {

            @Override
            public List<CachedObject> age() {
                List<CachedObject> x = super.age();
                // is just trying to clean up afterwards.
                for (CachedObject co : x) {
                    Object mp = co.getValue();
                    if (mp instanceof MyProxyConnectable) {
                        try {
                            ((MyProxyConnectable) mp).close();
                        } catch (Throwable t) {
                        // don't care if it fails, get rid of it.
                        }
                    }
                }
                return x;
            }
        };
        // set it in the servlet
        MyProxyDelegationServlet.myproxyConnectionCleanup = myproxyConnectionCleanup;
        myproxyConnectionCleanup.setStopThread(false);
        Cache myproxyConnectionCache = MyProxyDelegationServlet.myproxyConnectionCache;
        if (myproxyConnectionCache == null) {
            myproxyConnectionCache = new Cache();
            // set it in the servlet
            MyProxyDelegationServlet.myproxyConnectionCache = myproxyConnectionCache;
        }
        myproxyConnectionCleanup.setMap(myproxyConnectionCache);
        myproxyConnectionCleanup.addRetentionPolicy(new ConnectionCacheRetentionPolicy(myproxyConnectionCache, env.getTransactionStore()));
        myproxyConnectionCleanup.start();
        logger.info("Starting myproxy connection cache cleanup thread");
    }
    AbstractCLIApprover.ClientApprovalThread caThread = MyProxyDelegationServlet.caThread;
    if (caThread != null && !caThread.isAlive()) {
        caThread.setStopThread(false);
        caThread.start();
    }
    KeyPairPopulationThread kpt = MyProxyDelegationServlet.kpt;
    if (kpt != null && !kpt.isAlive()) {
        kpt.setStopThread(false);
        kpt.start();
    }
    try {
        setupNotifiers();
    } catch (IOException e) {
        throw new GeneralException("Error: could not set up notifiers ", e);
    }
}
Also used : GeneralException(edu.uiuc.ncsa.security.core.exceptions.GeneralException) CachedObject(edu.uiuc.ncsa.security.core.cache.CachedObject) SQLException(java.sql.SQLException) ServiceEnvironmentImpl(edu.uiuc.ncsa.myproxy.oa4mp.server.ServiceEnvironmentImpl) ConnectionCacheRetentionPolicy(edu.uiuc.ncsa.myproxy.oa4mp.server.util.ConnectionCacheRetentionPolicy) IOException(java.io.IOException) Cleanup(edu.uiuc.ncsa.security.core.cache.Cleanup) KeyPairPopulationThread(edu.uiuc.ncsa.security.util.pkcs.KeyPairPopulationThread) ServletException(javax.servlet.ServletException) MyLoggingFacade(edu.uiuc.ncsa.security.core.util.MyLoggingFacade) MyProxyConnectable(edu.uiuc.ncsa.myproxy.MyProxyConnectable) Identifier(edu.uiuc.ncsa.security.core.Identifier) AbstractCLIApprover(edu.uiuc.ncsa.myproxy.oa4mp.server.util.AbstractCLIApprover) List(java.util.List) CachedObject(edu.uiuc.ncsa.security.core.cache.CachedObject) ValidTimestampPolicy(edu.uiuc.ncsa.security.core.cache.ValidTimestampPolicy) Cache(edu.uiuc.ncsa.security.core.cache.Cache)

Example 4 with MyProxyConnectable

use of edu.uiuc.ncsa.myproxy.MyProxyConnectable in project OA4MP by ncsa.

the class CRServlet method createMPConnection.

protected MyProxyConnectable createMPConnection(Identifier identifier, String userName, String password, long lifetime, String loa) throws GeneralSecurityException {
    MPConnectionProvider facades = new MPConnectionProvider(getMyLogger(), MyProxyDelegationServlet.getServiceEnvironment().getMyProxyServices());
    MyProxyConnectable mpc = facades.findConnection(identifier, userName, password, loa, lifetime);
    DebugUtil.dbg(this, ((MPSingleConnectionProvider.MyProxyLogonConnection) mpc).getMyProxyLogon().toString());
    getMyproxyConnectionCache().add(mpc);
    return mpc;
}
Also used : MyProxyConnectable(edu.uiuc.ncsa.myproxy.MyProxyConnectable) MPConnectionProvider(edu.uiuc.ncsa.myproxy.MPConnectionProvider)

Aggregations

MyProxyConnectable (edu.uiuc.ncsa.myproxy.MyProxyConnectable)4 GeneralException (edu.uiuc.ncsa.security.core.exceptions.GeneralException)2 MPConnectionProvider (edu.uiuc.ncsa.myproxy.MPConnectionProvider)1 OA2SE (edu.uiuc.ncsa.myproxy.oa4mp.oauth2.OA2SE)1 ServiceEnvironmentImpl (edu.uiuc.ncsa.myproxy.oa4mp.server.ServiceEnvironmentImpl)1 AbstractCLIApprover (edu.uiuc.ncsa.myproxy.oa4mp.server.util.AbstractCLIApprover)1 ConnectionCacheRetentionPolicy (edu.uiuc.ncsa.myproxy.oa4mp.server.util.ConnectionCacheRetentionPolicy)1 Identifier (edu.uiuc.ncsa.security.core.Identifier)1 Cache (edu.uiuc.ncsa.security.core.cache.Cache)1 CachedObject (edu.uiuc.ncsa.security.core.cache.CachedObject)1 Cleanup (edu.uiuc.ncsa.security.core.cache.Cleanup)1 ValidTimestampPolicy (edu.uiuc.ncsa.security.core.cache.ValidTimestampPolicy)1 MyLoggingFacade (edu.uiuc.ncsa.security.core.util.MyLoggingFacade)1 KeyPairPopulationThread (edu.uiuc.ncsa.security.util.pkcs.KeyPairPopulationThread)1 IOException (java.io.IOException)1 X509Certificate (java.security.cert.X509Certificate)1 SQLException (java.sql.SQLException)1 List (java.util.List)1 ServletException (javax.servlet.ServletException)1