All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.daedafusion.security.admin.impl.DomainAdminImpl Maven / Gradle / Ivy

There is a newer version: 1.1
Show newest version
package com.daedafusion.security.admin.impl;

import com.daedafusion.sf.AbstractService;
import com.daedafusion.security.admin.DomainAdmin;
import com.daedafusion.security.admin.providers.DomainAdminProvider;
import com.daedafusion.security.authentication.Subject;
import com.daedafusion.security.authorization.Authorization;
import com.daedafusion.security.common.Context;
import com.daedafusion.security.common.Domain;
import com.daedafusion.security.common.impl.DefaultContext;
import com.daedafusion.security.exceptions.NotFoundException;
import com.daedafusion.security.exceptions.UnauthorizedException;
import org.apache.log4j.Logger;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by mphilpot on 7/21/14.
 */
public class DomainAdminImpl extends AbstractService implements DomainAdmin
{
    private static final Logger log = Logger.getLogger(DomainAdminImpl.class);

    @Override
    public void createDomain(Subject subject, Domain domain) throws UnauthorizedException
    {
        Authorization auth = getServiceRegistry().getService(Authorization.class);

        Context context = new DefaultContext();
        context.addContext("domain", domain.getDomainName());

        if(auth.isAuthorized(subject, java.net.URI.create("domain"), "POST", context))
        {
            for(DomainAdminProvider dap : getProviders())
            {
                dap.createDomain(domain);
            }
        }
        else
        {
            throw new UnauthorizedException();
        }
    }

    @Override
    public void updateDomain(Subject subject, Domain domain) throws UnauthorizedException, NotFoundException
    {
        Authorization auth = getServiceRegistry().getService(Authorization.class);

        Context context = new DefaultContext();
        context.addContext("domain", domain.getDomainName());

        if(auth.isAuthorized(subject, java.net.URI.create("domain"), "PUT", context))
        {
            for(DomainAdminProvider dap : getProviders())
            {
                dap.updateDomain(domain);
            }
        }
        else
        {
            throw new UnauthorizedException();
        }
    }

    @Override
    public void removeDomain(Subject subject, String domain) throws UnauthorizedException, NotFoundException
    {
        Authorization auth = getServiceRegistry().getService(Authorization.class);

        Context context = new DefaultContext();
        context.addContext("domain", domain);

        if(auth.isAuthorized(subject, java.net.URI.create("domain"), "DELETE", context))
        {
            for(DomainAdminProvider dap : getProviders())
            {
                dap.removeDomain(domain);
            }
        }
        else
        {
            throw new UnauthorizedException();
        }
    }

    @Override
    public List listDomains(Subject subject) throws UnauthorizedException
    {
        Authorization auth = getServiceRegistry().getService(Authorization.class);

        Context context = new DefaultContext();

        if(auth.isAuthorized(subject, java.net.URI.create("domain"), "GET", context))
        {
            List result = new ArrayList<>();

            for(DomainAdminProvider dap : getProviders())
            {
                result.addAll(dap.listDomains());
            }

            return result;
        }
        else
        {
            throw new UnauthorizedException();
        }
    }

    @Override
    public Class getProviderInterface()
    {
        return DomainAdminProvider.class;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy