java中使用Spring security(二,小程序开发教程

上一篇,我们讲述的spring security的基础使用。但是对于一些复杂权限场景,我们需要更高级一些的功能。

我们接着往下展示它的高级部分。

<security:authentication-manager>的内部高级设置

在上一篇的Spring security设置示例中,我设置了authentication-manager来检查登录用户凭证,并使用标签中定义的纯文本用户。如下所示,您可以在此处为您的应用程序定义多个用户。

<security:user-service>
    <security:user name="stiti" password="mindfire" authorities="USER" />
    <security:user name="ram" password="pass1234" authorities="ADMIN" />
    .
    .
    and so on...
</security:user-service>

上面的方式,是简单的校验。对于更复杂的,比如要对数据库中的Users表进行身份验证,则可以使用<security:jdbc-user-service>替换<security:user-service> … </ security:user-service>标记。如下。

<security:authentication-manager>
    <security:authentication-provider>
        <security:jdbc-user-service 

            data-source-ref="dataSource"  

            users-by-username-query=
                "SELECT username, password FROM users WHERE username=? AND active=1" 

            authorities-by-username-query=
                "SELECT US.username, UR.authority 
                    FROM users US, user_roles UR 
                    WHERE US.user_id = UR.user_id and US.username =?" 

            />
    </security:authentication-provider>
</security:authentication-manager>

在这里,您执行SQL查询以从数据库中的“users”表中获取用户名和密码。

类似地,用户名的授权权限也从“user_roles”数据库表中获取。

在这里您可以注意到我在“data-source-ref”属性中提到了数据源引用。这是“dataSource”。

因此,您需要在应用程序Context xml文件中定义一个id =“dataSource”的Bean。如下。

<beans ....>
...
...
...
    <!-- Datasource Config -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"></property>
        &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值