在Spring Security中启用Group Authorities

我的一个项目需要使用Spring Security的Group Authorities,但是按照默认的配置方式

<authentication-manager>
    <authentication-provider>
        <jdbc-user-service data-source-ref="dataSource"/>
        <password-encoder hash="bcrypt" />
    </authentication-provider>
</authentication-manager>

Group Authorities并没有生效,所以我看了看配置项

<jdbc-user-service>

对应的类 org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl 的源码:

094701_xw8P_323.png

其中有个“enableGroups”属性,默认值是“false”。好了,这样就明白了,Group Authorities默认是不生效的,看了看在

<jdbc-user-service>

这个配置项中并没enableGroups这样的属性,看来只能自己配置jdbc-user-service的bean了,于是我配置好了jdbc-user-service的bean,试了试,果然生效了。

<authentication-manager>
    <authentication-provider user-service-ref="jdbcUserDetailsService">
        <jdbc-user-service data-source-ref="dataSource"/>
        <password-encoder hash="bcrypt" />
    </authentication-provider>
</authentication-manager>
<beans:bean id="jdbcUserDetailsService" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
    <beans:property name="enableGroups" value="true" />
    <beans:property name="jdbcTemplate" ref="jdbcTemplate" />
</beans:bean>


log:

2014/05/23 09:52:23:626 CST [DEBUG] DataSourceUtils - Returning JDBC Connection to DataSource
2014/05/23 09:52:23:627 CST [DEBUG] JdbcTemplate - Executing prepared SQL query
2014/05/23 09:52:23:627 CST [DEBUG] JdbcTemplate - Executing prepared SQL statement [select g.id, g.group_name, ga.authority from groups g, group_members gm, group_authorities ga where gm.username = ? and g.id = ga.group_id and g.id = gm.group_id]
2014/05/23 09:52:23:627 CST [DEBUG] DataSourceUtils - Fetching JDBC Connection from DataSource
2014/05/23 09:52:23:627 CST [TRACE] StatementCreatorUtils - Setting SQL statement parameter value: column index 1, parameter value [admin], value class [java.lang.String], SQL type unknown
2014/05/23 09:52:23:628 CST [DEBUG] DataSourceUtils - Returning JDBC Connection to DataSource


转载于:https://my.oschina.net/since1986/blog/268023

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值