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>
特 别 注 意 :
7、 做好配置类
老师起名叫WebAppSecurityConfig,我起名叫SpringSecurityConfig。
/**
* 继承WebSecurityConfigurerAdapter这个类。这个类中有Security的一些默认配置。
* 如果不继承,启动服务器会报错:No bean named 'springSecurityFilterChain' available
*/
@Configuration //标注此类未Spring的配置类,基于注解的。和xml一样一样的。
@EnableWebSecurity //注解表示启用Web安全功能。以后会接触到很多@EnableXxx 注解,用来启用对应的功能。
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
}
8、 启动服务器测试
因为配置的过滤器是 /* 所以不管访问什么都要先登录才行!
最后的测试目的如下:看到这里入门就完成了~
- 所有请求都被 SpringSecurity 拦截,要求登录才可以访问。
- 静态资源也都被拦截,要求登录。
- 登录失败有错误提示。