Shiro实现用户授权(Authorization)

1.表结构

这里写图片描述


2.Controller



            // 判断是否成功登录  
            assertEquals(true, subject.isAuthenticated());  
            System.out.println("登录成功!!");  
            // 判断用户是否拥有某个角色  
            assertEquals(true, subject.hasRole("admin"));  
            // 使用Shiro自带的断言判断用户是否有被授权  
            subject.checkRole("manager");  
            subject.checkPermission("create_user1");  
            // 注销用户  
            subject.logout(); 

3.Spring-dao.xml配置

<bean id="jdbcRealm" class="org.apache.shiro.realm.jdbc.JdbcRealm">
        <!--<property name="credentialsMatcher" ref="credentialsMatcher"></property>-->
        <property name="permissionsLookupEnabled" value="true"></property>
        <property name="dataSource" ref="dataSource"></property>
        <property name="authenticationQuery"
            value="SELECT password FROM users WHERE username = ?"></property>
         <property name="userRolesQuery"  
        value="SELECT permission FROM roles_permissions WHERE role_name = ? " />  
    </bean>

4.web.xml

<!-- Shiro Filter -->  
    <filter>  
        <filter-name>shiroFilter</filter-name>  
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
        <init-param>  
            <param-name>targetFilterLifecycle</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>shiroFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 

5.总结

之后在应用程序任意地方调用SecurityUtils.getSubject() 都可以获取到当前认证通过的用户实例
这就意味着在判断请求时可以方便的进行操作

博客:
http://www.cnblogs.com/xql4j/
http://kdboy.iteye.com/blog/1155450
http://blog.csdn.net/chris_mao/article/details/49215471

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值