Gewisse Klassen des JRE ausschliessen?

sirbender

Top Contributor
Hi,

ich muss gegen eine gewisse Platform entwickeln die eine Whitelist von Klassen aus dem JRE mitliefert die man benutzen darf. Wenn man implizit blacklistet Klassen nutzt wird es nicht funktionieren wenn man es deployed.

Kann ich in Eclipse oder ANT erzwingen dass mein Source code nur Klassen aus dieser Whitelist referenziert und sonst nichts?

Danke,
sb
 

kay73

Bekanntes Mitglied
Vielleciht hilft es dir wenn du einen SecurityManager konfigurierst?
Ohne hier tiefergehendes Wissen zu haben: Das Testen auf Systemklassen ist ab Java 2 aus dem SecurityManager herausgenommen worden und die Methoden zu Klassen und -Ladern deprecated.

Es finden allerdings Tests auf checkPackageAccess() statt. Vielleicht muss man die Klasse AccessController heranziehen.
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Kann ich in Eclipse oder ANT erzwingen dass mein Source code nur Klassen aus dieser Whitelist referenziert und sonst nichts?
Du kannst die anderen zumindest aus den Code Completions usw. ausfiltern lassen indem du einen Type Filter anlegst.
 

Empire Phoenix

Top Contributor
Du könntest dir nen mini programm schreiben das deinen source code nach den verbotenen klassen scannt, dann das ganze bei eclipse als builder reinpacken / bzw bei ant vor dem compilieren des codes ausführen. Alternativ nen eigenes Eclipse plugin.
 
D

despikyxd

Gast
ganz ehrlich ... was für eine plattform soll das sein die white- und black-lists für klassen verwendet ...
so lange wie man standard-klassen zur verfügung hat sollte man diese auch verwenden (dürfen)
wenn die ganze sache aber als sicherheits-system fungieren soll um den zugriff auf klassen zu verweigern die dem system schaden könnten oder der gleichen kann ich dazu nur dem verantwortlichen sagen : falsches konzept ...

und um jetzt auf das problem zurück zu kommen ...

scheinbar sind dir ja beide listen bekannt ... also versuche deine programme so zu schreiben das sie die verwendeten klassen nicht verwenden ... was natürlich auch wissen über die verwendeten klassen erfordert um sicher zu gehen das nicht in irgend eine sub-klasse eine blacklist-klasse verwendet wird ...
ist halt alles etwas sehr komplex und ein durch-parsen wäre auch nur mit den source-files *zum glück jedem jdk beigelegt* möglich ...
hier besteht als grundsätzlich änderungsbedarf an dem grund warum diese es diese listen überhaupt gibt ...
falls du darüber kein wissen haben solltest hake nach und versuch es in erfahrung zu bringen ... denn irgendwie find ich das ganze sehr merkwürdig und unüblich ... eine plattform die white- und black-listen gegen besondere klassen hat ... da sollte man an der plattform dringend was ändern und nich an den zu entwickelnden projekten ...
 

Bierhumpen

Bekanntes Mitglied
[...]falsches konzept ... [...]
Du scheinst ja nicht gerade sehr viel Ahnung zu haben, auch wenn du versucht hast das in dem anderen Thread wo du genatwortet hast so erscheinen zu lassen:
Natürlich kann so etwas sinnvoll sein, z.B. wenn man nicht will, dass Code einfach die VM beendet, Daten ins Internet schickt, Umgebumgsvariablen ausliest oder ändert oder Fenster/Dialoge aufmacht. Genau für sowas gibt es schließlich den SecurityManager und Plattformen wie osgi.
also versuche deine programme so zu schreiben das sie die verwendeten klassen nicht verwenden
clever...
 
D

despikyxd

