Ich habe eine Menge Fragen zu Stackoverflow über diese Frage gelesen, konnte aber nicht aufhören, eine Lösung zu finden oder für mein Problem zu lösen. Wenn es schon einen gibt wäre ich dankbar, wenn jemand einen Hinweis geben würde ...Java Security Manager vollständig deaktivieren Reflexion
Mein Problem/Frage ist, ob es möglich ist, die Reflektion für nicht vertrauenswürdigen Code komplett zu deaktivieren? Funktionen wie (Siehe test.java). Ich habe bereits einen Java Security Manager, der Sicherheitsausnahmen auslöst, wenn der Code versucht,/etc. ...
Wenn es möglich ist, kann mir jemand wie zeigen?
Bruno
test.java
TestClass cls = new TestClass();
Class c = cls.getClass();
// returns the array of Method objects
Method[] m = c.getDeclaredMethods();
for(int i = 0; i < m.length; i++) {
System.out.println("method = " + m[i].toString());
}
kopiert ich Ihren Code und fügte ein 'throw new Security (...)' aber die Ausnahme ausgelöst wird nicht ... wird die Funktion aufgerufen nicht einmal ... – Bruno
Ja, ist es nicht genannt für 'getDeclaredMethods()', aber wenn Sie über 'Method.setAccessible (true) 'auf private/geschützte Methoden zugreifen wollen, wird der' SecurityManager' aufgerufen. – Stefan
Ich habe die Answear für einen Check für 'getDeclardXYZ()' aktualisiert. Ich hoffe es hilft. – Stefan