使用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

相关文章推荐

spring_shrio1.3.2

  • 2017年07月06日 16:51
  • 25KB
  • 下载

Shrio 入门系列 三 (授权与Spring整合)

1.Shrio 授权的流程              SecurityManage (shiro环境)---->Subject.isPermission()(授权)----->Securit...

spring boot+redis+shrio+会话

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

spring与shrio集成记录

写在前面shrio断断续续看了有几周了,当初从jeesite项目里面知道有这么一个东东存在,然后网上看到开涛的博客,于是就跟着他的博客挑自己感兴趣的看,都是零零散散的看,虽然整合起来了,还是有一些细节...
  • ggj20ss
  • ggj20ss
  • 2015年08月19日 14:07
  • 1235

[Shrio使用总结]-详解shiro配置文件

使用shrio就不得不对shiro的架构进行分析,笔者分析一个框架一般从它的配置文件入手,可以快速了解整个框架的大体结构。详解securityManager配置: ...

使用 Spring Security 保护 Web 应用的安全

简介: 安全一直是 Web 应用开发中非常重要的一个方面。从安全的角度来说,需要考虑用户认证和授权两个方面。为 Web 应用增加安全方面的能力并非一件简单的事情,需要考虑不同的认证和授权机制。Spri...

spring security使用数据库获取资源、角色和权限保护web应用

在《使用数据库定义资源、角色和权限》中已经定义了该示例的实体关系,本文对其进行实现。web应用中有三种资源。 /main/common.action:具有common角色的用户就可以访问 /ma...

第9章 保护Web应用--Spring Security 之 HelloWord

概述: Web安全保驾护航,涉及面很广,从前端到数据库都有,先简单用一下Spring Security Demo 来感受一下功能 1、开发环境: JDK 1.8 maven 3.5 ecli...

Spring Security 保护 Web 应用的安全

本文介绍Spring Security 保护 Web 应用的安全。
  • wwd0501
  • wwd0501
  • 2014年12月19日 13:53
  • 399

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

在本章中我们将会看到如何使用Spring Security保护bean方法。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用shrio保护spring 应用
举报原因:
原因补充:

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