SpringSecerity快速入门

https://www.cnblogs.com/hellosiyu/p/13108741.html

搭建好web环境

1、 打包方式要war包

还有就是创建出webapp文件以及WEB-INF中的web.xml文件!

2、 导入SpringMVC的依赖

<!--springmvc 依赖-->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.3.20.RELEASE</version>
</dependency>
<!-- 引入 Servlet 容器中相关依赖 -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>
<!--JSP 页面使用的依赖 -->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1.3-b06</version>
  <scope>provided</scope>
</dependency>

3、 创建出springmvc的配置文件并配置好

<!--注解扫描-->
<context:component-scan base-package="com.zhoujinyuan.springsecurity"></context:component-scan>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>
<!--spring mvc注解驱动-->
<mvc:annotation-driven></mvc:annotation-driven>

<mvc:default-servlet-handler/>

4、 web.xml中配置前端控制器DispatchServlet

<!--dispatcherServlet-->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <!--配置SpringMVC的核心控制器:让服务器知道-->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--SpringMVC配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:Spring-mvc.xml</param-value>
    </init-param>
    <!--控制其在服务器启动的时候创建出来:正整数表示服务器启动就创建-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

5、 加入springsecurity依赖

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

6、 加入 SpringSecurity控制权限的 Filter

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

拦截器和过滤器的区别


在web.xml中加入过滤器

<!--springsecurity过滤器-->
<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>

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

7、 做好配置类

老师起名叫WebAppSecurityConfig,我起名叫SpringSecurityConfig。

/**
 * 继承WebSecurityConfigurerAdapter这个类。这个类中有Security的一些默认配置。
 * 如果不继承,启动服务器会报错:No bean named 'springSecurityFilterChain' available
 */
@Configuration  //标注此类未Spring的配置类,基于注解的。和xml一样一样的。
@EnableWebSecurity  //注解表示启用Web安全功能。以后会接触到很多@EnableXxx 注解,用来启用对应的功能。
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {

}

8、 启动服务器测试

因为配置的过滤器是 /* 所以不管访问什么都要先登录才行!

最后的测试目的如下:看到这里入门就完成了~

  • 所有请求都被 SpringSecurity 拦截,要求登录才可以访问。
  • 静态资源也都被拦截,要求登录。
  • 登录失败有错误提示。
posted @ 2020-06-14 19:36  我才不是你的谁  阅读(738)  评论(0编辑  收藏  举报