ownerIdでアカウントレコードをフィルタリングし、誰かが所有者ではないレコードにアクセスしようとするとアクセスが拒否されるようにします。owner行のデータベースをフィルタリングするjava spring security
Javaスプリングセキュリティでは可能ですか?
「はい」の場合は、すべてのグループで共有レコードのみが表示されるユーザーグループに適用できますか。
ownerIdでアカウントレコードをフィルタリングし、誰かが所有者ではないレコードにアクセスしようとするとアクセスが拒否されるようにします。owner行のデータベースをフィルタリングするjava spring security
Javaスプリングセキュリティでは可能ですか?
「はい」の場合は、すべてのグループで共有レコードのみが表示されるユーザーグループに適用できますか。
これは、Spring SecurityのFilterアノテーションで実現できます。 PreFilterとPostFilterが用意されています。セキュリティ設定ファイルに注釈を付けることで、注釈の前後に有効にすることができます。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
// your web security stuff.
}
あなたがポストフィルタ
@PostFilter("filterObject.ownerId == authentication.name")
public List<Record> findAllRecords() {
// perform query to get records.
}
春はすべてのレコードを取得し、OWNERIDが一致しないすべてのレコードをフィルタリングするために続行されます使用したい属性でフィルタリングしたいので、認証されたユーザー。
式を結合するだけでなく、他のスプリング式(hasRole、hasAuthority、isAuthenticatedなど)を適用することもできます。たとえば、ROLE_ADMINを持つユーザーのみがすべてのレコードにアクセスするようにし、ROLE_ADMINがownerIdによってフィルタにかけられない場合は、次の操作を実行できます。 http://docs.spring.io/spring-security/site/docs/current/reference/html/el-access.html#filtering-using-prefilter-and-postfilter
baeldung.com上のこれらの機能の素敵な書き込みアップ http://www.baeldung.com/spring-security-prefilter-postfilter
私が使用している:
SPRINGのDOC(あなたはユーザー 'と' または 'または' 式と演算子缶)ページング可能で、@postFilterのように見えます – user3347018