Gast
also ich glaube kaum das es irgendwie möglich sein wird aufrufe auf die klasse java.lang.System zu blockieren ... oder auf andere im package java.lang ...
und um der VM verbindungen ins netzwerk zu blockieren gibt es firewalls ...
für eigentlich so ziemlich alle aufgaben die man überhaupt irgendwie blockieren kann ohne ne in dem sinne komplett neue vm zu schreiben gibt es entsprechende lösungen ...
und aus genau diesem grund machen solche listen für mich absolut keinen sinn ...
und wirklich ... erklär mir mal wie man sowas überhaupt umsetzen soll ? natürlich gibt es den von dir angesprochenen SecurityManager ... aber ich glaube auch dieser hat keine gewalt über die java.lang klassen ... und wenn dann auch nur begrenzt ...
 

kay73

Bekanntes Mitglied
also ich glaube kaum das es irgendwie möglich sein wird aufrufe auf die klasse java.lang.System zu blockieren ... oder auf andere im package java.lang ...
Durchaus. Um Paketzugriffe zur Laufzeit zu unterbinden, startet man die VM mit einem angepassten SecurityManger. Lass mal Eclipse eine Kindklasse von SecurityManager erzeugen, alle Methoden automatisch überladen und gib den in der VM mit entsprechendem Kommandozeilenparamter an. Dann läuft da erst mal gar nichts mehr.

Um einzelne Klassen auszuschließen oder sogar auf die Verwendung einzelner Methoden zur Laufzeit zu testen und z. B. die Aufrufe zu unterbinden, schreibt man (einen) entsprechende(n) Aspekt(e) und webt diese(n) per maven-AspectJ-Plugin in die kompilierten Klassen innerhalb der JAR-Archive.

Die Frage ist, ob der TE diesen Aufwand treiben will oder muss.

