KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > ext > security > SecurityOutputStream


1 /*
2 * ################################################################
3 *
4 * ProActive: The Java(TM) library for Parallel, Distributed,
5 * Concurrent computing with Security and Mobility
6 *
7 * Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis
8 * Contact: proactive-support@inria.fr
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or any later version.
14 *
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public
21 * License along with this library; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 * USA
24 *
25 * Initial developer(s): The ProActive Team
26 * http://www.inria.fr/oasis/ProActive/contacts.html
27 * Contributor(s):
28 *
29 * ################################################################
30 */

31 package org.objectweb.proactive.ext.security;
32
33 import java.io.IOException JavaDoc;
34 import java.io.ObjectOutputStream JavaDoc;
35 import java.io.OutputStream JavaDoc;
36
37 import java.rmi.Remote JavaDoc;
38 import java.rmi.server.RemoteObject JavaDoc;
39 import java.rmi.server.RemoteStub JavaDoc;
40
41
42 /**
43  * @author acontes
44  *
45  * To change the template for this generated type comment go to
46  * Window>Preferences>Java>Code Generation>Code and Comments
47  */

48 public class SecurityOutputStream extends ObjectOutputStream JavaDoc {
49
50     /**
51      * @param out
52      * @throws java.io.IOException
53      */

54     public SecurityOutputStream(OutputStream JavaDoc out) throws IOException JavaDoc {
55         super(out);
56         System.out.println(
57             "-*-**-*--*-*-*-**--**-*--*-**- instanciating securtityoutpoutstream");
58         java.security.AccessController.doPrivileged(new java.security.PrivilegedAction JavaDoc() {
59                 public Object JavaDoc run() {
60                     enableReplaceObject(true);
61                     return null;
62                 }
63             });
64     }
65
66     /**
67      * @throws java.io.IOException
68      * @throws java.lang.SecurityException
69      */

70     public SecurityOutputStream() throws IOException JavaDoc, SecurityException JavaDoc {
71         super();
72     }
73
74     /**
75       * replaceObject is extended to check for instances of Remote
76       * that need to be serialized as proxy objects. RemoteProxy.getProxy
77       * is called to check for and find the stub.
78       */

79     protected Object JavaDoc replaceObject(Object JavaDoc obj) throws IOException JavaDoc {
80         System.out.println(
81             " */*/*/*/*/*/*/* /*/*/**//**/ Inside replaceObject /*/**/*//*/**//*/*/**//*/*");
82         if ((obj instanceof Remote JavaDoc) && !(obj instanceof RemoteStub JavaDoc)) {
83             System.out.println(
84                 " */*/*/*/*/*/*/* /*/*/**//**/ found a Remote object " + obj +
85                 " /*/**/*//*/**//*/*/**//*/*");
86             Remote JavaDoc target = RemoteObject.toStub((Remote JavaDoc) obj);
87             if (target != null) {
88                 return target;
89             }
90         }
91         System.out.println(" */*/*/*/*/*/*/* /*/*/**//**/ Normal obj : " + obj +
92             "/*/**/*//*/**//*/*/**//*/*");
93         return obj;
94     }
95 }
96
Popular Tags