KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > alfresco > filesys > server > auth > acl > DomainAccessControl


1 /*
2  * Copyright (C) 2005 Alfresco, Inc.
3  *
4  * Licensed under the Mozilla Public License version 1.1
5  * with a permitted attribution clause. You may obtain a
6  * copy of the License at
7  *
8  * http://www.alfresco.org/legal/license.txt
9  *
10  * Unless required by applicable law or agreed to in writing,
11  * software distributed under the License is distributed on an
12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific
14  * language governing permissions and limitations under the
15  * License.
16  */

17 package org.alfresco.filesys.server.auth.acl;
18
19 import org.alfresco.filesys.server.SrvSession;
20 import org.alfresco.filesys.server.auth.ClientInfo;
21 import org.alfresco.filesys.server.core.SharedDevice;
22
23 /**
24  * Domain Name Access Control Class
25  * <p>
26  * Allow/disallow access based on the SMB/CIFS session callers domain name.
27  */

28 public class DomainAccessControl extends AccessControl
29 {
30
31     /**
32      * Class constructor
33      *
34      * @param domainName String
35      * @param type String
36      * @param access int
37      */

38     protected DomainAccessControl(String JavaDoc domainName, String JavaDoc type, int access)
39     {
40         super(domainName, type, access);
41     }
42
43     /**
44      * Check if the domain name matches the access control domain name and return the allowed
45      * access.
46      *
47      * @param sess SrvSession
48      * @param share SharedDevice
49      * @param mgr AccessControlManager
50      * @return int
51      */

52     public int allowsAccess(SrvSession sess, SharedDevice share, AccessControlManager mgr)
53     {
54
55         // Check if the session has client information
56

57         if (sess.hasClientInformation() == false
58                 || sess instanceof org.alfresco.filesys.smb.server.SMBSrvSession == false)
59             return Default;
60
61         // Check if the domain name matches the access control name
62

63         ClientInfo cInfo = sess.getClientInformation();
64
65         if (cInfo.getDomain() != null && cInfo.getDomain().equalsIgnoreCase(getName()))
66             return getAccess();
67         return Default;
68     }
69 }
70
Popular Tags