Vorgaben in diese Richtung gibt es beispielsweise beim BSI, das bei der Behördensoftwarenetwicklung gern ein Wörtchen mitredet. Was mich an der Aufgabenstellung etwas irritiert, ist, dass ausgerechnet "Klassen" ausgeschlossen werden, denn nicht die Klasse per sé ist das Problem sondern die Implementierung.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
H gewisse Nummer aus String auslesen Allgemeine Java-Themen 5
D gewisse Zeichen sind nach dem entschlüsseln anders Allgemeine Java-Themen 2
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
8u3631984 Jacoco Testcoverage bei Abstracten Klassen in verschachtelten Modulen Allgemeine Java-Themen 6
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
B Wie kann ich mein 8 Klassen Gebilde objektorientierter schreiben? Allgemeine Java-Themen 114
N abstracte klassen methoden Allgemeine Java-Themen 32
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
L Classpath Zur Laufzeit bestimmte Klassen in Classloader hinzufügen? Allgemeine Java-Themen 4
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
D OOP Gemeinsamen ID-Raum für zwei Klassen implementieren Allgemeine Java-Themen 7
B Problem mit meinen Klassen Allgemeine Java-Themen 6
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
F ArrayList`s in Klassen mit Getter/Setter Allgemeine Java-Themen 8
F Code in Klassen bringen Allgemeine Java-Themen 4
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
F Klassen Verwendung abstrakter Klassen Allgemeine Java-Themen 9
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
D Klassen JLabels in anderen Klassen verwenden. Allgemeine Java-Themen 7
H Klassen LibGDX - Verschiedene Klassen als Value in einer Map Allgemeine Java-Themen 8
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
A Anonyme Klassen - Interface Allgemeine Java-Themen 5
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
J Tetris Probleme bei Klassen Allgemeine Java-Themen 14
cool_brivk24 Klassen Klassen Aufruf Fehlgeschlagen Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
S Klassen Abstrakte Klassen Allgemeine Java-Themen 5
T Log4J - Deaktivierung für einzelne Klassen Allgemeine Java-Themen 7
Tommy Nightmare Klassen Globale Klassen erstellen Allgemeine Java-Themen 7
X Klassen aus jar in jar Laden Allgemeine Java-Themen 1
S Klassen Klassen "virtuell" erstellen Allgemeine Java-Themen 5
J Aus mehreren Klassen ein Datei ausführbare machen Allgemeine Java-Themen 6
S equals-Methode bestimmer Klassen abfangen Allgemeine Java-Themen 2
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
Sin137 Struktur der Klassen & Package Allgemeine Java-Themen 2
G Klassen und interne Klassen Allgemeine Java-Themen 1
S Klassen übergeben Allgemeine Java-Themen 13
C Klassen und Konstruktor Allgemeine Java-Themen 2
S Classpath Wie kann ich Java-Library Klassen "verstecken"..? Allgemeine Java-Themen 4
A Java speech - 2 Klassen Allgemeine Java-Themen 1
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
T Schlüsselworte mehrere public-Klassen in einem Paket Allgemeine Java-Themen 7
V Klassenname von allen Klassen mit einer bestimmten Eigenschaft bekommen Allgemeine Java-Themen 2
B Classpath Eclipse findet importierte Klassen nicht Allgemeine Java-Themen 1
C DBConnection als Methode in mehreren Klassen Allgemeine Java-Themen 4
C Arten von Klassen Allgemeine Java-Themen 3
7 Verbinden von Mehreren Klassen Allgemeine Java-Themen 29
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
A also definition von klassen und string methoden und algorithmik Allgemeine Java-Themen 13
D Problem bei Vererbung abstrakter Klassen Allgemeine Java-Themen 6
M Interface Generische Klassen mit mehreren Typen überschreiben Allgemeine Java-Themen 0
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
O Klassen Programm in Klassen unterteilt, werte werden nicht mehr übernommen Allgemeine Java-Themen 3
J C++ Projekt (QT) in Java mit Klassen (nicht imperativ) nutzen (BridJ? JavaCPP? SWIG? JNA? JNI?) Allgemeine Java-Themen 2
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
S .jar hat nicht alle Klassen ??? Allgemeine Java-Themen 10
S Polymorphie Polymorphismus bei Abstrakten Klassen Allgemeine Java-Themen 2
S Tool um mehrere Klassen in einer Klasse vereinen? Allgemeine Java-Themen 6
T Wie kann ich alle existierenden Java-Klassen anzeigen lassen? Allgemeine Java-Themen 10
Landei Welche Klassen fehlen im JDK? Allgemeine Java-Themen 18
S Kapselung Statische Helper Klassen Allgemeine Java-Themen 5
A Vererbung Klassen-Downcasting wirft ClassCastException Allgemeine Java-Themen 2
N Java Klassen mit ID Allgemeine Java-Themen 21
antonbracke Klassen Klassen gegenseitig laden Allgemeine Java-Themen 4
R SecurityManager für einzelne Klassen/Threads? Allgemeine Java-Themen 38
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
M OO / Klassen / Projektstruktur Allgemeine Java-Themen 5
O Klassen werden nicht importiert Allgemeine Java-Themen 3
E selber Klassen kompilieren/ prüfen Allgemeine Java-Themen 5
Z Abstrakte Klassen /Interface Allgemeine Java-Themen 5
A Klassen und JLabel's Allgemeine Java-Themen 12
J Java-Implementierung diverser Beziehungen zwischen Klassen bzw. Objekten Allgemeine Java-Themen 2
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
E instanceof mit nicht öffentlichen Klassen Allgemeine Java-Themen 2
D Datentypen Typbestimmung unbekannter Wrapper-Klassen Allgemeine Java-Themen 5
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
X Generic muss zwei Klassen/Interfaces erfüllen Allgemeine Java-Themen 5
N Vergleich eigener Klassen Allgemeine Java-Themen 5
M Klassen Array aus Klassen bestimmter Klassen ? Allgemeine Java-Themen 11
C OOP Klassen mit "Eigenschaften" Allgemeine Java-Themen 10
H Klassen kommunizieren lassen Allgemeine Java-Themen 3
A Problem bei Serialisierung von Bibliotheks-Klassen Allgemeine Java-Themen 6
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben