1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/**
* $RCSfile$
* $Revision: 1217 $
* $Date: 2005-04-11 18:11:06 -0300 (Mon, 11 Apr 2005) $
*
* Copyright (C) 1999-2008 Jive Software. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.openfire.filetransfer;
import org.jivesoftware.openfire.auth.UnauthorizedException;
import org.jivesoftware.openfire.container.Module;
import org.jivesoftware.openfire.filetransfer.proxy.ProxyTransfer;
/**
* Manages all file transfer currently happening originating from and/or ending at users of the
* server. From here, file transfers can be administered and stats can be tracked.
*
* @author Alexander Wenckus
*/
public interface FileTransferManager extends Module {
/**
* The Stream Initiation, SI, namespace.
*/
static final String NAMESPACE_SI = "http://jabber.org/protocol/si";
/**
* Namespace for the file transfer profile of Stream Initiation.
*/
static final String NAMESPACE_SI_FILETRANSFER =
"http://jabber.org/protocol/si/profile/file-transfer";
/**
* Bytestreams namespace
*/
static final String NAMESPACE_BYTESTREAMS = "http://jabber.org/protocol/bytestreams";
/**
* Checks an incoming file transfer request to see if it should be accepted or rejected.
* If it is accepted true will be returned and if it is rejected false will be returned.
*
* @param transfer the transfer to test for acceptance
* @return true if it should be accepted false if it should not.
*/
boolean acceptIncomingFileTransferRequest(FileTransfer transfer) throws FileTransferRejectedException;
/**
* Registers that a transfer has begun through the proxy connected to the server.
*
* @param transferDigest the digest of the initiator + target + sessionID that uniquely
* identifies a file transfer
* @param proxyTransfer the related proxy transfer.
* @throws UnauthorizedException when in the current server configuration this transfer
* should not be permitted.
*/
void registerProxyTransfer(String transferDigest, ProxyTransfer proxyTransfer)
throws UnauthorizedException;
void addFileTransferInterceptor(FileTransferInterceptor interceptor);
void removeFileTransferInterceptor(FileTransferInterceptor interceptor);
void fireFileTransferIntercept(FileTransferProgress transfer, boolean isReady)
throws FileTransferRejectedException;
}