web项目中应用SpringSecurity

1. 权限管理的主流框架

1)SpringSecurity

Spring技术栈的组成部分。

通过提供完整可扩展的认证和授权支持保护你的应用程序。Spring Security

SpringSecurity特点:

  • 和Spring无缝整合。
  • 全面的权限控制。
  • 专门为Web开发而设计。旧版本不能脱离Web环境使用。新版本对整个框架进行了分层抽取,分成了核心模块和Web模块。单独引入核心模块就可以脱离Web环境。
  • 重量级。

2)Shiro

Apache旗下的轻量级权限控制框架。

特点:

  • 轻量级。Shiro主张的理念是把复杂的事情变简单。针对对性能有更高要求的互联网应用有更好表现。
  • 通用性。

              好处:不局限于Web环境,可以脱离Web环境使用。

              缺陷:在Web环境下一些特定的需求需要手动编写代码定制。

官网网址:Apache Shiro | Simple. Java. Security.

学习视频网址:Shiro - 谷粒学苑 - Java培训|大数据培训|前端培训|HTML5培训|Linux运维培训_程序员一站式IT在线学习平台 - Powered By EduSoho

2. 应用 SpringSecurity

2.1 依赖

<!-- SpringSecurity对Web应用进行权限管理 -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
			<version>4.2.10.RELEASE</version>
		</dependency>

		<!-- SpringSecurity配置 -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
			<version>4.2.10.RELEASE</version>
		</dependency>

		<!-- SpringSecurity标签库 -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-taglibs</artifactId>
			<version>4.2.10.RELEASE</version>
		</dependency>

2.2 在 web.xml 中加入SpringSecurity控制权限的Filter

SpringSecurity使用的是过滤器Filter而不是拦截器Interceptor,意味着SpringSecurity能够管理的不仅仅是SpringMVC中的handler请求,还包含Web应用中所有请求。比如:项目中的静态资源也会被拦截,从而进行权限控制。

<!--SpringSecurity控制权限的Filter-->
  <filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

特别注意:<filter-name>springSecurityFilterChain</filter-name>标签中必须是springSecurityFilterChain。因为springSecurityFilterChain在IOC容器中对应真正执行权限控制的二十几个Filter,只有叫这个名字才能够加载到这些Filter。

2.3 加入配置类

@EnableWebSecurity 注解表示启用Web安全功能。

2.4 效果

所有请求都被SpringSecurity拦截,要求登录才可以访问。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值