基于Spring框架的Shiro配置

一、在web.xml中添加shiro过滤器
public
 
class
 MyRealm 
extends
 AuthorizingRealm{  



  


    private
 AccountManager accountManager;  



    public
 
void
 setAccountManager(AccountManager accountManager) {  



        this
.accountManager = accountManager;  



    }  


  


    /**
 


     * 授权信息
 


     */
  



    protected
 AuthorizationInfo doGetAuthorizationInfo(  



                PrincipalCollection principals) {  


        String username=(String)principals.fromRealm(getName()).iterator().next();  


        if
( username != 
null
 ){  



            User user = accountManager.get( username );  


            if
( user != 
null
 && user.getRoles() != 
null
 ){  



                SimpleAuthorizationInfo info = new
 SimpleAuthorizationInfo();  



                for
( SecurityRole each: user.getRoles() ){  



                        info.addRole(each.getName());  


                        info.addStringPermissions(each.getPermissionsAsString());  


                }  


                return
 info;  



            }  


        }  


        return
 
null
;  



    }  


  


    /**
 


     * 认证信息
 


     */
  



    protected
 AuthenticationInfo doGetAuthenticationInfo(  



                AuthenticationToken authcToken ) throws
 AuthenticationException {  



        UsernamePasswordToken token = (UsernamePasswordToken) authcToken;  


        String userName = token.getUsername();  


        if
( userName != 
null
 && !
""
.equals(userName) ){  



            User user = accountManager.login(token.getUsername(),  


                            String.valueOf(token.getPassword()));  


  


            if
( user != 
null
 )  



                return
 
new
 SimpleAuthenticationInfo(  



                            user.getLoginName(),user.getPassword(), getName());  


        }  


        return
 
null
;  



    }  


  


} 
(http://kdboy.iteye.com/blog/1103794)

相关推荐