0

テスト中の単純なWebアプリがあります。管理者と通常ユーザーの 2 つのレベルがあります。このプロジェクトには 3 つのエンティティもあります。私が達成しようとしているのは、ユーザーが最初のエンティティのエントリを作成できても削除できないインスタンスです。

@RequestMapping を使用することがこれを達成する方法だと思いますが、実装方法が完全にはわかりません。そうでない場合、他にどのような方法がありますか? スニペットコードをいただければ幸いです。

前もって感謝します。

4

1 に答える 1

0

jspxユーザー インターフェイスからのアクセスのみをブロックし、コントローラーからの削除メソッドの呼び出しを禁止する場合は、ビュー ファイルの削除ボタンを非表示にすることができます。追加の方法を使用して、ユーザーによる特定の操作の実行を制限することもできます。

1. ユーザーインターフェース

ただし、承認されていないユーザーが削除操作を実行しないようにするには、コントローラーを手動でチェックする必要があります。

これを行うには、まず、Spring Security JSP タグ ライブラリの名前空間をファイルにインポートする必要がありjspxます。

xmlns:sec="http://www.springframework.org/security/tags"

次に、インポートしたばかりの Spring セキュリティ タグを使用して、ユーザー レベルで表示する必要がある要素を囲みます。

例:

   <sec:authorize access="hasRole('ROLE_ADMIN')">
       <p>User is an administrator</p>
       <!-- Delete button goes here -->
    </sec:authorize>

タグ ライブラリの詳細については、http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.htmlをご覧ください。

2.コントローラー

ROLE_ADMIN次のコードをapplicationContext-security.xml

<intercept-url pattern="/countries/**" access="hasRole('ROLE_ADMIN')" method="DELETE"/>

うまくいかない場合は、次のリンクを試してみてください。

http://forum.springsource.org/showthread.php?123781-intercept-url-method-attribute-not-work-with-put-and-delete

Spring Security に関する興味深いチュートリアルについては、http://static.springsource.org/spring-security/site/petclinic-tutorial.htmlにアクセスしてください。

乾杯。

于 2013-03-29T14:49:05.420 に答える