2011-11-22 19 views
3

有沒有辦法告訴Spring在我所做的自定義用戶bean中查找用戶角色?AuthenticationManager /角色

http://static.springsource.org/sprin...ns-config.html

所以,如果我有一個bean叫的UserDetails是有:

  • 用戶id
  • 用戶名
  • 角色

使用認證管理器,可以將它指向UserDetails bean來確定用戶的角色?如果是這樣,我會在下面的代碼中定義UserDetails bean?

什麼是「myUserDetailsS​​ervice」?這是對auth-manager下的bean的引用嗎?

<authentication-manager> 
    <authentication-provider user-service-ref='myUserDetailsService'/> 
    </authentication-manager> 

    <beans:bean id="myUserDetailsService" 
     class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl"> 
    <beans:property name="dataSource" ref="dataSource"/> 
    </beans:bean> 

回答

1

myUserDetailsService是非標準的Spring Security bean的實例的(沒有很好choosen)ID:org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl

它是可用於身份驗證和授權的默認bean之一。 它通過數據庫中的簡單sql語句加載用戶詳細信息,包括角色。

如果你想有自己的方式來建立一個自定義UserDetails那麼你只需要一個實現UserDetailsService接口的bean。這個bean必須被<authentication-provider user-service-ref(而不是「myUserDetailsS​​ervice」)引用。

@查看Spring Security Reference, chapter 5.2.2 The UserDetailsService