热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

基于Spring框架的Shiro配置方法

这篇文章主要介绍了基于Spring框架的Shiro配置方法,需要的朋友可以参考下

一、在web.xml中添加shiro过滤器



shiroFilter

org.springframework.web.filter.DelegatingFilterProxy



shiroFilter
/*

二、在Spring的applicationContext.xml中添加shiro配置

1、添加shiroFilter定义



 
 
 
 
 
 
 /login = anon
 /user/** = authc
 /role/edit/* = perms[role:edit]
 /role/save = perms[role:edit]
 /role/list = perms[role:view]
 /** = authc
 
 

2、添加securityManager定义

代码如下:


 

3、添加realm定义

代码如下:


三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法

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;
 }
}

参考资料:让Apache Shiro保护你的应用


推荐阅读
author-avatar
外星人源码商城
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有