springsecurity学习

    security是本身就是安全之类的意思,spring-security是一种维护项目安全的框架,完成项目的安全认证和授权功能模块。将用户赋予不同的角色,将会获得不同的权限,访问不同的资源。spring-security是采用aop思想,基于filter实现的。ssm架构具体使用如下:
一、jar包导入

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>

maven工程包的依赖引入中,总共是spring-security-config(xml的一些配置)、spring-security-taglib(jsp的tab库)、spring-security-web(web整合)、spring-security-core(核心api),因前两个包包含后两个,只导入两个包即可。


二、web.xml配置过滤器

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



三、security容器配置
    security配置和spring配置类似,通过spring的xml文件配置,引入security的xsd约束后,使用security标签完成以下:
配置拦截请求

auto-config自动配置是否开启,useexpress是否使用SPEL表达式,注意添加用户必须是“ROLE”开头
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/**" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"></security:intercept-url>
</security:http>

配置简单的用户拦截(求简单,非数据库用户)

配置用户登录和密码,来授权访问资源
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="user" password="{noop}user" authorities="ROLE_USER"></security:user>
<security:user name="admin" password="{noop}admin" authorities="ROLE_ADMIN"></security:user>
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>

最后页面如下:

    代码简单,谢谢浏览!

原文地址:https://www.cnblogs.com/theStone/p/13992311.html