springsecurity框架所需要的jar包介绍

就是我们的项目里面要使用这个springsecurity框架,我们需要导入什么jar包?

spring-security-core.jar
核心包,任何Spring Security功能都需要此包。
spring-security-web.jar
web工程必备,包含过滤器和相关的Web安全基础结构代码。
spring-security-config.jar
用于解析xml配置文件,用到Spring Security的xml配置文件的就要用到此包。
spring-security-taglibs.jar
Spring Security提供的动态标签库,jsp页面可以用。

因为我们现在的项目是maven工程,所以只需要导入后两个,其他的包就自动的导入了

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


因为现在的项目是ssm项目,所以只是单纯的导入springsecurity框架的jar包,之后的springboot项目的话,就会导入其他的整合的包。现在导入了jar包,这个项目里面就可以使用这个框架了,那么如何使用呢?

项目中使用

1 导入了依赖
2 因为这个项目是ssm项目,所以启动的时候,首先走的是


我们就需要在web.xml里面进行配置这个springsecurity,这个springsecurity框架底层就是一个拦截器,所以项目一启动就进行拦截,项目一启动就是要先走web.xml文件,所以我们首先要在web.xml里面进行配置。如何配置?

    <!--SpringSecurity核心过滤器链-->
    <!--springSecurityFilterChain名词不能修改-->
    <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> 


看到web。xml里面配置这个springsecurity的标签是filter。所以,充分说明springsecurity框架底层就是过滤器。
这个配置的意思是:所有的路径来了,都要走这个框架

3 项目导入了依赖,但是我们要对这个框架进行配置,用我们自己的配置,所以,需要我们自己写一个xml文件,以后关于springsecurity框架的配置,我们就写到这个xml文件里面。


那么这个xml里面,我们可以写一些什么东西呢?

写配置,里面要有标签的约束,只有写在这些标签里面的东西,springsecurity框架才会识别,所以我们要用springsecurity框架人家固定的标签,既然要用人家的标签,那么就在这个xml里面导入人家的约束


在xml里面的头文件里面写了这3个代码,那么这个xml里面就可以使用springsecurity框架的标签了。我们可以写一些什么标签呢?或者可以在这个配置文件里面写一些什么关于springsecurity框架的东西呢?

1 配置数据源

这个的意思是,现在我们先不使用连接数据库,用户名和密码现在先自己在代码里面写死,所以我们可以在这个xml里面配置用户信息,以后验证用户名和密码的时候,直接在这个xml里面拿。


因为springsecurity框架的密码验证必须是加密的,但是现在是测试一下,所以我们就不想要加密,这个时候用{
   noop}
密码前面加{
   noop}   就不需要加密验证了
<!--设置Spring Security认证用户信息的来源-->
    <security:authentication-manager>
        <security:authentication-provider>
            <security:user-service>
                <security:user name="user" password="{noop}user"
                               authorities="ROLE_USER" />
                <security:user name="admin" password="{noop}admin"
                               authorities="ROLE_ADMIN" />
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>


写了springsecurity.xml文件,还需要简单在项目里面引入之后,项目才可以用这个springsecurity.xml文件
具体看之前的文章:

Spring Security的配置文件是如何被项目引入的,也就是有了springsecurity.xml ,还需要什么配置,项目就可以使用这个springsecurity.xml了

以上配置就完成了,现在启动项目

就可以看见springsecurity默认的登录页面了,对,springsecurity有自己默认的登录界面,只要你的项目里面加了springsecurity的依赖,配置了配置文件,一启动项目就会跳转到默认的登录页面,具体原因是这样的:

一启动项目,加载web.xml配置文件,进而加载springsecurity.xml配置文件,springsecurity.xml里面有这个


也就是不管你浏览器输入的是什么路径,都会在这个配置文件里面进行拦截,拦截之后看这个有没有用户权限,没有的话,默认跳转到默认的登录页面,有权限的话,那么就跳转到你想要到的那个页面,也就是通过了,没有被拦截,这句话的意思就是拦截。