一起来学springSecurity安全框架(一)

原创 2016年05月31日 15:17:33

开头:springSecurity很强大,也很方便,可以赋予登录用户不同的角色,用来决定这些用户可以访问那些资源

好处很多...下面我们简易搭建起来springSecurity.一遍搭建 一边学

第一步:搭建maven项目 

maven坐标(只引入了springsecurity的一些必须坐标)

 
  <dependencies>
  <dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>javax.servlet-api</artifactId>
		<version>3.1.0</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
		<scope>provided</scope>
	</dependency>

	<dependency>
		<groupId>javax.servlet.jsp</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.2</version>
		<scope>provided</scope>
	</dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-core</artifactId>
				<version>3.0.5.RELEASE</version>
			</dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-orm</artifactId>
    	<version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
    	<groupId>org.springframework.security</groupId>
    	<artifactId>spring-security-config</artifactId>
    	<version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
    	<groupId>org.springframework.security</groupId>
    	<artifactId>spring-security-taglibs</artifactId>
    	<version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
    	<groupId>taglibs</groupId>
    	<artifactId>standard</artifactId>
    	<version>1.1.2</version>
    </dependency>
    <dependency>
    	<groupId>jstl</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.1.2</version>
    	<scope>compile</scope>
    </dependency>
    <dependency>
    	<groupId>log4j</groupId>
    	<artifactId>log4j</artifactId>
    	<version>1.2.15</version>
    </dependency>
  </dependencies>

第二步:springSecurity的配置文件(其中springmvc是为之后的项目准备可以忽略)

web.xml(注意:springSecurity的过滤器名称为固定写法.同struts2过滤器一样)

<?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
	<display-name></display-name>
	<!-- 加载spring 配置文件 -->
	<context-param>
	  <param-name>contextConfigLocation</param-name>
	  <param-value>classpath:spring.xml</param-value>
	</context-param>
	<listener>
	  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- springmvc -->
		<servlet>    
		  <servlet-name>securitydemo</servlet-name>    
		  <servlet-class>    
		    org.springframework.web.servlet.DispatcherServlet    
		  </servlet-class>    
		  <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>securitydemo</servlet-name>    
			<url-pattern>/*</url-pattern>
		</servlet-mapping>
		<!-- 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> 
</web-app>

spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans               
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd      
           http://www.springframework.org/schema/context      
           http://www.springframework.org/schema/context/spring-context-3.2.xsd     
           http://www.springframework.org/schema/mvc      
           http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

    <import resource="classpath:spring-security.xml" />  
</beans>


spring-security.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:security="http://www.springframework.org/schema/security"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	   		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
			http://www.springframework.org/schema/security 
			http://www.springframework.org/schema/security/spring-security-3.0.xsd">

    <!-- 拦截规则 -->
    <security:http auto-config="true">
        <security:intercept-url pattern="/*" access="ROLE_USER"/>
    </security:http>
    <!-- 配置校验管理器 -->
   <security:authentication-manager alias="authenticationManager">
       <security:authentication-provider>
           <security:user-service>
               <security:user name="zx" password="zx" authorities="ROLE_USER"/>
           </security:user-service>
       </security:authentication-provider>
   </security:authentication-manager>
</beans>

第三步:现在启动项目.访问我们的项目根目录 你会发现.凭空出来了一个登陆页面


试着输入账号密码   



第四步:走到这一步相比大家和我一样会有很多疑惑.或者不满的地方.

1.账号密码怎么能配置到配置文件中(答:这以后可以配合数据库)

2.登陆界面可以换么(可以)

这仅仅是一个小小的demo ,接下来的几遍文章.让我们一步步的揭开springSecurity的真面容


版权声明:本文为博主原创文章,未经博主允许不得转载。

一起来学springSecurity安全框架(二)

spring springsecurity div ul{ padding: 0px; margin: 0px; } .box{ height: 300px; ...
  • zhang89xiao
  • zhang89xiao
  • 2016年06月02日 17:59
  • 321

一起来学设计模式(1)——单例模式

单例模式即Singleton模式,通过该模式,最多只能创建该类的一个实例。 先看一下简单的版本: /** * @file Singleton.h * @brief * @author Do...
  • donhao
  • donhao
  • 2011年09月01日 14:38
  • 909

一起来学OpenMP(1)——初体验

转载自新浪博文:http://blog.sina.com.cn/s/blog_57562d890100xj3i.html OpenMP是一种面向共享内存以及分布式共享内存的多处理器多线程并行编程语言...
  • lanfengfeng1120
  • lanfengfeng1120
  • 2016年11月17日 14:14
  • 202

Linux下 跟我一起学makefile,非常简单,一学就会。

第一步,先创建5个文件 main.c, mytool1.h, mytool1.c, mytool2.h, mytool2.c //---------mytool1.h--------- #ifnde...
  • tajon1226
  • tajon1226
  • 2015年07月01日 22:38
  • 458

一起来学内存(一)

解释操作系统与内存的原理 物理内存与虚拟内存的关系 内存 与系统堆 系统栈的关系...
  • DJWilliams
  • DJWilliams
  • 2017年03月07日 11:01
  • 215

一起来学Makefile(一)

关于makefile的使用及介绍网上非常多。也有专门的书籍介绍makefile。推荐这本书,是详细介绍makefile的——《跟我一起写makefile》 在这里,我只会简单的介绍makefile的...
  • odaynot
  • odaynot
  • 2012年09月13日 19:51
  • 1452

一起来学SQL(一)

写给自己总是追求忙碌,在忙碌中却不知追求什么。一个总是闲不下来的自己,或许只有在广泛的涉猎中才能找到什么是最适合自己的,毕竟没有尝试,就没有资格评价。之前做项目时,也曾经接触过Android中的SQL...
  • qq_20619003
  • qq_20619003
  • 2017年10月07日 23:19
  • 234

一起来学工厂模式

package lololo01; interface Fruit { public void eat(); } class Apple implements Fruit{ pu...
  • lq1975808975
  • lq1975808975
  • 2017年03月29日 15:58
  • 79

一起来学SQL

一、引言SQL语句如DOS和UNIX命令,数不胜数,拟通过本文来一起学习并重温SQL语句。二、SQL语言的动词查询     SELECT定义     CREATE, DROP, ALTER操纵    ...
  • donhao
  • donhao
  • 2010年06月21日 00:32
  • 438

一起来学英语

concrete具体的 Grand宏伟的;豪华的;极重要的 Central中心的;主要的;中枢的 Dispatch派遣;分派 Wrap包;缠绕;隐藏;掩护 truncate 截短的 Hin...
  • DynastyTing
  • DynastyTing
  • 2016年05月24日 12:36
  • 121
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一起来学springSecurity安全框架(一)
举报原因:
原因补充:

(最多只允许输入30个字)