314 }
315
316 /**
317 * Set a flag to indicate that the superclass's default resolveClass()
318 * implementation should not be invoked by our resolveClass().
319 */
320 void skipDefaultResolveClass() {
321 skipDefaultResolveClass = true;
322 }
323
324 /**
325 * Disable code downloading except from the URL specified by the
326 * "java.rmi.server.codebase" property.
327 */
328 void useCodebaseOnly() {
329 useCodebaseOnly = true;
330 }
331
332 synchronized void setStreamChecker(StreamChecker checker) {
333 streamChecker = checker;
334 SharedSecrets.getJavaObjectInputStreamAccess().setValidator(this, checker);
335 }
336 @Override
337 protected ObjectStreamClass readClassDescriptor() throws IOException,
338 ClassNotFoundException {
339 ObjectStreamClass descriptor = super.readClassDescriptor();
340
341 validateDesc(descriptor);
342
343 return descriptor;
344 }
345
346 private void validateDesc(ObjectStreamClass descriptor) {
347 StreamChecker checker;
348 synchronized (this) {
349 checker = streamChecker;
350 }
351 if (checker != null) {
352 checker.validateDescriptor(descriptor);
353 }
354 }
|
314 }
315
316 /**
317 * Set a flag to indicate that the superclass's default resolveClass()
318 * implementation should not be invoked by our resolveClass().
319 */
320 void skipDefaultResolveClass() {
321 skipDefaultResolveClass = true;
322 }
323
324 /**
325 * Disable code downloading except from the URL specified by the
326 * "java.rmi.server.codebase" property.
327 */
328 void useCodebaseOnly() {
329 useCodebaseOnly = true;
330 }
331
332 synchronized void setStreamChecker(StreamChecker checker) {
333 streamChecker = checker;
334 SharedSecrets.getJavaOISAccess().setValidator(this, checker);
335 }
336 @Override
337 protected ObjectStreamClass readClassDescriptor() throws IOException,
338 ClassNotFoundException {
339 ObjectStreamClass descriptor = super.readClassDescriptor();
340
341 validateDesc(descriptor);
342
343 return descriptor;
344 }
345
346 private void validateDesc(ObjectStreamClass descriptor) {
347 StreamChecker checker;
348 synchronized (this) {
349 checker = streamChecker;
350 }
351 if (checker != null) {
352 checker.validateDescriptor(descriptor);
353 }
354 }
|