Vra

Die stelsel Ek is tans besig om op vereis 'n paar-rol-gebaseerde sekuriteit, wat goed is voorsiening gemaak vir in die Java EE stapel. Die stelsel van voorneme is om 'n raamwerk vir besigheid domein kundiges om hul kode te skryf op die top van wees.

Daar is egter ook 'n vereiste vir data security. Dit wil sê, wat inligting sigbaar vir 'n eindgebruiker is.

Dit beteken effektief verminder sigbaarheid te ry (en miskien selfs kolomme) in die databasis.

Ons gebruik Hibernate vir ons volharding. Ons is egter die gebruik van ons eie aantekeninge sodat dit nie aan ons volharding keuse bloot te stel aan die besigheid domein kundiges.

Vir ry gebaseerde sekuriteit beteken dit ons kan 'n aantekening by te voeg soos @Secured by die entiteit vlak, wat sal veroorsaak dat 'n ekstra kolom aan die onderliggende tafel toe te voeg aan ons kies aan bande lê?

Vir kolom gebaseerde sekuriteit, ons kan dalk het @Secured om óf te help navraag geslag, of miskien gebruik 'n aspek om te filtreer die inligting teruggekeer?

Ek is nuuskierig om te weet hoe dit kan beïnvloed hiberneer se kas meganismes asook?

Ek is seker 'n baie ander sal dieselfde probleem gehad het, en ek het gewonder hoe jy dit benader?

Baie waardeer ...

Was dit nuttig?

Oplossing

Hibernate het 'n filter meganisme wat kan werk vir jou. Die filters sal herskryf die navrae hiberneer genereer om 'n bykomende klousule te beperk die rye teruggekeer sluit. Ek is nie bewus van enigiets in hiberneer tot masker / versteek kolomme.

Jou databasis kan ook ondersteuning vir hierdie funksie. Oracle, byvoorbeeld, het die Virtual Private databasis (VPD) wat jou navrae sal herskryf op die databasis vlak. Hierdie oplossing het die bykomende voordeel dat enige eksterne program (bv verslagdoening gereedskap) wat teen jou db sal jou sekuriteit beperkinge toegepas word. VPD het ook ondersteun om beperkte kolomme masker met NULLs.

Ongelukkig is die bogenoemde oplossings het nie voldoende om die sekuriteit vereistes vir die tipe projekte Ek werk gewoonlik op te ondersteun. Daar is gewoonlik 'n soort van konteks wat nie maklik kan uitgedruk word in die bostaande oplossings. Byvoorbeeld, kan gebruikers data wat hulle geskep het, of wat reeds gemerk as openbare oog, of behoort aan 'n projek wat hulle bestuur.

Ons skep tipies navraag / finder / DAO voorwerpe waar ons slaag in wat nodig is om die sekuriteit af te dwing en dan daarvolgens te skep die navraag waardes.

Ek hoop dit help

Ander wenke

By die gebruik van Hibernate filters wat jy nodig het om bewus te wees dat die bykomende beperkings nie sal toegepas word op SQL-stellings generted deur die load() of get() metodes.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top