当前位置: 首页 > 编程笔记 >

基于Spring框架的Shiro配置方法

谢麒
2023-03-14
本文向大家介绍基于Spring框架的Shiro配置方法,包括了基于Spring框架的Shiro配置方法的使用技巧和注意事项,需要的朋友参考一下

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

<!-- Shiro filter-->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

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

1、添加shiroFilter定义

<!-- Shiro Filter -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
 <property name="securityManager" ref="securityManager" />
 <property name="loginUrl" value="/login" />
 <property name="successUrl" value="/user/list" />
 <property name="unauthorizedUrl" value="/login" />
 <property name="filterChainDefinitions">
 <value>
 /login = anon
 /user/** = authc
 /role/edit/* = perms[role:edit]
 /role/save = perms[role:edit]
 /role/list = perms[role:view]
 /** = authc
 </value>
 </property>
</bean>

2、添加securityManager定义


<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">

 <property name="realm" ref="myRealm" />

</bean>

3、添加realm定义


<bean id=" myRealm" class="com...MyRealm" />

三、实现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保护你的应用

 类似资料:
  • 本文向大家介绍spring boot 集成shiro的配置方法,包括了spring boot 集成shiro的配置方法的使用技巧和注意事项,需要的朋友参考一下 spring boot提供了一个自带的认证框架,同时也提供自定义的javaconfig配置扩展,spring-sercurity同样也是优秀的框架,但是习惯了用apache shiro框架,而且原项目就是集成的shiro框架,到网上找了一下

  • 本文向大家介绍Spring MVC框架配置方法详解,包括了Spring MVC框架配置方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Spring MVC框架配置方法,供大家参考,具体内容如下 1、概述   Spring MVC 作用:用来实现前端浏览器与后面程序的交互   Spring MVC 是基于Spring 的MVC框架,所谓MVC(model,controller,

  • 17.4 基于 XML 架构的配置 可以使用来自 OXM 命名空间的 XML 标签是对编组器的配置变得更简洁。要使用这些标签,请在 XML 文件开头引用恰当的 XML 架构。以下是一个引用 oxm 的示例,请注意粗体字部分: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/sch

  • herosphpphp的配置信息都在app/configs文件夹中 configs目录中包含了该应用所有的相关配置文档: env 跟环境相关的配置,app配置,数据库配置。包含了三个环境, dev(开发), test(测试), prod(生产) autoload.config.php 自定义需要自动加载的类的配置 beans beans服务配置文件目录 models 模型配置文件夹 session

  • 本文向大家介绍Spring MVC 框架搭建配置方法及详解,包括了Spring MVC 框架搭建配置方法及详解的使用技巧和注意事项,需要的朋友参考一下 现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的W

  • 本文向大家介绍Nginx下配置codeigniter框架方法,包括了Nginx下配置codeigniter框架方法的使用技巧和注意事项,需要的朋友参考一下 原来在winserver+Apache环境下工作良好的一个微信公众号后台迁移到阿里云(环境:Ubuntu 64位 | PHP5.4 | Nginx1.6)下却频出 404,403,只能访问CI routes.php中设置的默认控制器等问题,后来