2011-08-15 3 views
0

this tutorialを使用してspring mvcユーザログインページを作成しようとしています。SpringMVC 3 Springセキュリティユーザログインの作成

チュートリアルは素晴らしいですが、一つのことは明らかではありません。second pageUserRepositoryインターフェイスについてお話します。インタフェースメソッドはUserを返します。私が混乱しているのは、Userのことです。彼は、春のフレームワークのUserオブジェクト部分を指していますか?私が尋ねる理由は、Springセキュリティフレームワークの一部であるUserオブジェクトには存在しない電子メールアドレスフィールドを持ちたいからです。

また、UserLoginServiceの彼の実装では、彼は方法があります。

@Override 
public User getLoggedUser() { 
    User loggedUser = null; 
    AuthenticationUserDetails userDetails = getLoggedUserDetails(); 
    if (userDetails != null) {    
     loggedUser = userRepository.findById(userDetails.getId()); 
    } 
    return loggedUser; 
} 

トラブルはAuthenticationUserDetailsが私は彼が作成するために、Springのユーザを拡張するために私達をつもりと思わせるgetId()方法を、持っていないということです私たち自身のアカウントエンティティまたは何か。

私はAccountRoleのエンティティを作成するためにHibernateを使いたいと思っています。これまで私が見つけたすべてのチュートリアルは、Spring MVC 3以前のものか、ちょっとしたものを与えるようです。

誰でもこれを明確にしたり、Spring SecurityとSpringMVCを使ったユーザログインの良いチュートリアルを参照できますか?

答えて

1

Userは、スプリングセキュリティUserDetailsオブジェクトです。フィールドを追加するためにオブジェクトを拡張する場合は、インターフェイスを実装し、UserDetailsオブジェクトを独自のフィールドで拡張します。すると、以下のように、あなたのサービスを使用するように春のセキュリティを設定します。

<security:authentication-manager> 
    <security:authentication-provider user-service-ref="myDetailsService" /> 
</security:authentication-manager> 
+0

私は休止状態使用しているので、私は私自身の 'User'オブジェクトを作成するために' UserDetails'を実装し、その後、私はまたに 'GrantedAuthorities'を実装する必要があります私自身の「ロール」エンティティを作成します。これは正しいです? – Ali

+0

正確ではありません。 GrantedAuthorityImpl( "ROLE_SOME_ROLE") 'を使用して' GrantedAuthority'オブジェクトの 'List'を作成し、' User'オブジェクトに 'List'を追加するだけです。例:http://www.codercorp.com/blog/spring/security-spring/writing-custom-userdetailsservice-for-spring-security.html。 – atrain

+0

ありがとう、私はこの後(今日)後で刺すだろう。 – Ali