使用shrio保护spring 应用

原创 2015年07月08日 00:32:41
第一步:引入Shiro的依赖
 
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-web</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.2.3</version>
</dependency>
第二步:使用AutoConfiguration方式注入
 
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shiroFilter() {
    ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
    shiroFilter.setLoginUrl("/login");
    shiroFilter.setSuccessUrl("/index");
    shiroFilter.setUnauthorizedUrl("/forbidden");
    Map<String, String> filterChainDefinitionMapping = new HashMap<String, String>();
    filterChainDefinitionMapping.put("/", "anon");
    filterChainDefinitionMapping.put("/home", "authc,roles[guest]");
    filterChainDefinitionMapping.put("/admin", "authc,roles[admin]");
    shiroFilter.setFilterChainDefinitionMap(filterChainDefinitionMapping);
    shiroFilter.setSecurityManager(securityManager());
    Map<String, Filter> filters = new HashMap<String, Filter>();
    filters.put("anon", new AnonymousFilter());
    filters.put("authc", new FormAuthenticationFilter());
    filters.put("logout", new LogoutFilter());
    filters.put("roles", new RolesAuthorizationFilter());
    filters.put("user", new UserFilter());
    shiroFilter.setFilters(filters);
    System.out.println(shiroFilter.getFilters().size());
    return shiroFilter;
}

@Bean(name = "securityManager")
public SecurityManager securityManager() {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    securityManager.setRealm(realm());
    return securityManager;
}

@Bean(name = "realm")
@DependsOn("lifecycleBeanPostProcessor")
public PropertiesRealm realm() {
    PropertiesRealm propertiesRealm = new PropertiesRealm();
    propertiesRealm.init();
    return propertiesRealm;
}

@Bean
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
    return new LifecycleBeanPostProcessor();
}
第三步:使用Shiro的PropertiesRealm作为认证和授权管理器,所以添加classpath:/shiro-users.properties,格式为user.username = password,role1,role1,... 
user.admin = 567890,admin,guest
user.lenic = 123456,guest

shrio教程初级shiro整合springmvc

一、前言 前面我们主要讲解了写什么,讲解通过ini文件加载,自定义realm源(ishi加密),对用户认证和权限授权。这一章开始,我们开始整合shrio到web项目中,当然还是与我们之前的spr...
  • guomainet309
  • guomainet309
  • 2016年10月28日 10:04
  • 812

Spring学习笔记之保护方法应用

在本章中我们将会看到如何使用Spring Security保护bean方法。
  • CSDN_XueXiaoQiang
  • CSDN_XueXiaoQiang
  • 2017年06月01日 22:57
  • 321

使用Spring Security保护web应用安全

转载地址:http://www.oschina.net/question/12_13626 在 Web 应用开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是...
  • z1074907546
  • z1074907546
  • 2016年04月11日 16:07
  • 1943

shrio教程初级(六)shiro整合springmvc

一、前言 前面我们主要讲解了写什么,讲解通过ini文件加载,自定义realm源(ishi加密),对用户认证和权限授权。这一章开始,我们开始整合shrio到web项目中,当然还是与我们之前的spring...
  • yangchangyong0
  • yangchangyong0
  • 2015年10月19日 10:04
  • 5122

springboot-shrio-mybatis登录验证与权限控制

springboot-shrio-mybatis 一、背景 最近做的一个spingboot项目中用到权限控制,网上也看了其他springboot集成shiro进行权限控制的文档。大多文档用户与角色...
  • liubang159
  • liubang159
  • 2017年09月14日 16:44
  • 560

spring+shiro 整合之自己注册会话和自写realm

Apache Shiro是java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比SPRing Security,可能没有Spring Security做的功能...
  • Sky786905664
  • Sky786905664
  • 2016年07月08日 16:23
  • 4385

spring boot+redis+shrio+会话

之前已经在几个项目中使用过shiro,可以说对shiro已经有了一定的了解,但是最近在处理一个shiro项目的问题时却遇到了空前的挑战。问题描述:用户登录后用户用着用着就突然自动退出了,而且没有任何规...
  • liaoguolingxian
  • liaoguolingxian
  • 2017年08月09日 21:21
  • 717

[Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)EHCache版本

一、Shiro简介 Apache Shiro 是 Java  的一个安全框架。我们经常看到它被拿来和 Spring  的 Security  来对比。大部分人认为 Shiro  比 Securi...
  • qq_26562641
  • qq_26562641
  • 2017年01月22日 16:16
  • 10359

Spring Cloud Eureka的自我保护机制

自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。 默认情况下,如果Eureka Serve...
  • beagreatprogrammer
  • beagreatprogrammer
  • 2017年12月17日 22:02
  • 203

Spring Boot系列(十五) 安全框架Apache Shiro(二)缓存-基于Hazelcast的分布式缓存

通常所说的“分布式”、“集群服务”、“网格式内存数据”、“分布式缓存“、“弹性可伸缩服务”这些非常牛逼高大上名词拿到哪都是ITer装逼的不二之选。在Javaer的世界,有这样一个开源项目,只需要引入一...
  • xtiawxf
  • xtiawxf
  • 2016年09月21日 12:54
  • 1631
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用shrio保护spring 应用
举报原因:
原因补充:

(最多只允许输入30个字)