2016-06-22 11 views
0

私は現在、Spring 4、Spring Security 4、Hibernate 4、MySQL 5を使用しているプロジェクトで作業しています。認証されていないユーザーページ。私はEclipseでコードをデバッグしようとしましたが、認証されていないユーザーページに移動する理由を調べることができません。プロジェクトには4種類のユーザーが使用されていますので、私に与えられたデータベース設計は少し異なります。Spring Securityユーザーはログインしましたが、拒否されたページにリダイレクトされました

私は4日前に同じ質問をcoderanchに依頼しましたが、回答がありませんでした。ここに質問Coderanchへのリンクがあります。私はそこにソースファイルを追加しました。

あなたにもうファイルが必要な場合は、私に相談してください。

答えて

0

を、ここにトリックがあります。データベースからロールをフェッチする場合は、SimpleGrantedAuthorityオブジェクトに "ROLE_"を追加する必要があります。私たちは「ROLE_」トークンを追加すべき理由の説明は、このdocに与えられている

authorities.add(new SimpleGrantedAuthority("ROLE_" + user.getType()); 

それはあります。ドキュメントから


接頭辞「ROLE_は、」ユーザーの当局との単純な比較がなされるべきであることを示すマーカーです。つまり、通常のロールベースのチェックが使用されます。 Spring Securityのアクセス制御は、単純なロールの使用に限定されません(したがって、異なるタイプのセキュリティ属性を区別するためにプレフィックスを使用すること)。

0

このチュートリアルでは、uは、どのようにその作業を理解するのに役立ち、そしてウルprblm修正されます:この質問への答えを探している人々のために Spring MVC 4 + Spring Security 4 + Hibernate Example

+0

返信いただきありがとうございます。先ほどの例を実際に見たことがありますが、その解決策を導き出すことはできませんでした。 – Parthe

+0

回答を受け入れたとマークするには、回答の横のチェックマークをクリックして、それを空白から緑色に切り替えます – FuSsA

0

Partheの回答に加えて、ログインに使用したユーザーアカウントに少なくとも1つの役割(「SUPER ADMIN」、「ADMIN」、「STAFF」)があることを確認することができます。

関連する問題