一起来学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的真面容


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

相关文章推荐

SpringSide 3 中的安全框架(spring security)-这是我看过对springsecurity分析的最好的 最清晰的文章

在SpringSide 3的官方文档中,说安全框架使用的是Spring Security 2.0。乍一看,吓了我一跳,以为Acegi这么快就被淘汰了呢。上搜索引擎一搜,发现原来Spring Secur...

spring安全框架系列springSecurity

使用一个新的框架之前,首先我们来认识一下springSecurity,毕竟框架这种东西有时靠不住,所以学到他的思想才是最重要的,很多人都知道这么用,具体为什么,没有人告诉我们,首先我们从最基本的看起,...

《spring安全框架系列springSecurity之我见》其一[认识springSecurity]

使用一个新的框架之前,首先我们来认识一下springSecurity,毕竟框架这种东西有时靠不住,所以学到他的思想才是最重要的,很多人都知道这么用,具体为什么,没有人告诉我们,首先我们从最基本的看起,...
  • yaerfeng
  • yaerfeng
  • 2012年02月11日 16:03
  • 15844

一起来学信息安全知识(1)——一个小故事的大道理

大概是在04年,某天晚上我们上《密码学技术与原理》课程。      老师刚站上讲台,乐呵呵的对我们说,         “我刚参加了一个国际密码学学术会议,有个人竟然声称自己破解了MD5算法,真是...
  • donhao
  • donhao
  • 2011年08月21日 20:32
  • 973

一起来学信息安全知识(2)——对称密码和非对称密码

目前密码分为对称密码和非对称密码。其中,对称密码主要有DES、3DES、AES,非对称密码主要有RSA、ECC。         先举个简单的对称密码的例子。假设有一串数字123789,我们需要对其...
  • donhao
  • donhao
  • 2011年08月22日 10:50
  • 776

一起学安全测试——用Burp Suite进行暴力破解

今天演示一下用Burp Suite进行简单暴力破解的方法启动dvwa,如果不知道dvwa是啥的,请看一起学安全测试——自己搭建安全测试环境(DVWA)。 启动Burp Suite,设置Burp的Pro...

一起学安全测试——用sqlmap对dvwa实现SQL注入测试

sqlmap是一款进行SQL注入的工具,非常简单好用。我们在dvwa上试着用sqlmap实现注入,拿到数据库的信息。搭建dvwa环境并启动。 windows上需要搭建Python环境,下载sqlmap...

[一起学Hive]之二十-自定义HiveServer2的用户安全认证

HiveServer2提供了JDBC链接操作Hive的功能,非常实用,但如果在使用HiveServer2时候,不注意安全控制,将非常危险,因为任何人都可以作为超级用户来操作Hive及HDFS数据。 ...
  • achuo
  • achuo
  • 2016年05月06日 10:46
  • 1450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一起来学springSecurity安全框架(一)
举报原因:
原因补充:

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