SpringSecurity3.1入门教程(一)

原创 2015年11月20日 23:07:28

PS:此教程使用的是SpringSecurity的默认过滤器,需严格按照默认过滤器的配置来

1.部署描述符web.xml

<?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"
	id="WebApp_ID" version="3.0">
	<listener>
	    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
	    <param-name>contextConfigLocation</param-name>
	    <param-value>classpath:/resources/spring-security.xml</param-value>
	</context-param>
	<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>

注意:这里<filter-name>springSecurityFilterChain</filter-name>不可以更改,采用默认过滤器必须使用该名称,要不然会报错提示找不到你自定义的名字的Bean名称

2.核心配置文件

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

	<!-- 对登录页面不过滤,任何用户都可以访问,否则会进入死循环 -->
    <http pattern="/login.jsp" security="none"/>
    <!-- 验证失败或者权限验证不通过跳转的页面 -->
    <http access-denied-page="/deny.jsp" >
    	<form-login login-page="/login.jsp"/>
	<!-- 访问/admin.jsp资源的用户必须具有ROLE_ADMIN的权限 -->
    	<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/>
	<!-- 访问/**资源的用户必须具有ROLE_USER的权限 -->
        <intercept-url pattern="/**" access="ROLE_USER"/>
        <!-- 会话管理,可选项 -->
        <session-management>
        	<concurrency-control max-sessions="1" error-if-maximum-exceeded="false"/>
        </session-management>
    </http>
    <!-- 认证管理器,这里通过硬编码(xml配置文件)配置用户信息 -->
    <authentication-manager>
        <authentication-provider>
        	<user-service>
        		<user name="tt" password="tt" authorities="ROLE_USER"/>
        		<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
        		<user name="all" password="all" authorities="ROLE_USER,ROLE_ADMIN"/>
        	</user-service>
        </authentication-provider>
    </authentication-manager>
</beans:beans>

3.登录页面

<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录</title>
</head>
<body>
<form action="j_spring_security_check" method="POST">
<table>
	<tr>
		<td>用户:</td>
		<td><input type='text' name='j_username'></td>
	</tr>
	<tr>
		<td>密码:</td>
		<td><input type='password' name='j_password'></td>
	</tr>
	<tr>
	        <td><input name="submit" type="submit"></td>
		<td><input name="reset" type="reset"></td>
	</tr>
</table>
</form>
</body>
</html>
注意:

1.<form action="j_spring_security_check" method="POST">action名称一般不可更改,除非你修改springsecurity源码

2.<input type='password' name='j_password'>,<input type='text' name='j_username'>;j_password和j_username也一般不可更改,因为这个例子引用的是默认的过滤器,在后面使用自定义过滤器,认真管理器,授权管理器的时候就可以自定义了

4.其他页面

其他页面就不写出来了,没啥一下影响。

5.本文完整例子下载地址及相应帮助文档下载地址如下:

(1).springsecurity3.x开发手册.pdf

http://download.csdn.net/detail/u012557538/9287455

(2)本文项目实例:

http://download.csdn.net/detail/u012557538/9287445

(3)官方中文帮助手册
http://download.csdn.net/detail/u012557538/9287473



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

iOS开发入门教程之第一个APP

经过本系列前面几篇文章的学习,相信读者已经可以使用Objective-C语言写一些简单地程序了。Objective-C的语言基础也已经基本讲完了,通过大量的代码练习和阅读相关书籍,相信很快就能掌握iO...
  • taonull
  • taonull
  • 2015年03月26日 23:49
  • 7316

Python入门教程 超详细1小时学会Python

本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的Python程序.  为什么使用Python  ...
  • jb19900111
  • jb19900111
  • 2014年01月02日 14:26
  • 2832

iOS 7 Xcode 5 最初级小教程, 人生中第一个App诞生了.

相信IT男们,总会有那么一天希望自己捣鼓一个小App 让女朋友开心一下。那么就有了本文的开始的动机,话说带着兴趣做事情的时候进度是最快的也是最轻松的,这也是因为为什么有女朋友陪着的时候走多远的路脚都不...
  • tfy1332
  • tfy1332
  • 2014年04月06日 09:29
  • 24587

SpringSecurity3.1入门教程(二)

这篇文章主要讲解了Security的常用概念和工作流程,理清这些概念对学习SS是一个很大的帮助...
  • u012557538
  • u012557538
  • 2015年12月23日 11:10
  • 326

SpringSecurity3.1入门教程(四)

一.前言 前面三篇介绍了security,磨刀不误砍柴工,现在就开始上代码吧。本文的项目demo地址可以在文章尾部看到。 二.DEMO 1.web.xml ...
  • u012557538
  • u012557538
  • 2015年12月23日 15:16
  • 377

SpringSecurity3.1入门教程(三)

本文介绍了常用功能的配置,虽然没有权限手册讲解的这么详细,但是对初学者来说能够使其快速入门...
  • u012557538
  • u012557538
  • 2015年12月23日 13:49
  • 424

Python3.1-Numpy模块之入门教程

这系列用来介绍Python的标准库的支持Numpy部分。
  • shouhuxianjian
  • shouhuxianjian
  • 2015年03月23日 18:38
  • 3901

Android基础入门教程——3.1 基于监听的事件处理机制

Android基础入门教程——3.1.1 基于监听的事件处理机制标签(空格分隔): Android基础入门教程本节引言: 第二章我们学习的是Android的UI控件,我们可以利用这些控件构成一个精...
  • zpj779878443
  • zpj779878443
  • 2015年07月22日 09:05
  • 4199

ThinkPHP3.1编程开发快速入门教程之IP地址定位

ThinkPHP3.1编程开发快速入门教程之IP地址定位 在WEB应用中,根据IP地址定位和记录相关访问日志也是非常常见的需求,在ThinkPHP中你可以轻松...
  • u011040721
  • u011040721
  • 2013年06月29日 15:05
  • 248

Borland C++3.1入门教程,Borland C++教程,c++教程

  • 2010年10月19日 20:32
  • 7.62MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringSecurity3.1入门教程(一)
举报原因:
原因补充:

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