Problem mit Java und XACML

Hallo,

ich habe ein kleines Problem mit xacml und weiß nicht wie ich es lösen soll. Ich habe ein request.xml und ein Role.xml. In meinem Request habe ich als Subject zB „Conny“ in meinem Role.xml gebe ich als Subject aber zB „Employee“ mit. Damit ich das auflösen kann habe ich die Klasse AttributeFinderModule überschrieben. in der ich die findAttribute überschrieben habe. Das funktiert auch das ich dann sage wenn mein Subject Conny heißt hat er zugriff auf das Role.xml. Ich habe jetzt aber das Problem, dass ich das Subject aus der Role.xml auslesen will. Also das ich employee zurückbekomme. um zu vergleichen ob Conny zugriff auf role.xml hat. Weiß jemand wie ich auf die Role.xml zugreifen könnte? auf das requst zuzugreifen ist kein problem, aber eben auf das role.xml zuzugreifen schaff ich nicht.
danke mfg Conny

Ich hab absolut keine Ahnung, was du damit meinst! Vielleicht kannst dus noch anders formulieren?

Ralph

ich habe ein kleines Problem mit xacml und weiß nicht wie ich es lösen soll. Ich habe ein request.xml und ein Role.xml. In meinem Request habe ich als Subject zB „Conny“ in meinem Role.xml gebe ich als Subject aber zB „Employee“ mit. Damit ich das auflösen kann habe ich die Klasse AttributeFinderModule überschrieben. in der ich die findAttribute überschrieben habe. Das funktiert auch das ich dann sage wenn mein Subject Conny heißt hat er zugriff auf das Role.xml. Ich habe jetzt aber das Problem, dass ich das Subject aus der Role.xml auslesen will. Also das ich employee zurückbekomme. um zu vergleichen ob Conny zugriff auf role.xml hat. Weiß jemand wie ich auf die Role.xml zugreifen könnte? auf das requst zuzugreifen ist kein problem, aber eben auf das role.xml zuzugreifen schaff ich nicht.
danke mfg Conny

Ja also es geht um eine Hierachie.
zb der User „Conny“ gehört zur Gruppe „employee“. Wenn ich jetzt im requesst.xml den User mitgebe.
also zb User „conny“ will die Resource „xyz.txt“ lesen.
jetzt schaut mein java programm dann alle xml Policies durch die ich habe. In dem Fall meine Role.xml…dort steht als User aber nicht „conny“ sonder „employee“ da es ja mehrere Benutzer der Gruppe angehören können. Also muss ich in meinem Java Programm jetzt nachsehn, ob Conny zur Gruppe employee zugriff, d.h. ob sie auf die Resource zugreifen darf.

Dazu habe ich die Klasse AttributeFinderModule überschrieben. und in der die Methode findAttribtte(…).
Ich frage dort einfach statisch ab, wenn User Conny ist, dann Group = employee.
Jetzt will ich aber das ich aus dem Role.xml die Gruppe zuerst rauslese, und dann abfrage ob „Conny“ der Gruppe angehört.
Also ich will das es NICHT statisch ist. Da ich dann ja mehrere gruppen haben kann.

versteht jetzt jemand mein problem besser?
danke Conny

Kenne XACML nicht, aber hier eine Idee…
Jo,
also wenn das immer über die gleiche Anzahl Ebenen geht (hier 2: User können in Gruppen sein, aber nicht Gruppen in Gruppen(Dann wirds komplizierter) ), dann geht das recht einfach mit einer XPath-Abfrage:
(WEiss nicht, wie dein xml aussieht, deshalb mal Beispiel-xml-Einträge)

Abfrage: conny wird übergeben =\> $hiergesuchtername
test="(Group[@name=/Policy/@allowuser]/UserInGroup/@ref=$hiergesuchtername) or (/Policy/@allowuser=$hiergesuchtername)"

Wenn du diese Abfrage nutzt (Zum Beispiel mit selectNodes (oder wie das in Java jetzt heisst)), dann gibt der ein leeres Nodeset zurück, wenn der user nicht darf, sonst steht was drin. Kann sein, dass da ein paar syntaktische Fehler drin sind, aber so ähnlich müsstes gehen.

Ich hoffe, das gibt dir eine Idee und ich habe nicht ganz falsch geraten, was du meinst, denn XACML kenn ich nicht…

Ralph