/* * * * Copyright (C) 2009-2015 Typesafe Inc. <http://www.typesafe.com> * */ package play.api.libs.ws.ssl.debug import java.lang.reflect.Field import java.security.PrivilegedExceptionAction import play.api.libs.ws.ssl.MonkeyPatcher /** * A privileged action that will find relevant classes containing static final fields of type T and replace * them with the object referenced by {{newDebug}}, and switch out the "args" field value with the value defined * in {{newOptions}}. This is the only way to change JSSE debugging after the class loads. */ abstract class FixLoggingAction extends PrivilegedExceptionAction[Unit] with MonkeyPatcher with ClassFinder { def newOptions: String def isValidField(field: Field, definedType: Class[_]): Boolean = { import java.lang.reflect.Modifier._ val modifiers: Int = field.getModifiers field.getType == definedType && isStatic(modifiers) } }