2016-03-21 14 views
0

spring mvcでフィールドごとにアクセスしたいと思います。 たとえば、フィールドあたりのSpringbootセキュリティアクセス

私は3つのフィールドを持つエンティティを持っています。 id、name、description。 ROLE_USERのユーザーには名前のみが表示され、ROLE_ADMINには名前と説明が表示されます。エンティティとdtoでは @PreAuthorize("hasRole('ROLE_USER')")を使用しようとしましたが、サービスとコントローラでのみ動作します。

@Entityの前に@Componentを使用しようとしましたが動作しません。

PS:prePostEnabled

@EnableGlobalMethodSecurity(prePostEnabled = true) 

任意のソリューションを構成していますか?

+0

方法ごとではなく、フィールドごとに作成する必要があります。 私はちょうどwana応答のみjson、そのWebプロジェクトではないthymleafを使用しないでください – dox1992

答えて

0

thymeleafを使用している場合は、jspまたはthymeleaf springセキュリティ方言を使用している場合、このプロポーザルでは、より良いアプローチは春のセキュリティタグを使用しています。

あなたのポンポンでこのMavenの依存関係を持っている最初のケース第2のケースで

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-taglibs</artifactId> 
    <version>your.version</version> 
</dependency> 

であなたのポンポンでこのMavenの依存関係を持っている

<dependency> 
    <groupId>org.thymeleaf.extras</groupId> 
    <artifactId>thymeleaf-extras-springsecurity4</artifactId> 
    <version>your.version</version> 
</dependency> 

キーポイント聞くが@EnableGlobalMethodSecurityとということですプレゼンテーションレベルの保護ではなく、メソッドのセキュリティ保護に取り組んでいます。言い換えれば、あなたの設定では、プレゼンテーションの保護のためにSecurity contectがどのようにポピュレートされているかをアプリケーションレベルで呼び出すメソッドを保護できます。Springセキュリティは、このpropouseを利用するためのカスタムタグを提供します。

私はこれがあなたを助けてくれることを願っています

+0

私はメソッドごとではなく、フィールドごとにする必要があります。私はちょうどwana応答のみjson、あなたのsecuriyコンテキストでベースであなたのsrcurityを実行する側面を実装する可能性がありますフィールドの細かいセキュリティをしたい場合は、 – dox1992

+0

春のセキュリティの傍受のメソッドとurlメソッドに添付thymleafを使用しないでください制限 –

関連する問題