More Related Content
Similar to Alfresco study presentation 38th customize How-To WebDAV (20)
More from Takeshi Totani (12)
Alfresco study presentation 38th customize How-To WebDAV
- 10. : WebDAV
m_davMethods = new Hashtable<String, Class<? extends
WebDAVMethod>>();
m_davMethods.put(WebDAV.METHOD_PROPFIND, PropFindMethod.class);
m_davMethods.put(WebDAV.METHOD_PROPPATCH, PropPatchMethod.class);
m_davMethods.put(WebDAV.METHOD_COPY, CopyMethod.class);
m_davMethods.put(WebDAV.METHOD_DELETE, DeleteMethod.class);
m_davMethods.put(WebDAV.METHOD_GET, GetMethod.class);
m_davMethods.put(WebDAV.METHOD_HEAD, HeadMethod.class);
m_davMethods.put(WebDAV.METHOD_LOCK, LockMethod.class);
m_davMethods.put(WebDAV.METHOD_MKCOL, MkcolMethod.class);
m_davMethods.put(WebDAV.METHOD_MOVE, MoveMethod.class);
m_davMethods.put(WebDAV.METHOD_OPTIONS, OptionsMethod.class);
m_davMethods.put(WebDAV.METHOD_POST, PostMethod.class);
m_davMethods.put(WebDAV.METHOD_PUT, PutMethod.class);
m_davMethods.put(WebDAV.METHOD_UNLOCK, UnlockMethod.class);
- 11. : WebDAV
protected void executeImpl() throws WebDAVServerException, Exception
{
FileFolderService fileFolderService = getFileFolderService();
NodeRef rootNodeRef = getRootNodeRef();
String path = getPath();
...
FileInfo nodeInfo = null;
try
{
nodeInfo = getDAVHelper().getNodeForPath(rootNodeRef, path);
}
- 15. public class WebDAVHelper extends org.alfresco.repo.webdav.WebDAVHelper
{
public List<FileInfo> getChildren(FileInfo fileInfo) throws
WebDAVServerException
{
List<FileInfo> children =
this.getFileFolderService().list(fileInfo.getNodeRef());
if ( this.rootNodeRefs.contains(fileInfo.getNodeRef())) {
YourHomeFileInfo yourHome = new YourHomeFileInfo();
children.add(yourHome);
}
return children;
}
YourHome
- 16. public FileInfo getNodeForPath(NodeRef rootNodeRef, String path) throws
FileNotFoundException
{
…
if ( path.startsWith("/" + YOUR_HOME)) {
// resolve your your name
String userName =
this.getAuthenticationService().getCurrentUserName();
NodeRef person = this.personService.getPerson(userName);
NodeRef homeFolderRef =
(NodeRef)this.getNodeService().getProperty(person,
ContentModel.PROP_HOMEFOLDER);
if ( homeFolderRef != null ) {
FileInfo userHome =
this.getFileFolderService().getFileInfo(homeFolderRef);
String pathLeft = path.replace("/" + YOUR_HOME, "");
if ( pathLeft.length() > 0 ) {
List<String> splitPath = splitAllPaths(pathLeft);
return
this.getFileFolderService().resolveNamePath(userHome.getNodeRef(),
splitPath);
}
else {
return
this.getFileFolderService().getFileInfo(homeFolderRef);
}
}
YourHome
- 17. <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="webDAVHelper"
class="jp.aegif.study.alfresco.webdav2.WebDAVHelper"
parent="baseWebDAVHelper" >
<property name="personService" ref="PersonService" />
</bean>
</beans>
bean
custom-wedav—context.xml
Alfresco