Package org.infoglue.cms.util.webdav

Source Code of org.infoglue.cms.util.webdav.AllRepositoryResource

package org.infoglue.cms.util.webdav;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.infoglue.cms.controllers.kernel.impl.simple.AccessRightController;
import org.infoglue.cms.controllers.kernel.impl.simple.UserControllerProxy;
import org.infoglue.cms.exception.SystemException;
import org.infoglue.cms.security.AuthenticationModule;
import org.infoglue.cms.security.InfoGluePrincipal;

import com.bradmcevoy.http.Auth;
import com.bradmcevoy.http.CollectionResource;
import com.bradmcevoy.http.FolderResource;
import com.bradmcevoy.http.PropFindableResource;
import com.bradmcevoy.http.Range;
import com.bradmcevoy.http.Request;
import com.bradmcevoy.http.Resource;
import com.bradmcevoy.http.Request.Method;
import com.bradmcevoy.http.exceptions.BadRequestException;
import com.bradmcevoy.http.exceptions.ConflictException;
import com.bradmcevoy.http.exceptions.NotAuthorizedException;

public class AllRepositoryResource implements PropFindableResource, FolderResource //, DigestResource
{
  private final static Logger logger = Logger.getLogger(AllRepositoryResource.class.getName());

  private final RepositoryResourceFactory resourceFactory;
  private InfoGluePrincipal principal = null;
 
  public AllRepositoryResource(RepositoryResourceFactory resourceFactory) {
    this.resourceFactory = resourceFactory;
 
 
  public Date getCreateDate() {
    // Unknown
    return null;
  }

  public Object authenticate(String user, String pwd)
  {
    if(logger.isInfoEnabled())
      logger.info("authenticate user:" + user);

    try
    {
     
          Map loginMap = new HashMap();
          loginMap.put("j_username", user);
          loginMap.put("j_password", pwd);
      String authenticatedUserName = AuthenticationModule.getAuthenticationModule(null, null, null, true).authenticateUser(loginMap);
      if(logger.isInfoEnabled())
        logger.info("authenticatedUserName:" + authenticatedUserName);

      if(authenticatedUserName != null)
        this.principal = UserControllerProxy.getController().getUser(authenticatedUserName);

      return authenticatedUserName;
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }

    return null;
  }
 

  public boolean authorise( Request request, Method method, Auth auth )
  {
    if(this.principal == null || auth == null)
    {
      logger.info("Invalid authorize in webdav:" + this.principal + ":" + auth)
      return false;
    }
     
    if(logger.isInfoEnabled())
      logger.info("authorise user in represource:" + this.principal + ":" + auth.getTag() + ":" + auth.getUser());
    try
    {
      boolean hasAccess = AccessRightController.getController().getIsPrincipalAuthorized(this.principal, "WebDAV.Read", true);
      logger.info("hasAccess:" + hasAccess);
      if(!hasAccess)
        return false;
    }
    catch (SystemException e)
    {
      e.printStackTrace();
    }

    return true;
  }

  public String checkRedirect(Request arg0) {
    // No redirects
    return null;
  }

  public Date getModifiedDate() {
    // Unknown
    return null;
  }

  public String getName() {
    return "";
  }

  public String getRealm() {
    return "infoglue";
  }

  public String getUniqueId() {
    return null;
  }

  public Resource child(String name)
  {
    if(logger.isInfoEnabled())
      logger.info("child name:" + name);

    List<? extends Resource> children = getChildren();
    if(logger.isInfoEnabled())
      logger.info("children:" + children.size());
    Iterator<? extends Resource> childrenIterator = children.iterator();
    while(childrenIterator.hasNext())
    {
      Resource resource = childrenIterator.next();
      if(logger.isInfoEnabled())
        logger.info("resource.getName():" + resource.getName());
     
      if(resource.getName().equals(name))
      {
        return resource;
      }
    }
    return null;

  }

  public List<? extends Resource> getChildren() {
    return resourceFactory.findAllRepositories();
  }

  public CollectionResource createCollection(String arg0)
      throws NotAuthorizedException, ConflictException {
    // TODO Auto-generated method stub
    return null;
  }

  public Resource createNew(String arg0, InputStream arg1, Long arg2,
      String arg3) throws IOException, ConflictException {
    // TODO Auto-generated method stub
    return null;
  }

  public void copyTo(CollectionResource arg0, String arg1) {
    // TODO Auto-generated method stub
  }

  public void delete() throws NotAuthorizedException, ConflictException,
      BadRequestException {
    // TODO Auto-generated method stub
  }

  public Long getContentLength() {
    // TODO Auto-generated method stub
    return null;
  }

  public String getContentType(String arg0) {
    // TODO Auto-generated method stub
    return null;
  }

  public Long getMaxAgeSeconds(Auth arg0) {
    // TODO Auto-generated method stub
    return null;
  }

  public void sendContent(OutputStream arg0, Range arg1,
      Map<String, String> arg2, String arg3) throws IOException,
      NotAuthorizedException, BadRequestException {
    // TODO Auto-generated method stub
  }

  public void moveTo(CollectionResource arg0, String arg1)
      throws ConflictException {
    // TODO Auto-generated method stub
  }
}
TOP

Related Classes of org.infoglue.cms.util.webdav.AllRepositoryResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.