2016-04-11 12 views
0

私のURLが春のセキュリティインターセプトURLパターンが機能していません#

// localhostです:8080 /サーバー/#/ビュー/ 3

// localhost:8080/server /#/ create

(#はデフォルトでiとして存在しますとURL //localhost:8080/server/#/createにアクセスしようとしたとき、私は以下のURLのためのいくつかの権限を割り当てる

)angularjsからルーティング使用して、私は以下のURLパターン

security:intercept-url pattern="/#/create" access="admin" 

security:intercept-url pattern="/#/view/**" access="admin" 

を使用しています管理者とは異なる役割(例:ユーザー)、私はこのページにアクセスできます。//localhost:8080/server/abc/createのようなURLは、それに応じてURLパターンを変更すると、Access Deniedと表示されます。

URLの#は無視され、この問題を解決する方法は他にありますか?

+0

期待どおりで、httpがどのように機能しているか。 #の後のすべてがサーバーに送信されません。 #は基本的にアンカーであり、クライアントのためのものです。それがウェブの仕組みです。 –

答えて

0

フロントエンド(angularjs)またはバックエンド(スプリングセキュリティ)にセキュリティレイヤーを実装する方法は2通りあります。

角度jでは、プラグインを使用して、認証が成功した後にバックエンドによって提供されるユーザー権限をチェックすることで、各ルートにセキュリティを提供できます。このようなプラグインは簡単なこのブログは angular-role-base-auth

またはここ

angular-permission

別のものを説明した。しかし、私はjavascriptのコードは簡単経由してハッキングすることができますので、まだバックエンドでセキュリティ層を実装することをお勧めするものとしてカスタマイズすることができますブラウザコンソール。春のセキュリティでは、これらのページから呼び出されたWebサービスの権限チェックを追加し、アクセス拒否を返すことができます。フロントエンドでは、アクセス拒否応答が発生すると、そのページを禁止メッセージテンプレートを表示するカスタムページにリダイレクトします。

関連する問題